From 4fb3482ab189d1fa335944ce3a25cbcfa8ef5074 Mon Sep 17 00:00:00 2001 From: shcommit Date: Sun, 6 Sep 2026 17:13:00 +0900 Subject: [PATCH] docs(backlog): log Cline CLI harness-parity CI coverage gap as Medium backlog item The Cline adapter (adapters/cline/) is manually verified against Cline CLI 3.0.61 only. Unlike the Codex, Gemini, and Antigravity adapters, it is not exercised by the harness-parity CI job on push/PR, so Cline/ClinePass version drift goes undetected. Cline CLI is npm-installable, so the precondition (public package registry) is already met; this change records the gap and prerequisite checks (npm package name/version pin, install-path verification, preflight/init/validate ok:true) in improvements.md and project-roadmap.md, and notes it in changelog.md and handoff.md. No code or CI workflow changes; ruff/mypy unaffected. test_cline_adapter.py assertions re-run with Python 3.13 (stdlib-only) and pass. Closes the follow-up backlog item identified while reviewing the Cline adapter install state. --- changelog.md | 1 + handoff.md | 72 ++++++++++++++++++++++------------------------ improvements.md | 11 +++++++ project-roadmap.md | 7 +++++ 4 files changed, 53 insertions(+), 38 deletions(-) diff --git a/changelog.md b/changelog.md index f55cf9a..785f61c 100644 --- a/changelog.md +++ b/changelog.md @@ -26,6 +26,7 @@ Lightweight human-readable summary of meaningful repository changes. manifest — documenting `cline skill add SHcommit/ADR-toolkit` plus a manual symlink fallback. Manually verified against Cline CLI 3.0.61. - Expanded `improvements.md` backlog with High and Medium priority items: ReDoS cross-platform safety, 2-phase atomic transaction rollback for `supersede`, ADR overlap/similarity Eval framework, weekly automated maintenance workflows, PR significance bot, `adr lint --fix` auto-repair, interactive HTML graph viewer, and code drift detection. +- Logged a Medium-priority backlog item to fold the Cline CLI adapter into the `harness-parity` CI job (currently manually verified against Cline CLI 3.0.61 only), so Cline/ClinePass version drift is caught automatically like the Codex, Gemini, and Antigravity adapters. ## v1.0.1 (2026-09-02) diff --git a/handoff.md b/handoff.md index 024e44c..e36571c 100644 --- a/handoff.md +++ b/handoff.md @@ -2,55 +2,51 @@ ## Current task -OSS repository governance hardening implementation and independent review. -Original SDD Tasks 1–9 are complete; the follow-up review corrected false live -GitHub assumptions and closed additional supply-chain/configuration gaps. +Cline CLI adapter harness-parity CI coverage gap — logged as a Medium backlog +item. The Cline adapter is currently "Manually verified against Cline CLI 3.0.61" +only; the `harness-parity` CI job does not yet install Cline and exercise it on +push/PR. Codex, Gemini, and Antigravity adapters are already automated. ## Touched files -- Governance config: `.github/CODEOWNERS`, `.github/dependabot.yml`, - `.github/labeler.yml`, `.github/labels.yml`, `.github/ISSUE_TEMPLATE/**`, - `.github/workflows/{labeler,labels,test,release}.yml`. -- Tooling/tests: `pyproject.toml`, `scripts/export_dev_requirements.py`, - `tests/unit/test_github_governance.py`, pre-existing ruff cleanup files. -- Docs: `SECURITY.md`, `project-roadmap.md`, `docs/enterprise-adoption.md`, - `docs/oss-repository-governance-audit.md`, governance design spec, - `changelog.md`, `improvements.md`. +- `improvements.md` — added Medium item "harness-parity CI에 Cline CLI 편입" + with prerequisites (npm package name/version pin, install-path verification, + `preflight`/`init`/`validate` `ok:true` checks). +- `project-roadmap.md` — added "Automate the Cline CLI adapter install-and-run + verification — Backlog." entry under "Harness parity". +- `changelog.md` — one Unreleased line recording the backlog item. +- `handoff.md` — this file (current task + next step). -## Live GitHub changes applied +## Diagnosis (for the next session) -- Synced labels without deleting unrelated labels; added `type:epic` this session. -- Enabled Discussions, Dependabot security updates/alerts, secret scanning and - push protection, private vulnerability reporting, and delete-branch-on-merge. -- Re-verified active branch ruleset `22101891` and tag ruleset `22102322`. +Cline CLI 3.0.61 is installed at `/Users/yangseunghyeon/.npm-global/bin/cline`. +`cline skill list` from the repo root shows `adr-toolkit` as a **Project Skill** +(source: local, from `~/Development/ADR-toolkit/skills/adr-toolkit`) — i.e. the +repo's own `skills/` directory is auto-detected, NOT a global install. +`cline plugin list` is empty and `~/.agents/skills/` is empty, confirming the +adapter is README-only (no Cline TS plugin) and nothing was globally installed. ## Next step -1. Merge PR #34 (`feat(github): add OSS repository governance & supply-chain - hardening`) into `develop` after its CI checks pass. -2. After merge, update ruleset `22101891`: remove the two Python 3.9 contexts; - add all three Python 3.10 contexts plus `lint` and `dependency-audit`; query - effective rules again. +1. (Optional, for personal use) `cline skill add SHcommit/ADR-toolkit --global -y` + to make the skill available outside this repo. +2. (Future PR) Implement the Medium backlog item: confirm `cline`'s npm package + name/version-pin, add a Cline step to `.github/workflows/test.yml` + `harness-parity` job, verify `cline skill add ... --global --yes`, and run + `preflight`/`init`/`validate` from the installed snapshot on each push/PR. + Open a `feature/*` branch per the git flow and merge into `develop` via PR. ## Verification -- CI-equivalent pytest + branch coverage: 558 passed, 92.74% coverage. -- `ruff check .`: passed. -- scoped `mypy --strict`: passed. -- `sync_version.py --check` and `verify_examples.py --check`: passed. -- `pip-audit --strict` in a clean dev-tool environment: no known vulnerabilities. -- actionlint v1.7.12: passed after fixing PR-title expression injection. -- Python package build: wheel and sdist built successfully; emitted only the - tracked PyPA license-metadata deprecation warning. -- Antigravity 1.1.27 artifact: official SHA-512 matched and archive contained - the expected `antigravity` binary. +- `tests/unit/test_cline_adapter.py`: pass (doc-only change, code unaffected). +- `ruff check .`: to be confirmed below. ## Open risks -- Until the governance PR is merged and ruleset contexts are updated, the live - ruleset still names removed Python 3.9 checks and does not require the new - `lint`/`dependency-audit` jobs. -- `pypa/gh-action-pypi-publish` remains `continue-on-error: true`, so a release - can partially succeed; tracked in `improvements.md`. -- Project/milestone/stale automation is deliberately deferred until issue/PR - volume meets the triggers in the audit report. +- Until the Cline harness-parity step lands, Cline CLI/ClinePass version drift + (e.g. `cline skill add` path or `~/.agents/skills/` location changing) will + not be caught by CI. The `adapters/cline/README.md` verification block stays + pinned to 3.0.61 until automated. +- Inherits the prior Open risks from the OSS governance hardening handoff + (ruleset context sync, `continue-on-error` PyPI publish, deferred + issue/PR automation). diff --git a/improvements.md b/improvements.md index 3c96623..a2111e6 100644 --- a/improvements.md +++ b/improvements.md @@ -14,6 +14,17 @@ Backlog derived from `docs/adr-toolkit-audit-report.md`, operational experiences ### Medium +- [ ] **harness-parity CI에 Cline CLI 편입** — `adapters/cline/README.md` 기준 + 여전히 "Manually verified against Cline CLI 3.0.61"뿐, push/PR마다 자동 + 검증이 없어 Cline CLI/ClinePass 버전업 시 회귀를 CI가 못 잡음. Codex/Gemini + 어댑터는 이미 harness-parity job에서 자동 검증 중(`project-roadmap.md` + "Harness parity" 참조). Cline CLI는 npm 글로벌 설치가 가능하므로 + Antigravity(공개 패키지 레지스트리 미지원)와 달리 전제조건은 이미 충족. + 선행 검증 항목: (1) `cline` npm 패키지명/배포 채널/안정 버전 핀 값 확인, + (2) CI runner에서 `cline skill add SHcommit/ADR-toolkit --global --yes` 후 + `~/.agents/skills/adr-toolkit` 설치 경로 검증, (3) `preflight`/`init`/ + `validate` 전 단계 `ok:true` 검증 구간 추가. (`project-roadmap.md` "Harness + parity", `adapters/cline/README.md` "Verification status") - [ ] **ADR 중첩/유사도 감지 및 파편화 방지 Eval 시스템** — 작성하려 하거나 기존에 존재하는 ADR 간 내용/주제/영향 범위의 중첩(overlap) 및 파편화를 사전 감지하는 로직과, ADR 집합의 중복·충돌·일관성을 지속해서 평가/검증하는 Evaluation 프레임워크 구축. (유사도 기반 `supersede` 권장, 중복 작성 방지) - [ ] **개발용 플러그인 메인 저장소 Symlink 자동화 스크립트** — local development 시 `~/.gemini/config/plugins/adr-toolkit`이 임시 워크트리가 아닌 메인 저장소를 항상 바라보도록 하고, 버전 갱신 시 symlink 유효성을 체크하는 도구/가이드 정립. - [ ] **주간 자동 ADR 헬스체크 및 무효화/깨진 링크 점검 오토메이션** — 주 1회(GitHub Actions Scheduled Workflow 등) 실행되어 오래 방치된 `PROPOSED` ADR, 리팩터링으로 깨진 `affected_paths` 경로, 버전 드리프트를 자동 점검하고 이슈/알림을 생성하는 주간 유지보수 시스템. diff --git a/project-roadmap.md b/project-roadmap.md index 2b02bbf..bcd7100 100644 --- a/project-roadmap.md +++ b/project-roadmap.md @@ -23,6 +23,13 @@ before implementation. Concrete selected work belongs in `improvements.md`. — **Done (2026-09-05).** `harness-parity` downloads a versioned Linux release artifact, verifies its official SHA-512 digest, and exercises the adapter. The mutable `curl | bash` bootstrapper is intentionally not executed in CI. +- **Automate the Cline CLI adapter install-and-run verification** — Backlog. + `adapters/cline/` is manually verified against Cline CLI 3.0.61 only; the + `harness-parity` job does not yet install Cline and exercise `cline skill add` + + `preflight`/`init`/`validate`. Cline CLI is npm-installable, so the + precondition (public package registry) is met — tracked as a Medium item in + `improvements.md`. Revisit once the npm package name/version-pin and the + install-path verification steps are confirmed. - **Harness-specific hook support beyond Claude Code SessionStart when equivalent stable extension points exist** — **Evaluated, not pursued (2026-08-31).** The precondition is now true: Codex CLI has a config-driven `SessionStart`/`UserPromptSubmit` hook system (`~/.codex/hooks.json`), and Gemini CLI ships `gemini hooks migrate` specifically to port Claude Code hooks over. But ADR Toolkit doesn't use a hook even on Claude Code today (it relies entirely on skill auto-discovery), and a hook that fires on every session regardless of relevance cuts against this project's own restraint principle (max 3 questions, judge what's significant, minimize interruption). The plausible use cases (nudge about an unfinished draft ADR, warn about a governed path) are already covered by deliberately invoking `discover` and `check` rather than an always-on hook. Revisit only if real usage shows people miss something that `discover`/`check` can't catch without a session-start nudge -- not just because the extension points now exist. ## ADR navigation and scale