mirror of
https://github.com/garrytan/gstack.git
synced 2026-10-02 17:40:02 +02:00
- A1: the retired Eng lexical oracle (evaluateEngSeedCoverage, isEngSeedDecisionAUQ), the completion-handoff detector and the retained corpus had no paid caller since v1.87.6; delete their 26 replay files, ~2.6k helper LOC and fixtures, and the dead blocks in 8 mixed files (live hasNativePlanTerminal / batching assertions stay). - A2: dead viewport approvers in autoplan-artifact-permission and their 11 replay files + fixtures; recorder/launcher cases stay. - A3: never-wired oracles and seeders (autoplan-phase-order, eng-finding-fixture, ceo-paired-fixture, design-ui-scope, plan-skill-completion, pty-current-screen, required-reads, transcript-section-logger); plan-seed-submission now decodes through the production createPtyScreen; section manifests name their actual guard. - A4: zero-reference helper exports, plus execGit and invokeAndObserve found by the reachability pass. - 52 fixtures orphaned by the deletions; touchfile and selection-table entries for every deleted path.
45 lines
2.5 KiB
JSON
45 lines
2.5 KiB
JSON
{
|
|
"$schema": "https://gstack.dev/schemas/section-manifest.json",
|
|
"skill": "autoplan",
|
|
"version": 1,
|
|
"note": "PASSIVE registry (v2 plan T9 / CM2). Fields are IDs, file paths, human titles, and human-readable trigger text ONLY. The skeleton's phase sequencing (Sequential Execution + the Phase 0 UI/DX scope detection) is the ONLY place that decides WHEN to read a section \u2014 Phase 2 and Phase 2.5 are conditional and their sections must NOT be read when their scope is absent; required section reads are checked by test/skill-e2e-autoplan-chain.test.ts (auditAutoplanMethodReads). No machine predicate here \u2014 see docs/designs/v2_PLAN.md:663.",
|
|
"sections": [
|
|
{
|
|
"id": "ceo-phase",
|
|
"file": "ceo-phase.md",
|
|
"title": "Phase 1: CEO review (strategy & scope) \u2014 override rules, dual voices, required outputs",
|
|
"trigger": "starting Phase 1 (CEO review \u2014 always runs, after the Phase 0.5 preflight)"
|
|
},
|
|
{
|
|
"id": "design-phase",
|
|
"file": "design-phase.md",
|
|
"title": "Phase 2: design review \u2014 override rules, dual voices, 7-pass checklist",
|
|
"trigger": "starting Phase 2 (design review \u2014 ONLY if UI scope was detected in Phase 0; skip the read entirely otherwise)"
|
|
},
|
|
{
|
|
"id": "eng-phase",
|
|
"file": "eng-phase.md",
|
|
"title": "Phase 3: eng review + dual voices \u2014 override rules, test review, required outputs",
|
|
"trigger": "starting Phase 3 (eng review \u2014 always runs, after all earlier applicable phases have closed)"
|
|
},
|
|
{
|
|
"id": "dx-phase",
|
|
"file": "dx-phase.md",
|
|
"title": "Phase 2.5: DX review \u2014 override rules, dual voices, 8-dimension scorecard",
|
|
"trigger": "starting Phase 2.5 (DX review \u2014 ONLY if developer-facing scope was detected in Phase 0; skip the read entirely otherwise)"
|
|
},
|
|
{
|
|
"id": "phase-close",
|
|
"file": "phase-close.md",
|
|
"title": "Close the current review phase \u2014 current readback, reconciliation and visible completion",
|
|
"trigger": "closing a review phase, after its reviews finish and before announcing completion or loading the next phase (read afresh at each exit)"
|
|
},
|
|
{
|
|
"id": "tasks-aggregator",
|
|
"file": "tasks-aggregator.md",
|
|
"title": "Phase 4: Implementation Tasks aggregator (builds $AGGREGATED_TASKS for the gate)",
|
|
"trigger": "presenting the Final Approval Gate (Phase 4) \u2014 the aggregator computes $AGGREGATED_TASKS that the gate message substitutes"
|
|
}
|
|
]
|
|
}
|