feat(unic-archon-dlc): port /qa to Archon pipeline + issue-producing on-ramp (redesign step 08)#268
Merged
Merged
Conversation
…on-ramp (redesign step 08) Port the inert type:-style unic-dlc-qa workflow to the key-discriminated node schema (ADR-0011), inheriting /build's self-contained-node conventions (ADR-0023 §5). Pipeline: bootstrap → guard → e2e → coverage-gate → uat-prep → uat-gate → verify-pr-base → merge-gate → merge. Why: - The shipped type: interactive UAT gate never paused (silent-fail per ADR-0011), and it read a flat .archon/unic-dlc.config.json with docs/workflow/<slug>/ paths. - Two real approval gates (UAT + merge) now honour gates.qa (HITL default, AFK opt-in). Downstream nodes use trigger_rule: all_done so AFK skips the gates and auto-merges a clean build; the merge node fail-closes (when on e2e/coverage results + verified PR base) so a red build or wrong base never auto-merges. - /qa becomes an issue-producing on-ramp (PLAN #5): a UAT rejection files each defect directly as a ready-for-agent tracker issue (composing the configured tracker + classification.labels as the single source of truth, Matt's qa brief shape, AI disclaimer) that feeds /tickets — not lib/tracker-adapter.mjs (dissolved). Filed ready-for-agent (not needs-triage) since the UAT rejecter already vetted it. On-ramp routes to /tickets per PLAN #8, reconciling the step doc's "feed /build". - New qa config block { e2e_command, coverage_threshold } resolving qa.* ?? build.*; mergeConfig back-fills existing configs (no /setup change). A missing command now skips with a warning instead of hard-failing. ADR-0025 records the port, two-gate model, AFK-safe all_done + fail-closed merge, and the finding-capture on-ramp. archon validate passes; full behavioural validation (gates pause, AFK auto-merges, red build blocks) is a manual follow-up (ADR-0011 §6). Bumps 0.6.0 → 0.7.0. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Contributor
There was a problem hiding this comment.
Pull request overview
Ports the unic-dlc-qa Archon workflow to the key-discriminated node schema and turns /qa into an issue-producing on-ramp, backed by a new QA-focused config block and accompanying ADR/docs/version updates.
Changes:
- Add
qa: { e2e_command, coverage_threshold }to the DLC config defaults and extend config merge behavior with tests. - Replace the old
type:-style QA workflow with a key-discriminated pipeline including e2e/coverage verdict reporting, UAT + merge approvals, PR-base verification, and UAT-reject issue filing. - Document the redesign step/ADR updates and bump
unic-archon-dlcto0.7.0with changelog entry.
Reviewed changes
Copilot reviewed 12 out of 12 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| apps/claude-code/unic-archon-dlc/test/config-schema.test.mjs | Adds tests for default qa config and mergeConfig backfill behavior. |
| apps/claude-code/unic-archon-dlc/package.json | Bumps package version to 0.7.0. |
| apps/claude-code/unic-archon-dlc/lib/config-schema.mjs | Adds qa defaults to defaultConfig(). |
| apps/claude-code/unic-archon-dlc/docs/redesign/README.md | Marks redesign step 08 /qa as completed with updated notes. |
| apps/claude-code/unic-archon-dlc/docs/adr/README.md | Adds ADR-0025 to the ADR index. |
| apps/claude-code/unic-archon-dlc/docs/adr/0025-qa-pipeline-onramp.md | Introduces ADR documenting the new /qa pipeline + on-ramp design. |
| apps/claude-code/unic-archon-dlc/CHANGELOG.md | Adds 0.7.0 entry describing /qa port + on-ramp and new config block. |
| apps/claude-code/unic-archon-dlc/AGENTS.md | Updates plugin doctrine/invariants to include new /qa behavior. |
| apps/claude-code/unic-archon-dlc/.claude-plugin/plugin.json | Bumps plugin manifest version to 0.7.0. |
| apps/claude-code/unic-archon-dlc/.claude-plugin/marketplace.json | Bumps marketplace version to 0.7.0. |
| apps/claude-code/unic-archon-dlc/.archon/workflows/unic-dlc-qa.yaml | Replaces inert workflow with key-discriminated /qa pipeline and approvals/on-ramp. |
| apps/claude-code/unic-archon-dlc/.archon/commands/unic-dlc-qa.md | Updates /unic-dlc-qa command docs to match new pipeline and config. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- base_ok is now a string enum ['true','false'] not a boolean, so the merge-gate + merge `when` comparisons (`== 'true'`) are unambiguous string equality — a JSON boolean's coercion in Archon's when-grammar was undocumented and this gates the fail-closed merge safety. - bootstrap now always emits every required output_format field (with stated defaults) in the no-slug/no-config/no-prd branches, so the object validates before guard-not-ready cancels. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Redesign step 08 — ports the
unic-dlc-qaArchon box off the inerttype:-style schema and turns/qainto an issue-producing on-ramp. Followsdocs/redesign/08-qa.md; design in ADR-0025.What changed
unic-dlc-qa.yamlto the key-discriminated node schema (ADR-0011), inheriting/build's self-contained-node conventions (ADR-0023 §5). Pipeline:bootstrap → guard → e2e → coverage-gate → uat-prep → uat-gate → verify-pr-base → merge-gate → merge,interactive: true.gates.qa(HITL default, AFK opt-in).qaconfig block{ e2e_command, coverage_threshold }resolvingqa.* ?? build.*;mergeConfigback-fills existing configs (no/setupchange) + 3 new tests.Why
type: interactiveUAT gate never paused (silent-fail per ADR-0011); config reads were flat JSON withdocs/workflow/<slug>/paths.trigger_rule: all_doneso AFK skips both gates and auto-merges a clean build; the merge node fail-closes (whenon e2e/coverage results + verified PR base) so a red build or wrong base never auto-merges, in either mode.ready-for-agenttracker issue — composing the configured tracker +classification.labels(single source of truth), Matt'sqabrief shape (blocked-by honesty, no file paths), and the> *This was generated by AI during QA.*disclaimer — feeding/tickets. Notlib/tracker-adapter.mjs(dissolved). Filedready-for-agent(notneeds-triage) because the UAT rejecter already vetted it. Routes to/ticketsper PLAN Develop #8, reconciling the step doc's "feed/build".Verification
pnpm --filter unic-archon-dlc typecheck✓ ·test✓ (106) ·verify:changelog✓pnpm ci:check✓ (Biome + Prettier, whole tree)archon validate workflows unic-dlc-qa→ ok🤖 Generated with Claude Code