Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
"name": "unic-archon-dlc",
"source": "./",
"tags": ["productivity", "workflow", "ai-development"],
"version": "0.9.0"
"version": "0.10.0"
}
]
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "unic-archon-dlc",
"version": "0.9.0",
"version": "0.10.0",
"description": "A complete Archon-powered AI development lifecycle as an installable DLC pack — explore, specs, tickets, build, pr-review, qa, triage, improve-architecture, and cleanup workflows.",
"author": {
"name": "Unic AG",
Expand Down
1 change: 1 addition & 0 deletions apps/claude-code/unic-archon-dlc/AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ Load-bearing invariants. These either originate in a Plugin ADR or are policy de
- **`/qa` gates on `gates.qa` and fail-closes the merge.** The QA Archon pipeline (e2e → coverage → UAT → verify-pr-base → merge) has two `approval:` gates (UAT + merge), both HITL by default and skipped in AFK; downstream nodes use `trigger_rule: all_done` so AFK auto-merges a clean build, while the merge node's fail-closed `when` blocks auto-merging a red e2e/coverage or a wrong PR base. `/qa` is also an **issue-producing on-ramp**: a UAT rejection files each defect directly as a `ready-for-agent` tracker issue (composing the configured tracker + `classification.labels`, Matt's `qa` brief shape, AI disclaimer) that feeds `/tickets` — it does not just halt. Never `lib/tracker-adapter.mjs` (dissolved). See [ADR-0025](docs/adr/0025-qa-pipeline-onramp.md).
- **`/pr-review` is a self-contained fan-out Archon review that harvests, never depends.** The PR-review Archon pipeline (bootstrap → guard → prep → seven parallel aspect nodes → synthesize → reconcile → review-gate → post) reviews the open PR and posts a summary comment + inline comments via the configured tracker (MCP-first, CLI-fallback). It **harvests `unic-pr-review`'s review learnings** (confidence→severity rubric, structured summary, hidden-marker idempotency, conditional spawn table, two-surface posting) with **no ADO code and no runtime dependency** on that plugin. `prep` composes **one Intent Brief** (linked work items + Confluence/MD docs + PR description + `PRD.md`) that is **injected into every aspect** (the quality lever) and surfaces cross-source contradictions; intent-check is skipped only when no source resolves. Re-review is first-class — a dedicated `reconcile` node keyed on the `<!-- unic-dlc-pr-review:iteration=N -->` marker (never author identity) classifies findings new / still-present / fixed / regressed. The `review-gate` confirms before posting `when gates.pr-review == hitl` (AFK posts directly); posting is advisory — the real merge gate is `/qa`. Never `lib/tracker-adapter.mjs` (dissolved). See [ADR-0026](docs/adr/0026-pr-review-generic-archon-harvest.md).
- **`/improve-architecture` is a skill that composes Matt's method and owns ADR superseding.** The off-line, on-demand arch-health box is a **command/skill** (its core is a design grilling loop that needs the live conversation — [ADR-0017](docs/adr/0017-container-follows-structural-need.md)), not an Archon workflow. It **composes `improve-codebase-architecture` verbatim** (technical drift + deepening HTML report + `/grilling` loop, with `/codebase-design` vocabulary + `/domain-modeling`) and **earns its place** ([ADR-0021](docs/adr/0021-earns-its-place-compose-verbatim.md)) by adding three DLC layers the raw skill lacks: an **intent-drift** pass (PRD stories/ACs vs shipped), a **durable `arch-review.md`** artifact under `<artifacts_dir>/` ([ADR-0015](docs/adr/0015-workflows-slug-artifact-home.md)), and an **ADR-consolidation gate with superseding**. Two modes: `<slug>` → intent-grounded against that build session; no-arg → repo-wide sweep (dated artifact, intent-drift skipped). Superseding works across **both ADR homes** (plugin-local + repo-root), never deletes an ADR (old status → `Superseded by ADR-NNNN`, index updated in the matching `README.md`). Config load is **lenient** (off-line, touches no tracker); **no new config key**, no `lib/` change, no auto-hook (PLAN #8). It does **not** touch the legacy `unic-dlc-cleanup.yaml` — that is `/cleanup`'s (step 11) scope. See [ADR-0027](docs/adr/0027-improve-architecture-skill-superseding.md).
- **`/cleanup` is the repo-global operational janitor — a report-first command, not an Archon workflow.** It prunes the debris a lifecycle accumulates: merged/stale worktrees, stale branches/PRs, and stale `<artifacts_dir>/<slug>/` dirs. It **composes** Archon's own `archon isolation list` / `archon isolation cleanup [days] [--merged] [--include-closed]` / `archon complete <branch>` for worktree/branch lifecycle and the configured tracker (`tracker.access`, MCP-first/CLI-fallback) for PR/branch state — never a `tracker-adapter` lib (dissolved). It is a **command** because it mutates sibling worktrees/branches/PRs and so cannot run inside an isolated worktree ([ADR-0017](docs/adr/0017-container-follows-structural-need.md)). It **defaults to a report-only dry-run and never auto-deletes**: pruning needs `--apply` plus an explicit **per-category** confirmation, and `cleanup.dry_run: true` (the shipped default) keeps even `--apply` in report mode until overridden. A slug dir is prunable **only if** its PR/branch is merged or closed (`cleanup.prune_slug_dirs` defaults `false`); slug-dir pruning skips any dir containing a `LICENSE` (repo policy). It reads the new `cleanup` config block (`stale_days`/`dry_run`/`prune_slug_dirs`); config load is lenient (off-line). This step **retired** the legacy `unic-dlc-cleanup.yaml` + command stub, whose arch-review + ADR-consolidation content moved to `/improve-architecture` ([ADR-0027](docs/adr/0027-improve-architecture-skill-superseding.md)). See [ADR-0028](docs/adr/0028-cleanup-operational-janitor.md).
- **Dogfooding note.** This monorepo has had Setup run against it; the generated artefacts live under [`docs/agents/`](../../../docs/agents/) at the repo root and are managed by the marker-delimited block in the root [`AGENTS.md`](../../../AGENTS.md). Those files describe the target two-axis architecture (see [ADR-0016](docs/adr/0016-dlc-thin-process-layer.md)–[ADR-0018](docs/adr/0018-generic-core-config-compose.md)) with the tracker as the single source of truth, and should be treated as the canonical agent guidance for this repo, not as a current-practice snapshot.

## External dependencies
Expand Down
15 changes: 15 additions & 0 deletions apps/claude-code/unic-archon-dlc/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,21 @@
### Fixed
- (none)

## [0.10.0] — 2026-07-03

### Breaking
- (none)

### Added
- **`/cleanup` repo-global operational janitor command** (ADR-0028) — reports (and, on explicit opt-in, prunes) the debris an Archon-driven lifecycle accumulates: **merged/stale worktrees**, **stale branches/PRs**, and **stale `<artifacts_dir>/<slug>/` dirs**. It is a **Claude Code command, not an Archon workflow** (it mutates sibling worktrees/branches/PRs, so it cannot run inside an isolated worktree — ADR-0017), **composing** Archon's own `archon isolation list` / `archon isolation cleanup [days] [--merged] [--include-closed]` / `archon complete <branch>` for worktree/branch lifecycle and the configured tracker (`tracker.access`, MCP-first/CLI-fallback) for PR/branch state — no `tracker-adapter` lib. **Report-first and never auto-deletes:** pruning requires `--apply` **plus** an explicit **per-category** confirmation, and `cleanup.dry_run: true` (the shipped default) keeps even `--apply` in report mode until overridden. A slug dir is prunable **only if** its PR/branch is merged or closed (`cleanup.prune_slug_dirs` defaults `false`); slug-dir pruning skips any dir containing a `LICENSE` (repo policy). Config load is lenient (off-line); degrades to defaults when config or the tracker is absent.
- **`cleanup` config block** in `.archon/unic-dlc.config.yaml` — `stale_days` (default 7), `dry_run` (default true), `prune_slug_dirs` (default false). Added to `defaultConfig()` with merge/validate test coverage; **not** a mandatory path, so existing configs stay valid and auto-fill the block on next merge.

### Removed
- **Retired the legacy `unic-dlc-cleanup` Archon workflow + command stub** (`.archon/workflows/unic-dlc-cleanup.yaml`, `.archon/commands/unic-dlc-cleanup.md`). Its arch-review + ADR-consolidation content was harvested into `/improve-architecture` in v0.9.0 (ADR-0027); the `cleanup` name now belongs to the operational janitor (ADR-0028).

### Fixed
- (none)

## [0.9.0] — 2026-07-03

### Breaking
Expand Down
16 changes: 16 additions & 0 deletions apps/claude-code/unic-archon-dlc/CONTEXT.md
Original file line number Diff line number Diff line change
Expand Up @@ -154,6 +154,22 @@ Architecture Decision Record. Written to `docs/adr/NNNN-*.md` only after explici
approval in the `/improve-architecture` command/skill (which also supersedes stale ADRs).
_Avoid_: decision doc, architecture note

### Operational hygiene

**Operational cleanup**:
The git/Archon hygiene the `/cleanup` command performs — pruning merged/stale worktrees, stale
branches/PRs, and stale `workflows/<slug>/` artifact dirs. It composes `archon isolation` /
`archon complete` + the configured tracker; it is report-first and never auto-deletes. Distinct from
**arch-review** (the `/improve-architecture` code-health sense of "cleanup"): operational cleanup
touches no code and writes no ADRs. See `docs/adr/0028-cleanup-operational-janitor.md`.
_Avoid_: cleanup (bare — ambiguous with arch-review), garbage collection

**cleanup config block**:
The `.archon/unic-dlc.config.yaml` `cleanup` keys the `/cleanup` command reads: `stale_days`
(default 7), `dry_run` (default true), `prune_slug_dirs` (default false). Off-line and non-mandatory
— the command degrades to these defaults when config or the tracker is absent.
_Avoid_: cleanup settings, janitor config

### PR-review artifacts

**Review comment**:
Expand Down
Loading
Loading