-
Notifications
You must be signed in to change notification settings - Fork 0
Completed Features
Reverse-chronological log of feature deliveries in this repo. One line in the overview table per plan; a dated section below with branch/commit ref and a short summary. Maintained by the documenter sub-agent at /release time.
This page is narrative, not a changelog — the authoritative version log is CHANGELOG.md. Use this page when you want to understand what shipped and why without reading every commit; use CHANGELOG.md when you want the semver history.
| Date | Plan / release | Features flipped | Notes |
|---|---|---|---|
| 2026-05-11 | v1.0.0 — Three-adapter scope; Codex dropped; 1.0.0 commitment |
BREAKING: Codex adapter removed; true-sync --update semantics; firm-semver 1.0.0 floor |
13 commits (v0.9.0..v1.0.0); new ADR 0005; ~1300 lines net removed; first major version; parity invariant simplified to three adapters |
| 2026-04-23 |
v0.9.0 — Diátaxis documentation spec + /doctor skill |
Diátaxis rollout (ADR 0004, 7-task plan); migrate-to-diataxis skill; mode-aware documenter writes; /doctor skill for post-install verification |
10 commits (v0.8.7..v0.9.0); new ADR 0004; two new shared skills; scripts/check-wiki.py shipped + flipped to --strict; wiki dogfood reshaped with git mv for blame |
| 2026-04-21 | v0.8.7 — GitHub Projects wiring + documenter end-to-end dogfood |
feat-gh-projects-integration (pending — gated on offer-cycle observation); feat-documenter-subagent (this sweep is the dogfood) |
4 commits (801dbd7..HEAD), 23 files; new ADR 0003, new Feature page
|
Commit range: v0.9.0..v1.0.0 (13 commits on main). Release notes: v1.0.0. ADR: 0005 — Drop Codex support.
What shipped:
-
Codex adapter removed. Supported hosts narrow from four to three: Claude Code, Antigravity, Gemini CLI.
adapters/codex/(15 files),harness/agents/codex-adapter-research.md(294 lines), and codex-specific code across five scripts all gone. Repo-public surfaces (README, AGENTS.md, adapter READMEs, 9 wiki pages) scrubbed of Codex mentions. Historical entries in CHANGELOG.md and past-release sections of this page deliberately preserved as history. -
True-sync
--updatesemantics. Beyond removing the codex install code,install.shandinstall.ps1now wipe twelve fully-harness-authored subdirs before recreating from source on--update. Orphan paths from prior versions (e.g..codex/from v0.9.0 installs) are automatically removed and reported asremoved legacy <path>/. User state files at.harness/root, mergedsettings.jsonfiles,wiki/**, and rootAGENTS.md/CLAUDE.mdare deliberately preserved. The mechanism generalizes: any future host or skill removal also auto-cleans without per-removal patches. - v1.0.0 commitment. Semver becomes firm going forward: major = breaking, minor = additive, patch = fixes. The harness's pre-1.0 churn period closes; future breaking changes (e.g. dropping Antigravity, restructuring adapters) become explicit major-version events, and the planned roadmap (agent-toolkit repo split, ContextVault, design skill, base-skill primitives, evidence-tracking) becomes clear minor bumps.
Why it shipped this shape:
The Codex adapter had been paying real ongoing costs without offsetting workflow value: Codex's built-in /plan and /review collisions forced a harness- prefix on every Codex phase-command (the only adapter with that divergence); the codex install block was a side-channel for delivering Gemini's shared skills (.agents/skills/), which made the codex removal load-bearing for two hosts; and the personal-dev-env scope had narrowed to Claude Code + Antigravity + Gemini CLI. Combined with the harness's maturity, this was the right moment to graduate to v1.0.0 — the host-scope reduction is a breaking change anyway, and a firm-semver 1.0 floor better communicates the stability commitment than another 0.x point release.
The --update true-sync amendment is worth noting separately. The user surfaced it during task 2 closeout: "removing the codex install code stops new installs from creating codex paths, but --update on an existing v0.9.0 install leaves orphan files." Rather than ship a codex-specific cleanup patch, the fix was generalized: declare MANAGED_PARENTS (12 subdirs that are fully harness-authored), wipe them on --update, then run the normal install flow which recreates from source. Codex becomes the first user of a mechanism that handles all future removals.
What it doesn't do:
- Anyone running agentic-harness through Codex has no harness adapter post-v1.0.0. The phase-gated workflow is host-agnostic, but they must migrate to one of the three remaining adapters.
- Codex's built-in
/planand/reviewsemantics will not be harness-aware in a Codex session against a harness-installed project. -
cross-review.shpreviously listedcodexas an option for true cross-vendor review; that fallback drops toclaudeonly.
Tracked as:
- 5-task plan in
.harness/PLAN.md(Codex-removal sweep) — all tasks[x], plus a task-2 amendment for the true-sync--updatesemantics. - v1.0.0 — release notes, CHANGELOG.md
Related pages:
- ADR 0005 — Drop Codex support; three-adapter scope
- Update-Installed-Harness — v1.0.0+ sync semantics section
-
Installer-CLI —
--updateflag description updated - Repo-Layout — three-adapter table
Commit range: v0.8.7..v0.9.0 (10 commits on main). Release notes: v0.9.0.
What shipped:
-
Diátaxis four-mode wiki convention end-to-end. ADR 0004 supersedes ADR 0002's audience-based layout (
wiki/{development,operational,design,architecture}/) with the four Diátaxis modes —tutorials/,how-to/,reference/,explanation/(withexplanation/decisions/for ADRs). The rollout landed as a 7-task plan: (1)scripts/check-wiki.pyshipped as a structural lint with 11 rules (a–k); (2)templates/wiki/reshaped so new installs land directly in the four-mode layout; (3) this repo's ownwiki/migrated file-by-file withgit mvto preserve blame; (4) thedocumentersub-agent rewired to write to mode-specific targets per phase; (5) a newmigrate-to-diataxisskill for one-shot conversion of already-installed projects; (6)check-wiki.pyflipped from warn-only to--strictin CI; (7) harness phase specs retargeted to the new mode dirs. -
/doctorskill — companion totelemetry.shfor post-install correctness. Default mode runs structural discovery only: verifies expected phase commands, sub-agents, skills, state files, and hooks are present and parseable in the detected adapter (<5s, no tokens).--liveadds six real probes —explorerdispatch on a trivial prompt,adversarial-reviewerdispatch requiring an executable artifact (not prose),ship-release --dry-run,migrate-to-diataxispreview on an already-migrated tree,dependabot-fixerno-match path, and a hook synthetic trigger. Never mutates repo state. Canonical spec atharness/skills/doctor.md; adapter wrappers for claude-code, antigravity, and codex (Gemini reuses the Codex delivery). -
CONTRIBUTING.mdextracted from the README (which dropped 126 → 64 lines). CI matrix, invariant list, and local-gate command set now live at their natural home.
Why it shipped this shape:
Diátaxis gives readers a clear mental model before they open a page — "learn / do / look up / understand" is more durable than "dev / ops / design / architecture" (which conflates audience with intent, and blurs when a page serves multiple audiences). The migration skill exists because ADR changes that break installed projects are a tax the harness should pay, not the user. /doctor exists because file-presence smoke tests answer "is it there" but not "does it work", and several install regressions over the past quarter could have been caught pre-use by a cheap structural + live-probe check.
First dogfood of /doctor caught a real spec bug: the initial skill required a name: frontmatter field on every surface, but Claude Code phase commands, Antigravity workflows, and Gemini TOML commands intentionally have no name: field (name is implicit from filename). Spec and all three adapter wrappers were corrected inside the same release (d078485). Live probes (explorer and adversarial-reviewer) both matched their pass criteria — adversarial returned a file:line pointer plus a failing pytest body in 10.8s rather than prose.
What it doesn't do:
- No auto-install on top of a half-installed tree —
/doctorreports gaps and points atinstall.sh; auto-repair would mask misconfiguration. - No CI coverage for
/doctoritself — the skill dispatches sub-agents, which requires an LLM session and can't run in headless CI.scripts/check-parity.shandcheck-references.pycatch the structural facets that don't need an agent. - No additional Diátaxis modes. Five-mode extensions (glossary, changelog) were explicitly rejected in
harness/documentation.md§Non-goals — glossaries live underreference/, changelogs underreference/Completed-Features.md.
Tracked as:
- v0.9.0 — release notes, CHANGELOG.md
- 7-task rollout plan in
.harness/PLAN.md— Status: done
Related pages:
- ADR 0004 — Diátaxis documentation spec
-
CI Gates reference — now includes the
check-wikirow -
harness/skills/doctor.md,harness/skills/migrate-to-diataxis.md(canonical specs; not mirrored to the wiki because they target harness contributors, not installed-project users)
Commit range: 801dbd7^..HEAD (4 commits, all on main).
What shipped:
-
GitHub Projects surface across all four phases.
/plan,/work,/review, and/releaseeach now offer to file deferred-work items to a user- or org-owned Project linked to the repo, preview-and-ask at everyghcall, graceful-skip when.harness/project.jsonis absent. Propagated to all four adapters (claude-code, antigravity, codex, gemini). See GitHub-Projects-Integration. -
ProjectsV2 ownership-and-linking decision. The dogfood run surfaced that ProjectsV2 has no repo-owned form;
/setupnow runs a two-stepgh project create+gh project link --repoflow to make the project visible under the repo. Rationale in ADR 0003. - Dropped the "1 proposal per session" cap. Replaced with a quality-bar-plus-batching rule (single preview at phase end, per-phase soft caps as reminders not hard limits). Avoids silent misses when a session genuinely surfaces multiple deferrals.
-
README refresh to v0.8.2.
/setupscope; not documenter's edit — main agent's. Removed stale "v0.1" string, addedship-releaseskill, addeddocumentersub-agent, added wiki-sync pointer.
Why it shipped this shape:
The /bugfix Issues lifecycle shipped in v0.8.2; this plan closed the symmetric half — the "defer this for later" flow that parallels "fix this now". The heuristic for detecting deferrals is intentionally soft (LLMs will miss or over-propose); mitigation is the mandatory preview-and-ask plus the per-phase batching rule. A noisy proposal the user declines is cheap; a silent miss is recoverable.
What it doesn't do:
- Task 3 part B ("observe an offer-accept or offer-decline cycle in a real phase session") is still gated. The
feat-gh-projects-integration.passesflag staysfalseuntil a future phase session exercises the wiring on a real deferral. - No auto-detection of org vs user ownership; the user picks interactively at
/setup. - Classic (pre-ProjectsV2) projects aren't supported.
Tracked as:
-
feat-gh-projects-integration(currentlypasses: false— gated on dogfood observation) -
feat-documenter-subagent(this sweep is the dogfood of the spec)
Related pages:
- GitHub-Projects-Integration — feature design + implementation.
- ADR 0003: ProjectsV2 ownership and linking — the two-call create-plus-link decision.
-
Cut-A-Release — the procedure that invokes
ship-release.
🔧 How-to
- Installer CLI
- Detection rules
- Project config
- Migration tool
- CI gates
- Repo layout
- Vault lint checks
- Note relatedness signals
- Vault write protocol
- Queue status lite
- AgentMemory context payload
- Process seam
- Storage seam
- Auto-orchestration config
- Capability resolver
- Design governance
- Compatibility
- Completed features
- Memory MCP tools