@warpgogol/forge 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +149 -0
- package/README.md +164 -0
- package/bin/cli.js +16 -0
- package/dist/bin/cli.d.ts +3 -0
- package/dist/bin/cli.d.ts.map +1 -0
- package/dist/bin/cli.js +265 -0
- package/dist/bin/cli.js.map +1 -0
- package/dist/os/adr/adr.module.d.ts +3 -0
- package/dist/os/adr/adr.module.d.ts.map +1 -0
- package/dist/os/adr/adr.module.js +112 -0
- package/dist/os/adr/adr.module.js.map +1 -0
- package/dist/os/adr/frontmatter-io.d.ts +11 -0
- package/dist/os/adr/frontmatter-io.d.ts.map +1 -0
- package/dist/os/adr/frontmatter-io.js +64 -0
- package/dist/os/adr/frontmatter-io.js.map +1 -0
- package/dist/os/adr/handlers/archive.d.ts +24 -0
- package/dist/os/adr/handlers/archive.d.ts.map +1 -0
- package/dist/os/adr/handlers/archive.js +162 -0
- package/dist/os/adr/handlers/archive.js.map +1 -0
- package/dist/os/adr/handlers/list-create.d.ts +5 -0
- package/dist/os/adr/handlers/list-create.d.ts.map +1 -0
- package/dist/os/adr/handlers/list-create.js +165 -0
- package/dist/os/adr/handlers/list-create.js.map +1 -0
- package/dist/os/adr/handlers/validate.d.ts +4 -0
- package/dist/os/adr/handlers/validate.d.ts.map +1 -0
- package/dist/os/adr/handlers/validate.js +219 -0
- package/dist/os/adr/handlers/validate.js.map +1 -0
- package/dist/os/adr/index.d.ts +8 -0
- package/dist/os/adr/index.d.ts.map +1 -0
- package/dist/os/adr/index.js +18 -0
- package/dist/os/adr/index.js.map +1 -0
- package/dist/os/adr/types.d.ts +59 -0
- package/dist/os/adr/types.d.ts.map +1 -0
- package/dist/os/adr/types.js +54 -0
- package/dist/os/adr/types.js.map +1 -0
- package/dist/os/audit/audit.module.d.ts +3 -0
- package/dist/os/audit/audit.module.d.ts.map +1 -0
- package/dist/os/audit/audit.module.js +44 -0
- package/dist/os/audit/audit.module.js.map +1 -0
- package/dist/os/audit/frontmatter-io.d.ts +12 -0
- package/dist/os/audit/frontmatter-io.d.ts.map +1 -0
- package/dist/os/audit/frontmatter-io.js +73 -0
- package/dist/os/audit/frontmatter-io.js.map +1 -0
- package/dist/os/audit/handlers/archive.d.ts +4 -0
- package/dist/os/audit/handlers/archive.d.ts.map +1 -0
- package/dist/os/audit/handlers/archive.js +167 -0
- package/dist/os/audit/handlers/archive.js.map +1 -0
- package/dist/os/audit/index.d.ts +6 -0
- package/dist/os/audit/index.d.ts.map +1 -0
- package/dist/os/audit/index.js +16 -0
- package/dist/os/audit/index.js.map +1 -0
- package/dist/os/audit/types.d.ts +12 -0
- package/dist/os/audit/types.d.ts.map +1 -0
- package/dist/os/audit/types.js +17 -0
- package/dist/os/audit/types.js.map +1 -0
- package/dist/os/compass/compass.module.d.ts +3 -0
- package/dist/os/compass/compass.module.d.ts.map +1 -0
- package/dist/os/compass/compass.module.js +162 -0
- package/dist/os/compass/compass.module.js.map +1 -0
- package/dist/os/compass/handlers/compass-audit-handler.d.ts +36 -0
- package/dist/os/compass/handlers/compass-audit-handler.d.ts.map +1 -0
- package/dist/os/compass/handlers/compass-audit-handler.js +238 -0
- package/dist/os/compass/handlers/compass-audit-handler.js.map +1 -0
- package/dist/os/compass/handlers/compass-change-summary-handler.d.ts +19 -0
- package/dist/os/compass/handlers/compass-change-summary-handler.d.ts.map +1 -0
- package/dist/os/compass/handlers/compass-change-summary-handler.js +205 -0
- package/dist/os/compass/handlers/compass-change-summary-handler.js.map +1 -0
- package/dist/os/compass/handlers/compass-inventory-handler.d.ts +28 -0
- package/dist/os/compass/handlers/compass-inventory-handler.d.ts.map +1 -0
- package/dist/os/compass/handlers/compass-inventory-handler.js +213 -0
- package/dist/os/compass/handlers/compass-inventory-handler.js.map +1 -0
- package/dist/os/compass/handlers/compass-inventory.d.ts +30 -0
- package/dist/os/compass/handlers/compass-inventory.d.ts.map +1 -0
- package/dist/os/compass/handlers/compass-inventory.js +418 -0
- package/dist/os/compass/handlers/compass-inventory.js.map +1 -0
- package/dist/os/compass/handlers/git-revision.d.ts +8 -0
- package/dist/os/compass/handlers/git-revision.d.ts.map +1 -0
- package/dist/os/compass/handlers/git-revision.js +99 -0
- package/dist/os/compass/handlers/git-revision.js.map +1 -0
- package/dist/os/compass/handlers/resolve-scan-root.d.ts +3 -0
- package/dist/os/compass/handlers/resolve-scan-root.d.ts.map +1 -0
- package/dist/os/compass/handlers/resolve-scan-root.js +41 -0
- package/dist/os/compass/handlers/resolve-scan-root.js.map +1 -0
- package/dist/os/compass/index.d.ts +8 -0
- package/dist/os/compass/index.d.ts.map +1 -0
- package/dist/os/compass/index.js +19 -0
- package/dist/os/compass/index.js.map +1 -0
- package/dist/os/core/core.module.d.ts +3 -0
- package/dist/os/core/core.module.d.ts.map +1 -0
- package/dist/os/core/core.module.js +318 -0
- package/dist/os/core/core.module.js.map +1 -0
- package/dist/os/core/index.d.ts +2 -0
- package/dist/os/core/index.d.ts.map +1 -0
- package/dist/os/core/index.js +13 -0
- package/dist/os/core/index.js.map +1 -0
- package/dist/os/mission/handlers/archive.d.ts +4 -0
- package/dist/os/mission/handlers/archive.d.ts.map +1 -0
- package/dist/os/mission/handlers/archive.js +209 -0
- package/dist/os/mission/handlers/archive.js.map +1 -0
- package/dist/os/mission/index.d.ts +2 -0
- package/dist/os/mission/index.d.ts.map +1 -0
- package/dist/os/mission/index.js +2 -0
- package/dist/os/mission/index.js.map +1 -0
- package/dist/os/mission/mission.module.d.ts +3 -0
- package/dist/os/mission/mission.module.d.ts.map +1 -0
- package/dist/os/mission/mission.module.js +44 -0
- package/dist/os/mission/mission.module.js.map +1 -0
- package/dist/os/mission/types.d.ts +23 -0
- package/dist/os/mission/types.d.ts.map +1 -0
- package/dist/os/mission/types.js +18 -0
- package/dist/os/mission/types.js.map +1 -0
- package/dist/os/naming/index.d.ts +3 -0
- package/dist/os/naming/index.d.ts.map +1 -0
- package/dist/os/naming/index.js +14 -0
- package/dist/os/naming/index.js.map +1 -0
- package/dist/os/naming/naming-convention.d.ts +25 -0
- package/dist/os/naming/naming-convention.d.ts.map +1 -0
- package/dist/os/naming/naming-convention.js +324 -0
- package/dist/os/naming/naming-convention.js.map +1 -0
- package/dist/os/naming/naming.module.d.ts +3 -0
- package/dist/os/naming/naming.module.d.ts.map +1 -0
- package/dist/os/naming/naming.module.js +33 -0
- package/dist/os/naming/naming.module.js.map +1 -0
- package/dist/os/plan/frontmatter-io.d.ts +12 -0
- package/dist/os/plan/frontmatter-io.d.ts.map +1 -0
- package/dist/os/plan/frontmatter-io.js +71 -0
- package/dist/os/plan/frontmatter-io.js.map +1 -0
- package/dist/os/plan/handlers/archive.d.ts +4 -0
- package/dist/os/plan/handlers/archive.d.ts.map +1 -0
- package/dist/os/plan/handlers/archive.js +166 -0
- package/dist/os/plan/handlers/archive.js.map +1 -0
- package/dist/os/plan/index.d.ts +6 -0
- package/dist/os/plan/index.d.ts.map +1 -0
- package/dist/os/plan/index.js +16 -0
- package/dist/os/plan/index.js.map +1 -0
- package/dist/os/plan/plan.module.d.ts +3 -0
- package/dist/os/plan/plan.module.d.ts.map +1 -0
- package/dist/os/plan/plan.module.js +44 -0
- package/dist/os/plan/plan.module.js.map +1 -0
- package/dist/os/plan/types.d.ts +12 -0
- package/dist/os/plan/types.d.ts.map +1 -0
- package/dist/os/plan/types.js +17 -0
- package/dist/os/plan/types.js.map +1 -0
- package/dist/os/rfc/acceptance.d.ts +15 -0
- package/dist/os/rfc/acceptance.d.ts.map +1 -0
- package/dist/os/rfc/acceptance.js +290 -0
- package/dist/os/rfc/acceptance.js.map +1 -0
- package/dist/os/rfc/decision-log.d.ts +6 -0
- package/dist/os/rfc/decision-log.d.ts.map +1 -0
- package/dist/os/rfc/decision-log.js +269 -0
- package/dist/os/rfc/decision-log.js.map +1 -0
- package/dist/os/rfc/dna-trace.d.ts +27 -0
- package/dist/os/rfc/dna-trace.d.ts.map +1 -0
- package/dist/os/rfc/dna-trace.js +214 -0
- package/dist/os/rfc/dna-trace.js.map +1 -0
- package/dist/os/rfc/frontmatter-io.d.ts +14 -0
- package/dist/os/rfc/frontmatter-io.d.ts.map +1 -0
- package/dist/os/rfc/frontmatter-io.js +98 -0
- package/dist/os/rfc/frontmatter-io.js.map +1 -0
- package/dist/os/rfc/handlers/archive.d.ts +24 -0
- package/dist/os/rfc/handlers/archive.d.ts.map +1 -0
- package/dist/os/rfc/handlers/archive.js +161 -0
- package/dist/os/rfc/handlers/archive.js.map +1 -0
- package/dist/os/rfc/handlers/check.d.ts +4 -0
- package/dist/os/rfc/handlers/check.d.ts.map +1 -0
- package/dist/os/rfc/handlers/check.js +195 -0
- package/dist/os/rfc/handlers/check.js.map +1 -0
- package/dist/os/rfc/handlers/implement-stamp.d.ts +4 -0
- package/dist/os/rfc/handlers/implement-stamp.d.ts.map +1 -0
- package/dist/os/rfc/handlers/implement-stamp.js +334 -0
- package/dist/os/rfc/handlers/implement-stamp.js.map +1 -0
- package/dist/os/rfc/handlers/index-graph.d.ts +13 -0
- package/dist/os/rfc/handlers/index-graph.d.ts.map +1 -0
- package/dist/os/rfc/handlers/index-graph.js +189 -0
- package/dist/os/rfc/handlers/index-graph.js.map +1 -0
- package/dist/os/rfc/handlers/lifecycle.d.ts +13 -0
- package/dist/os/rfc/handlers/lifecycle.d.ts.map +1 -0
- package/dist/os/rfc/handlers/lifecycle.js +150 -0
- package/dist/os/rfc/handlers/lifecycle.js.map +1 -0
- package/dist/os/rfc/handlers/list-create.d.ts +6 -0
- package/dist/os/rfc/handlers/list-create.d.ts.map +1 -0
- package/dist/os/rfc/handlers/list-create.js +235 -0
- package/dist/os/rfc/handlers/list-create.js.map +1 -0
- package/dist/os/rfc/handlers/pipeline-status.d.ts +26 -0
- package/dist/os/rfc/handlers/pipeline-status.d.ts.map +1 -0
- package/dist/os/rfc/handlers/pipeline-status.js +124 -0
- package/dist/os/rfc/handlers/pipeline-status.js.map +1 -0
- package/dist/os/rfc/handlers/shared.d.ts +22 -0
- package/dist/os/rfc/handlers/shared.d.ts.map +1 -0
- package/dist/os/rfc/handlers/shared.js +99 -0
- package/dist/os/rfc/handlers/shared.js.map +1 -0
- package/dist/os/rfc/handlers/supersede-propose.d.ts +4 -0
- package/dist/os/rfc/handlers/supersede-propose.d.ts.map +1 -0
- package/dist/os/rfc/handlers/supersede-propose.js +200 -0
- package/dist/os/rfc/handlers/supersede-propose.js.map +1 -0
- package/dist/os/rfc/handlers/validate-rules.d.ts +29 -0
- package/dist/os/rfc/handlers/validate-rules.d.ts.map +1 -0
- package/dist/os/rfc/handlers/validate-rules.js +461 -0
- package/dist/os/rfc/handlers/validate-rules.js.map +1 -0
- package/dist/os/rfc/handlers/validate.d.ts +4 -0
- package/dist/os/rfc/handlers/validate.d.ts.map +1 -0
- package/dist/os/rfc/handlers/validate.js +101 -0
- package/dist/os/rfc/handlers/validate.js.map +1 -0
- package/dist/os/rfc/handlers.d.ts +7 -0
- package/dist/os/rfc/handlers.d.ts.map +1 -0
- package/dist/os/rfc/handlers.js +19 -0
- package/dist/os/rfc/handlers.js.map +1 -0
- package/dist/os/rfc/index.d.ts +18 -0
- package/dist/os/rfc/index.d.ts.map +1 -0
- package/dist/os/rfc/index.js +24 -0
- package/dist/os/rfc/index.js.map +1 -0
- package/dist/os/rfc/rfc.module.d.ts +3 -0
- package/dist/os/rfc/rfc.module.d.ts.map +1 -0
- package/dist/os/rfc/rfc.module.js +355 -0
- package/dist/os/rfc/rfc.module.js.map +1 -0
- package/dist/os/rfc/types.d.ts +448 -0
- package/dist/os/rfc/types.d.ts.map +1 -0
- package/dist/os/rfc/types.js +95 -0
- package/dist/os/rfc/types.js.map +1 -0
- package/dist/os/rfc/verification-evidence.d.ts +8 -0
- package/dist/os/rfc/verification-evidence.d.ts.map +1 -0
- package/dist/os/rfc/verification-evidence.js +182 -0
- package/dist/os/rfc/verification-evidence.js.map +1 -0
- package/dist/os/session/atif-parser.d.ts +29 -0
- package/dist/os/session/atif-parser.d.ts.map +1 -0
- package/dist/os/session/atif-parser.js +138 -0
- package/dist/os/session/atif-parser.js.map +1 -0
- package/dist/os/session/frontmatter-io.d.ts +31 -0
- package/dist/os/session/frontmatter-io.d.ts.map +1 -0
- package/dist/os/session/frontmatter-io.js +146 -0
- package/dist/os/session/frontmatter-io.js.map +1 -0
- package/dist/os/session/handlers/archive.d.ts +4 -0
- package/dist/os/session/handlers/archive.d.ts.map +1 -0
- package/dist/os/session/handlers/archive.js +209 -0
- package/dist/os/session/handlers/archive.js.map +1 -0
- package/dist/os/session/handlers/list.d.ts +4 -0
- package/dist/os/session/handlers/list.d.ts.map +1 -0
- package/dist/os/session/handlers/list.js +147 -0
- package/dist/os/session/handlers/list.js.map +1 -0
- package/dist/os/session/handlers/save.d.ts +6 -0
- package/dist/os/session/handlers/save.d.ts.map +1 -0
- package/dist/os/session/handlers/save.js +285 -0
- package/dist/os/session/handlers/save.js.map +1 -0
- package/dist/os/session/handlers/validate.d.ts +4 -0
- package/dist/os/session/handlers/validate.d.ts.map +1 -0
- package/dist/os/session/handlers/validate.js +188 -0
- package/dist/os/session/handlers/validate.js.map +1 -0
- package/dist/os/session/index.d.ts +9 -0
- package/dist/os/session/index.d.ts.map +1 -0
- package/dist/os/session/index.js +20 -0
- package/dist/os/session/index.js.map +1 -0
- package/dist/os/session/session.module.d.ts +3 -0
- package/dist/os/session/session.module.d.ts.map +1 -0
- package/dist/os/session/session.module.js +113 -0
- package/dist/os/session/session.module.js.map +1 -0
- package/dist/os/session/types.d.ts +101 -0
- package/dist/os/session/types.d.ts.map +1 -0
- package/dist/os/session/types.js +52 -0
- package/dist/os/session/types.js.map +1 -0
- package/dist/os/spec/spec-materialize.d.ts +21 -0
- package/dist/os/spec/spec-materialize.d.ts.map +1 -0
- package/dist/os/spec/spec-materialize.js +342 -0
- package/dist/os/spec/spec-materialize.js.map +1 -0
- package/dist/os/spec/spec-schema.d.ts +132 -0
- package/dist/os/spec/spec-schema.d.ts.map +1 -0
- package/dist/os/spec/spec-schema.js +118 -0
- package/dist/os/spec/spec-schema.js.map +1 -0
- package/dist/os/spec/spec-status.d.ts +33 -0
- package/dist/os/spec/spec-status.d.ts.map +1 -0
- package/dist/os/spec/spec-status.js +222 -0
- package/dist/os/spec/spec-status.js.map +1 -0
- package/dist/os/spec/spec-validate.d.ts +4 -0
- package/dist/os/spec/spec-validate.d.ts.map +1 -0
- package/dist/os/spec/spec-validate.js +435 -0
- package/dist/os/spec/spec-validate.js.map +1 -0
- package/dist/os/spec/spec.module.d.ts +3 -0
- package/dist/os/spec/spec.module.d.ts.map +1 -0
- package/dist/os/spec/spec.module.js +67 -0
- package/dist/os/spec/spec.module.js.map +1 -0
- package/dist/os/werkstatt/handlers/lock.d.ts +10 -0
- package/dist/os/werkstatt/handlers/lock.d.ts.map +1 -0
- package/dist/os/werkstatt/handlers/lock.js +127 -0
- package/dist/os/werkstatt/handlers/lock.js.map +1 -0
- package/dist/os/werkstatt/handlers/schema.d.ts +32 -0
- package/dist/os/werkstatt/handlers/schema.d.ts.map +1 -0
- package/dist/os/werkstatt/handlers/schema.js +41 -0
- package/dist/os/werkstatt/handlers/schema.js.map +1 -0
- package/dist/os/werkstatt/handlers/werkstatt-lock-recover.d.ts +15 -0
- package/dist/os/werkstatt/handlers/werkstatt-lock-recover.d.ts.map +1 -0
- package/dist/os/werkstatt/handlers/werkstatt-lock-recover.js +142 -0
- package/dist/os/werkstatt/handlers/werkstatt-lock-recover.js.map +1 -0
- package/dist/os/werkstatt/handlers/werkstatt-lock-status.d.ts +18 -0
- package/dist/os/werkstatt/handlers/werkstatt-lock-status.d.ts.map +1 -0
- package/dist/os/werkstatt/handlers/werkstatt-lock-status.js +43 -0
- package/dist/os/werkstatt/handlers/werkstatt-lock-status.js.map +1 -0
- package/dist/os/werkstatt/handlers/werkstatt-operation-validate.d.ts +11 -0
- package/dist/os/werkstatt/handlers/werkstatt-operation-validate.d.ts.map +1 -0
- package/dist/os/werkstatt/handlers/werkstatt-operation-validate.js +79 -0
- package/dist/os/werkstatt/handlers/werkstatt-operation-validate.js.map +1 -0
- package/dist/os/werkstatt/index.d.ts +7 -0
- package/dist/os/werkstatt/index.d.ts.map +1 -0
- package/dist/os/werkstatt/index.js +18 -0
- package/dist/os/werkstatt/index.js.map +1 -0
- package/dist/os/werkstatt/werkstatt.module.d.ts +3 -0
- package/dist/os/werkstatt/werkstatt.module.d.ts.map +1 -0
- package/dist/os/werkstatt/werkstatt.module.js +58 -0
- package/dist/os/werkstatt/werkstatt.module.js.map +1 -0
- package/dist/os/workflow/handlers.d.ts +12 -0
- package/dist/os/workflow/handlers.d.ts.map +1 -0
- package/dist/os/workflow/handlers.js +254 -0
- package/dist/os/workflow/handlers.js.map +1 -0
- package/dist/os/workflow/index.d.ts +4 -0
- package/dist/os/workflow/index.d.ts.map +1 -0
- package/dist/os/workflow/index.js +18 -0
- package/dist/os/workflow/index.js.map +1 -0
- package/dist/os/workflow/types.d.ts +69 -0
- package/dist/os/workflow/types.d.ts.map +1 -0
- package/dist/os/workflow/types.js +23 -0
- package/dist/os/workflow/types.js.map +1 -0
- package/dist/os/workflow/workflow.module.d.ts +3 -0
- package/dist/os/workflow/workflow.module.d.ts.map +1 -0
- package/dist/os/workflow/workflow.module.js +48 -0
- package/dist/os/workflow/workflow.module.js.map +1 -0
- package/dist/src/cli-output.d.ts +5 -0
- package/dist/src/cli-output.d.ts.map +1 -0
- package/dist/src/cli-output.js +52 -0
- package/dist/src/cli-output.js.map +1 -0
- package/dist/src/config/forge-config.d.ts +170 -0
- package/dist/src/config/forge-config.d.ts.map +1 -0
- package/dist/src/config/forge-config.js +259 -0
- package/dist/src/config/forge-config.js.map +1 -0
- package/dist/src/forge-module.d.ts +16 -0
- package/dist/src/forge-module.d.ts.map +1 -0
- package/dist/src/forge-module.js +15 -0
- package/dist/src/forge-module.js.map +1 -0
- package/dist/src/index.d.ts +30 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +48 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/migration-adapters/git-utils.d.ts +3 -0
- package/dist/src/migration-adapters/git-utils.d.ts.map +1 -0
- package/dist/src/migration-adapters/git-utils.js +46 -0
- package/dist/src/migration-adapters/git-utils.js.map +1 -0
- package/dist/src/migration-adapters/ignored-files.d.ts +12 -0
- package/dist/src/migration-adapters/ignored-files.d.ts.map +1 -0
- package/dist/src/migration-adapters/ignored-files.js +190 -0
- package/dist/src/migration-adapters/ignored-files.js.map +1 -0
- package/dist/src/migration-adapters/index.d.ts +8 -0
- package/dist/src/migration-adapters/index.d.ts.map +1 -0
- package/dist/src/migration-adapters/index.js +17 -0
- package/dist/src/migration-adapters/index.js.map +1 -0
- package/dist/src/migration-adapters/node-typescript-pnpm/index.d.ts +3 -0
- package/dist/src/migration-adapters/node-typescript-pnpm/index.d.ts.map +1 -0
- package/dist/src/migration-adapters/node-typescript-pnpm/index.js +141 -0
- package/dist/src/migration-adapters/node-typescript-pnpm/index.js.map +1 -0
- package/dist/src/migration-adapters/phaser-pnpm/index.d.ts +3 -0
- package/dist/src/migration-adapters/phaser-pnpm/index.d.ts.map +1 -0
- package/dist/src/migration-adapters/phaser-pnpm/index.js +142 -0
- package/dist/src/migration-adapters/phaser-pnpm/index.js.map +1 -0
- package/dist/src/migration-adapters/registry.d.ts +6 -0
- package/dist/src/migration-adapters/registry.d.ts.map +1 -0
- package/dist/src/migration-adapters/registry.js +58 -0
- package/dist/src/migration-adapters/registry.js.map +1 -0
- package/dist/src/migration-adapters/types.d.ts +35 -0
- package/dist/src/migration-adapters/types.d.ts.map +1 -0
- package/dist/src/migration-adapters/types.js +31 -0
- package/dist/src/migration-adapters/types.js.map +1 -0
- package/dist/src/onboarding/agents-generate.d.ts +11 -0
- package/dist/src/onboarding/agents-generate.d.ts.map +1 -0
- package/dist/src/onboarding/agents-generate.js +415 -0
- package/dist/src/onboarding/agents-generate.js.map +1 -0
- package/dist/src/onboarding/create.d.ts +12 -0
- package/dist/src/onboarding/create.d.ts.map +1 -0
- package/dist/src/onboarding/create.js +232 -0
- package/dist/src/onboarding/create.js.map +1 -0
- package/dist/src/onboarding/doctor.d.ts +30 -0
- package/dist/src/onboarding/doctor.d.ts.map +1 -0
- package/dist/src/onboarding/doctor.js +380 -0
- package/dist/src/onboarding/doctor.js.map +1 -0
- package/dist/src/onboarding/extended-behavioral-layer.d.ts +10 -0
- package/dist/src/onboarding/extended-behavioral-layer.d.ts.map +1 -0
- package/dist/src/onboarding/extended-behavioral-layer.js +82 -0
- package/dist/src/onboarding/extended-behavioral-layer.js.map +1 -0
- package/dist/src/onboarding/init.d.ts +25 -0
- package/dist/src/onboarding/init.d.ts.map +1 -0
- package/dist/src/onboarding/init.js +260 -0
- package/dist/src/onboarding/init.js.map +1 -0
- package/dist/src/onboarding/scaffold-project.d.ts +12 -0
- package/dist/src/onboarding/scaffold-project.d.ts.map +1 -0
- package/dist/src/onboarding/scaffold-project.js +167 -0
- package/dist/src/onboarding/scaffold-project.js.map +1 -0
- package/dist/src/onboarding/scaffold.d.ts +15 -0
- package/dist/src/onboarding/scaffold.d.ts.map +1 -0
- package/dist/src/onboarding/scaffold.js +120 -0
- package/dist/src/onboarding/scaffold.js.map +1 -0
- package/dist/src/onboarding/upgrade.d.ts +17 -0
- package/dist/src/onboarding/upgrade.d.ts.map +1 -0
- package/dist/src/onboarding/upgrade.js +293 -0
- package/dist/src/onboarding/upgrade.js.map +1 -0
- package/dist/src/profiles/stack-profile.d.ts +51 -0
- package/dist/src/profiles/stack-profile.d.ts.map +1 -0
- package/dist/src/profiles/stack-profile.js +119 -0
- package/dist/src/profiles/stack-profile.js.map +1 -0
- package/dist/src/registry.d.ts +38 -0
- package/dist/src/registry.d.ts.map +1 -0
- package/dist/src/registry.js +135 -0
- package/dist/src/registry.js.map +1 -0
- package/dist/src/skill-schema.d.ts +30 -0
- package/dist/src/skill-schema.d.ts.map +1 -0
- package/dist/src/skill-schema.js +34 -0
- package/dist/src/skill-schema.js.map +1 -0
- package/dist/src/types.d.ts +153 -0
- package/dist/src/types.d.ts.map +1 -0
- package/dist/src/types.js +17 -0
- package/dist/src/types.js.map +1 -0
- package/dist/src/utils/fs-atomic.d.ts +7 -0
- package/dist/src/utils/fs-atomic.d.ts.map +1 -0
- package/dist/src/utils/fs-atomic.js +81 -0
- package/dist/src/utils/fs-atomic.js.map +1 -0
- package/dist/src/utils/fs-idempotent.d.ts +2 -0
- package/dist/src/utils/fs-idempotent.d.ts.map +1 -0
- package/dist/src/utils/fs-idempotent.js +30 -0
- package/dist/src/utils/fs-idempotent.js.map +1 -0
- package/dist/src/utils/fs.d.ts +8 -0
- package/dist/src/utils/fs.d.ts.map +1 -0
- package/dist/src/utils/fs.js +60 -0
- package/dist/src/utils/fs.js.map +1 -0
- package/dist/src/utils/generated-marker.d.ts +21 -0
- package/dist/src/utils/generated-marker.d.ts.map +1 -0
- package/dist/src/utils/generated-marker.js +128 -0
- package/dist/src/utils/generated-marker.js.map +1 -0
- package/dist/src/utils/hash.d.ts +2 -0
- package/dist/src/utils/hash.d.ts.map +1 -0
- package/dist/src/utils/hash.js +18 -0
- package/dist/src/utils/hash.js.map +1 -0
- package/dist/src/utils/index.d.ts +7 -0
- package/dist/src/utils/index.d.ts.map +1 -0
- package/dist/src/utils/index.js +19 -0
- package/dist/src/utils/index.js.map +1 -0
- package/dist/src/utils/string-utils.d.ts +2 -0
- package/dist/src/utils/string-utils.d.ts.map +1 -0
- package/dist/src/utils/string-utils.js +19 -0
- package/dist/src/utils/string-utils.js.map +1 -0
- package/dist/src/validators/port-validate.d.ts +12 -0
- package/dist/src/validators/port-validate.d.ts.map +1 -0
- package/dist/src/validators/port-validate.js +73 -0
- package/dist/src/validators/port-validate.js.map +1 -0
- package/dist/src/validators/skill-validate.d.ts +14 -0
- package/dist/src/validators/skill-validate.d.ts.map +1 -0
- package/dist/src/validators/skill-validate.js +487 -0
- package/dist/src/validators/skill-validate.js.map +1 -0
- package/os/rfc/rfc-0000-template.md +222 -0
- package/package.json +262 -0
- package/profiles/astro-typescript-turborepo.yaml +144 -0
- package/profiles/forge-shell.yaml +77 -0
- package/profiles/phaser-turborepo.yaml +144 -0
- package/skills/_shared/fo-pipeline-conventions.md +119 -0
- package/skills/_shared/fo-session-summary.md +95 -0
- package/skills/fo/fo-add-tests/SKILL.md +166 -0
- package/skills/fo/fo-add-tests/mocking.md +60 -0
- package/skills/fo/fo-add-tests/pbt-guide.md +193 -0
- package/skills/fo/fo-add-tests/tests-reference.md +92 -0
- package/skills/fo/fo-architecture/SKILL.md +83 -0
- package/skills/fo/fo-architecture/architecture-vocabulary.md +104 -0
- package/skills/fo/fo-architecture/deepening.md +37 -0
- package/skills/fo/fo-architecture/design-it-twice.md +44 -0
- package/skills/fo/fo-architecture/html-report.md +104 -0
- package/skills/fo/fo-compass-annotate/SKILL.md +128 -0
- package/skills/fo/fo-compass-annotate/reference/comment-styles.md +25 -0
- package/skills/fo/fo-compass-annotate/reference/learned-principles.md +12 -0
- package/skills/fo/fo-compass-annotate/reference/risk-patterns.md +23 -0
- package/skills/fo/fo-compass-annotate/templates/audit-prompt.md +36 -0
- package/skills/fo/fo-compass-annotate/templates/header-format.md +57 -0
- package/skills/fo/fo-compass-annotate/templates/header-prompt.md +35 -0
- package/skills/fo/fo-doc-audit/SKILL.md +264 -0
- package/skills/fo/fo-extract-dna/SKILL.md +248 -0
- package/skills/fo/fo-fix/SKILL.md +152 -0
- package/skills/fo/fo-fix/bug-diagnosis.md +128 -0
- package/skills/fo/fo-handoff/SKILL.md +58 -0
- package/skills/fo/fo-harvest/SKILL.md +80 -0
- package/skills/fo/fo-idea/SKILL.md +242 -0
- package/skills/fo/fo-idea-audit/SKILL.md +248 -0
- package/skills/fo/fo-idea-create-adr/SKILL.md +130 -0
- package/skills/fo/fo-idea-create-rfc/SKILL.md +130 -0
- package/skills/fo/fo-idea-enhance/SKILL.md +218 -0
- package/skills/fo/fo-idea-i-just-want-to-see-the-plan/SKILL.md +36 -0
- package/skills/fo/fo-idea-i-just-want-to-see-the-result/SKILL.md +167 -0
- package/skills/fo/fo-idea-implement/SKILL.md +463 -0
- package/skills/fo/fo-idea-plan/SKILL.md +230 -0
- package/skills/fo/fo-idea-status/SKILL.md +103 -0
- package/skills/fo/fo-memory-sync/SKILL.md +204 -0
- package/skills/fo/fo-memory-sync/fix-patterns.md +24 -0
- package/skills/fo/fo-memory-sync/learned-principles.md +6 -0
- package/skills/fo/fo-memory-sync/qa-log.md +5 -0
- package/skills/fo/fo-qa/SKILL.md +142 -0
- package/skills/fo/fo-review/SKILL.md +273 -0
- package/skills/fo/fo-session-retro/SKILL.md +276 -0
- package/skills/fo/fo-session-save/SKILL.md +71 -0
- package/skills/fo/fo-session-save/fix-patterns.md +33 -0
- package/skills/fo/fo-session-save/learned-principles.md +19 -0
- package/skills/fo/fo-session-save/qa-log.md +11 -0
- package/skills/fo/fo-spec-ingest/SKILL.md +127 -0
- package/skills/fo/fo-triage/SKILL.md +97 -0
- package/skills/meta/forge-bootstrap/SKILL.md +335 -0
- package/skills/meta/forge-bootstrap/forge-about.md +35 -0
- package/skills/meta/forge-bootstrap/milestone-gallery/.gitkeep +0 -0
- package/skills/meta/forge-bootstrap/operator-profile-template.md +53 -0
- package/skills/meta/forge-bootstrap/project-narrative-template.md +31 -0
- package/skills/meta/port-to-forge/SKILL.md +65 -0
- package/skills/meta/skill-create/SKILL.md +73 -0
- package/skills/shared/grilling/SKILL.md +28 -0
- package/skills/shared/grilling/learned-principles.md +12 -0
- package/skills/shared/grilling/qa-log.md +10 -0
- package/skills/shared/my-preferences/SKILL.md +77 -0
- package/skills/shared/windows-ai-tooling/SKILL.md +200 -0
- package/skills/shared/writing-great-skills/SKILL.md +132 -0
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: fo-idea-create-adr
|
|
3
|
+
description: Create a lightweight Architectural Decision Record (ADR) draft in docs/adrs/. Use when the user asks to record a local technical decision that does not need a full RFC.
|
|
4
|
+
invocation: user
|
|
5
|
+
category: fo
|
|
6
|
+
concerns: document-only
|
|
7
|
+
dependsOn: ['my-preferences']
|
|
8
|
+
languagePolicy: ref(PREFERENCES.md)
|
|
9
|
+
bindings:
|
|
10
|
+
requires: [commands.validateAdr]
|
|
11
|
+
optional: [paths.invariantsFile]
|
|
12
|
+
triggers: ["record this architectural decision", "create an ADR", "document a local technical decision"]
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# ADR Create
|
|
16
|
+
|
|
17
|
+
Before starting, read `PREFERENCES.md` at the repository root. If the file is missing or `aiLanguage` is unset, ask the operator once and create the file using the `my-preferences` skill semantics.
|
|
18
|
+
|
|
19
|
+
**Language policy**
|
|
20
|
+
|
|
21
|
+
- Every natural-language message shown to the operator in this session — greetings, questions, explanations, and status updates — must use `aiLanguage`.
|
|
22
|
+
- The generated ADR draft and any edited ADR prose must use `documentationLanguage`.
|
|
23
|
+
- Internal reasoning, tool-call planning, and intermediate agent monologue may stay in the agent's working language (usually English); do not translate them for the operator.
|
|
24
|
+
- Do not translate existing files automatically; preferences affect only new output and the current session.
|
|
25
|
+
|
|
26
|
+
Create a complete, `adr.validate`-ready ADR draft. ADRs are for **local technical decisions** (one package, one app, or one narrow workspace convention) that do not introduce a new Site OS command, change a DNA invariant, or establish cross-workspace policy.
|
|
27
|
+
|
|
28
|
+
ADR lifecycle (full RFC parity): `proposed → reviewing → accepted → implemented`. Any status may transition to `superseded` or `rejected`. ADR frontmatter includes `implementedAt`, `closedAt`, and `reviewers` fields matching RFC frontmatter.
|
|
29
|
+
|
|
30
|
+
## Process
|
|
31
|
+
|
|
32
|
+
### 1. Prefix and existing-ADR checks
|
|
33
|
+
|
|
34
|
+
1. **Prefix check** — if the user provides an id starting with `RFC-`, stop with message: `RFC-XXXX is an RFC, not an ADR. Use /fo-idea-create-rfc for RFCs, or /fo-idea-audit, /fo-idea-enhance, /fo-idea-plan, /fo-idea-implement for RFC pipeline steps.`
|
|
35
|
+
|
|
36
|
+
2. **Existing ADR check** — if the user provides an existing ADR id (e.g. to amend or supersede), read the ADR's `status` frontmatter from `docs/adrs/adr-XXXX-*.md`. If the status is `implemented`, `rejected`, or `superseded` (terminal), stop with message: `ADR-XXXX is <status> (terminal). Terminal ADRs cannot be amended in place. To change this decision, create a new ADR or RFC that supersedes ADR-XXXX.`
|
|
37
|
+
|
|
38
|
+
If no existing ADR is referenced, proceed to step 2.
|
|
39
|
+
|
|
40
|
+
### 2. Decide whether an ADR is appropriate
|
|
41
|
+
|
|
42
|
+
Prefer an ADR when **all** of the following are true:
|
|
43
|
+
|
|
44
|
+
- The decision is local to one `packages/*` workspace, one `apps/*` site, or one internal convention.
|
|
45
|
+
- It does not add, remove, or change a Site OS command.
|
|
46
|
+
- It does not modify `AGENTS.md`, `ref(forge.yaml bindings.paths.invariantsFile)`, or any RFC.
|
|
47
|
+
- It does not establish a new package boundary or cross-app contract.
|
|
48
|
+
- It does not change a currently accepted or implemented RFC.
|
|
49
|
+
|
|
50
|
+
If any item is false, use `fo-idea-create-rfc` instead and stop.
|
|
51
|
+
|
|
52
|
+
### 3. Collect required metadata
|
|
53
|
+
|
|
54
|
+
- **title** (required) — short imperative sentence.
|
|
55
|
+
- **scope** — `package`, `app`, or `workspace`. Default `package`.
|
|
56
|
+
- **decider** — default `architecture`. The named decider is the only role that may move the ADR out of `proposed`.
|
|
57
|
+
- **reviewers** — default empty. When the operator has not specified a reviewer, read the default reviewer(s) from the `reviewers` field comment in `docs/adrs/adr-0000-template.md` (currently `human:andrii-syrokomskyi`). Set all listed default reviewers.
|
|
58
|
+
- **related** — any RFCs, ADRs, DNA invariants, or specs this decision relates to.
|
|
59
|
+
|
|
60
|
+
### 4. Grill the concept (skip if invoked with an accepted decision)
|
|
61
|
+
|
|
62
|
+
**Skip condition:** If the caller (e.g. `fo-idea` accepted-decision fast path) explicitly states that the operator has already decided and provided justification, skip grilling and proceed directly to step 5. The operator's justification text will be used as the ADR's `Justification` section.
|
|
63
|
+
|
|
64
|
+
Otherwise, before creating the file, invoke the `/grilling` skill to stress-test the proposed ADR concept. The grilling examines:
|
|
65
|
+
|
|
66
|
+
- Is the decision truly local, or does it actually need an RFC?
|
|
67
|
+
- Is the scope correct — `package`, `app`, or `workspace`?
|
|
68
|
+
- Are there hidden dependencies or conflicts with existing accepted RFCs or ADRs?
|
|
69
|
+
- Is the decision concrete enough to record, or is it still vague?
|
|
70
|
+
- Are there alternative approaches that haven't been considered?
|
|
71
|
+
- Does the `related[]` list accurately capture the RFC/DNA context?
|
|
72
|
+
|
|
73
|
+
Address every concern the grilling raises by adjusting the metadata, scope, or concept before proceeding. Do not create the ADR file until the grilling is satisfied with the concept.
|
|
74
|
+
|
|
75
|
+
### 5. Create the ADR file
|
|
76
|
+
|
|
77
|
+
Run:
|
|
78
|
+
|
|
79
|
+
```sh
|
|
80
|
+
ref(forge.yaml bindings.commands.validateAdr) --create --title="<title>" --scope=<scope> --related=<related-ids>
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### 6. Fill every section
|
|
84
|
+
|
|
85
|
+
Read the generated file and the template (`docs/adrs/adr-0000-template.md`). Replace placeholder text in every required section:
|
|
86
|
+
|
|
87
|
+
- **Context** — the concrete local situation, constraints, and relevant RFC/DNA context.
|
|
88
|
+
- **Decision** — a single sentence in the present tense stating the decision as fact.
|
|
89
|
+
- **Justification** — forces, trade-offs, and alternatives considered.
|
|
90
|
+
- **Consequences** — positive, negative, and any knowingly postponed technical debt.
|
|
91
|
+
- **Evolution** — thresholds that would trigger revisiting the decision; references to commits/PRs if the ADR is post-hoc.
|
|
92
|
+
|
|
93
|
+
### 7. Validate and report
|
|
94
|
+
|
|
95
|
+
Run:
|
|
96
|
+
|
|
97
|
+
```sh
|
|
98
|
+
ref(forge.yaml bindings.commands.validateAdr) <adr-id> --json
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
Fix every violation. Then report in `aiLanguage`. **Translate all labels to `aiLanguage`** — the template below is structural only.
|
|
102
|
+
|
|
103
|
+
```
|
|
104
|
+
ADR draft created: <file>
|
|
105
|
+
Status: proposed
|
|
106
|
+
Next step: the named decider must change status to accepted before implementation. Use /fo-idea-implement to implement the decision once accepted.
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
### 8. Commit
|
|
110
|
+
|
|
111
|
+
Commit the ADR draft. This is **mandatory** — the ADR file must be committed, not left in the working tree.
|
|
112
|
+
|
|
113
|
+
Commit message format:
|
|
114
|
+
|
|
115
|
+
```txt
|
|
116
|
+
adr: create ADR-XXXX <short title>
|
|
117
|
+
|
|
118
|
+
Draft ADR-XXXX (<title>) from template. Status: proposed, awaiting decider acceptance.
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
Stage only the ADR file — do not stage unrelated changes. Another agent may be working in a different session; `git add -A` or `git add .` is forbidden.
|
|
122
|
+
|
|
123
|
+
## Constraints
|
|
124
|
+
|
|
125
|
+
- **Grilling is mandatory before file creation — unless the caller explicitly signals an accepted-decision fast path.** When invoked from `fo-idea` with an already-made decision and operator-provided justification, skip step 4 and use the operator's text as the ADR's `Justification` section. In all other cases, do not skip step 4 — the concept must survive grilling before the ADR file is created.
|
|
126
|
+
- Do not change an ADR status out of `proposed`. Status transitions (`proposed → reviewing → accepted → implemented`) are handled by the implement skill or the named decider, not by this creation skill.
|
|
127
|
+
- Do not use an ADR for command/policy/DNA-level decisions — those require a full RFC.
|
|
128
|
+
- Do not create an ADR that contradicts an accepted/implemented RFC. If implementation reveals a conflict, escalate via `rfc.supersede.propose` or request a new RFC/ADR instead of silently working around it.
|
|
129
|
+
- Keep `adr.validate` clean before presenting the draft.
|
|
130
|
+
- **Commit the ADR draft.** The ADR file must be committed after creation and validation — never left in the working tree.
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: fo-idea-create-rfc
|
|
3
|
+
description: Create a full RFC draft from the rfc-0000-template.md template and prepare it for human architecture review. Use when the user asks to draft or scaffold an RFC.
|
|
4
|
+
invocation: user
|
|
5
|
+
category: fo
|
|
6
|
+
concerns: document-only
|
|
7
|
+
dependsOn: ['my-preferences', 'grilling']
|
|
8
|
+
languagePolicy: ref(PREFERENCES.md)
|
|
9
|
+
bindings:
|
|
10
|
+
requires: [commands.validateRfc]
|
|
11
|
+
optional: [paths.invariantsFile]
|
|
12
|
+
triggers: ["draft an RFC", "create a full RFC", "scaffold an RFC from template"]
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# RFC Create
|
|
16
|
+
|
|
17
|
+
Before starting, read `PREFERENCES.md` at the repository root. If the file is missing or `aiLanguage` is unset, ask the operator once and create the file using the `my-preferences` skill semantics.
|
|
18
|
+
|
|
19
|
+
**Language policy**
|
|
20
|
+
|
|
21
|
+
- Every natural-language message shown to the operator in this session — greetings, questions, explanations, and status updates — must use `aiLanguage`.
|
|
22
|
+
- The generated RFC draft must be written in `documentationLanguage`.
|
|
23
|
+
- Internal reasoning, tool-call planning, and intermediate agent monologue may stay in the agent's working language (usually English); do not translate them for the operator.
|
|
24
|
+
- Do not translate existing files automatically; preferences affect only new output and the current session.
|
|
25
|
+
|
|
26
|
+
Create a complete, `rfc.validate`-ready RFC draft in `docs/rfcs/` using the full template. Do not implement the RFC — only produce the draft. The user must still request architecture acceptance explicitly.
|
|
27
|
+
|
|
28
|
+
## Process
|
|
29
|
+
|
|
30
|
+
### 1. Identify the RFC need
|
|
31
|
+
|
|
32
|
+
Confirm that the proposed change is not already covered by an accepted/implemented RFC. Before drafting, run:
|
|
33
|
+
|
|
34
|
+
```sh
|
|
35
|
+
ref(forge.yaml bindings.commands.validateRfc) --status accepted --json
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
If a relevant accepted RFC exists, point the user to it and stop. If an existing draft covers the topic, ask whether to enhance that draft instead of creating a duplicate.
|
|
39
|
+
|
|
40
|
+
### 2. Collect required metadata
|
|
41
|
+
|
|
42
|
+
Ask the user for, or infer from context:
|
|
43
|
+
|
|
44
|
+
- **title** (required) — short imperative sentence.
|
|
45
|
+
- **kind** — `architecture`, `contract`, `command`, `policy`, or `deprecation`. Default to `architecture` for structural/cross-workspace changes.
|
|
46
|
+
- **scope** — `workspace` unless the change is strictly inside one app.
|
|
47
|
+
- **owners** — default `architecture`; confirm before using a different owner.
|
|
48
|
+
- **commands.proposed / changed / removed** — any new, modified, or removed Site OS commands.
|
|
49
|
+
- **packagesImpacted / appsImpacted** — concrete workspace names.
|
|
50
|
+
- **satisfies** — for `architecture` or `contract` RFCs, at least one `DNA-NN` invariant from `ref(forge.yaml bindings.paths.invariantsFile)`.
|
|
51
|
+
- **related** — relevant RFCs, DNA ids, anti-patterns, specs.
|
|
52
|
+
- **reviewer** — if the caller specifies a reviewer identity, use it. If not, default to `human:andrii-syrokomskyi` (matching the default in `os/rfc/rfc-0000-template.md` inside `@warpgogol/forge`) **only when the skill is also responsible for moving the RFC out of draft**. For a pure draft scaffold, leave `reviewers: []`.
|
|
53
|
+
|
|
54
|
+
### 3. Grill the concept
|
|
55
|
+
|
|
56
|
+
Before creating the file, invoke the `/grilling` skill to stress-test the proposed RFC concept. The grilling examines:
|
|
57
|
+
|
|
58
|
+
- Is the decision concrete enough to write an RFC for, or is it still vague?
|
|
59
|
+
- Is the scope correct — should this be an ADR instead of an RFC?
|
|
60
|
+
- Are there hidden dependencies or conflicts with existing accepted RFCs?
|
|
61
|
+
- Is the kind correct (architecture vs contract vs command vs policy)?
|
|
62
|
+
- Are the proposed commands well-formed and necessary?
|
|
63
|
+
- Does the proposed `satisfies[]` list actually match the DNA invariants the RFC will touch?
|
|
64
|
+
- Are there alternative approaches that haven't been considered?
|
|
65
|
+
|
|
66
|
+
Address every concern the grilling raises by adjusting the metadata, scope, or concept before proceeding. Do not create the RFC file until the grilling is satisfied with the concept.
|
|
67
|
+
|
|
68
|
+
### 4. Create the RFC file
|
|
69
|
+
|
|
70
|
+
Run:
|
|
71
|
+
|
|
72
|
+
```sh
|
|
73
|
+
ref(forge.yaml bindings.commands.validateRfc) --create --title="<title>" --kind=<kind> --scope=<scope>
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### 5. Fill every section
|
|
77
|
+
|
|
78
|
+
Read the generated file and the full template (`os/rfc/rfc-0000-template.md` inside `@warpgogol/forge`) as a guide. Replace placeholder text in every required section:
|
|
79
|
+
|
|
80
|
+
- **Context** — the concrete situation, not a generic preamble.
|
|
81
|
+
- **Problem** — the exact risk or gap this RFC closes.
|
|
82
|
+
- **Decision** — a single sentence in the present tense stating the decision as fact.
|
|
83
|
+
- **Architectural fit** — which DNA invariants or accepted RFCs this aligns with or extends.
|
|
84
|
+
- **Design** — files, commands, type signatures, pipelines, output formats, failure modes.
|
|
85
|
+
- **Rollout** — implementation order, generated-file refresh, migration path for existing apps.
|
|
86
|
+
- **Alternatives considered** — at least one real alternative with a rejection reason.
|
|
87
|
+
- **Risks** — including agent-misinterpretation risk and false-positive rates for validators.
|
|
88
|
+
- **Acceptance criteria** — ≥3 checkable checkboxes mapped to implementation artifacts.
|
|
89
|
+
- **Implementation notes for agents** — explicit MAY/MUST NOT rules, status-gate reminders, escalation triggers.
|
|
90
|
+
|
|
91
|
+
### 6. Validate and report
|
|
92
|
+
|
|
93
|
+
Run:
|
|
94
|
+
|
|
95
|
+
```sh
|
|
96
|
+
ref(forge.yaml bindings.commands.validateRfc) <rfc-id> --json
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
Fix every violation. Then report in `aiLanguage`. **Translate all labels to `aiLanguage`** — the template below is structural only.
|
|
100
|
+
|
|
101
|
+
```
|
|
102
|
+
RFC draft created: <file>
|
|
103
|
+
Status: draft
|
|
104
|
+
Next step: human architecture review (status may not change before acceptance).
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
### 7. Commit
|
|
108
|
+
|
|
109
|
+
Commit the RFC draft. This is **mandatory** — the RFC file must be committed, not left in the working tree.
|
|
110
|
+
|
|
111
|
+
Commit message format:
|
|
112
|
+
|
|
113
|
+
```txt
|
|
114
|
+
rfc: create RFC-XXXX <short title>
|
|
115
|
+
|
|
116
|
+
Draft RFC-XXXX (<title>) from template. Status: draft, awaiting human architecture review.
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
Stage only the RFC file — do not stage unrelated changes. Another agent may be working in a different session; `git add -A` or `git add .` is forbidden.
|
|
120
|
+
|
|
121
|
+
## Constraints
|
|
122
|
+
|
|
123
|
+
- **Grilling is mandatory before file creation.** Do not skip step 3 — the concept must survive grilling before the RFC file is created.
|
|
124
|
+
- Use the **full** RFC template for every RFC. Lightweight local decisions now use ADRs instead.
|
|
125
|
+
- Do not change `status` past `draft`.
|
|
126
|
+
- Do not add self-authorizing language such as "implementation may start before acceptance."
|
|
127
|
+
- Do not default `reviewers` on drafts unless the skill is explicitly performing a status transition and the caller has not supplied a reviewer — in that case use `human:andrii-syrokomskyi`.
|
|
128
|
+
- Keep `rfc.validate` clean before presenting the draft.
|
|
129
|
+
- **Commit the RFC draft.** The RFC file must be committed after creation and validation — never left in the working tree.
|
|
130
|
+
- **Never manually determine the RFC number.** Always use `rfc.create` (step 4) to assign the number. The RFC number space includes archived RFCs under `docs/rfcs/archive/` — a top-level-only scan of `docs/rfcs/` misses them and produces duplicate IDs. `rfc.create` scans the full tree recursively and picks the correct next number.
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: fo-idea-enhance
|
|
3
|
+
description: Enhance RFCs by integrating audit findings. Fixes gaps, DNA misalignment, drift, and blind spots. May split out new RFCs. Use after fo-idea-audit or when asked to enhance an RFC.
|
|
4
|
+
invocation: user
|
|
5
|
+
category: fo
|
|
6
|
+
concerns: document-only
|
|
7
|
+
dependsOn: ['my-preferences', 'grilling']
|
|
8
|
+
languagePolicy: ref(PREFERENCES.md)
|
|
9
|
+
bindings:
|
|
10
|
+
requires: [commands.validateRfc]
|
|
11
|
+
optional: [paths.invariantsFile]
|
|
12
|
+
triggers: ["enhance this RFC", "fix audit findings in RFC", "improve RFC based on audit"]
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# RFC Enhance
|
|
16
|
+
|
|
17
|
+
Before starting, read `PREFERENCES.md` at the repository root. If the file is missing or `aiLanguage` is unset, ask the operator once and create the file using the `my-preferences` skill semantics.
|
|
18
|
+
|
|
19
|
+
Integrate audit findings into an RFC to produce a final, implementation-ready version. The enhance skill reads the audit report, resolves open questions, fixes identified issues, and splits out new RFCs when findings reveal topics that deserve separate treatment.
|
|
20
|
+
|
|
21
|
+
## Process
|
|
22
|
+
|
|
23
|
+
### 1. Identify the RFC(s)
|
|
24
|
+
|
|
25
|
+
The user may provide:
|
|
26
|
+
|
|
27
|
+
- **A single RFC**: `RFC-XXXX`, a filename, or a path.
|
|
28
|
+
- **A comma-separated list**: `RFC-XXXX, RFC-XXXX, RFC-XXXX` — process each in order.
|
|
29
|
+
- **A range**: `RFC-XXXX..RFC-XXXX` or `от RFC-XXXX до RFC-XXXX` — discover all RFC files in `docs/rfcs/` whose numeric id falls within the inclusive range, sort ascending, and process each in order.
|
|
30
|
+
- **Nothing**: if an RFC file is open in the IDE, use it. Otherwise, ask.
|
|
31
|
+
|
|
32
|
+
### 1.5. Prerequisite checks (per RFC)
|
|
33
|
+
|
|
34
|
+
Before running the enhance on each RFC, perform these checks **in order**. If any check fails, record the RFC as **skipped** in the batch summary with the reason, and immediately proceed to the next RFC in the batch. Do not stop the entire batch — skip and report.
|
|
35
|
+
|
|
36
|
+
1. **Prefix check** — if the id starts with `ADR-`, this is not an RFC. Skip with message: `ADR-XXXX is an ADR, not an RFC. ADRs do not have an enhance step. The ADR pipeline is: create → implement. Run /fo-idea-implement ADR-XXXX to implement.`
|
|
37
|
+
|
|
38
|
+
2. **RFC file exists** — look for `docs/rfcs/rfc-XXXX-*.md`. If no file is found, skip with message: `RFC-XXXX not found in docs/rfcs/. Run /fo-idea-create-rfc first.`
|
|
39
|
+
|
|
40
|
+
3. **Terminal status check** — read the RFC's `status` frontmatter. If the status is `implemented`, `rejected`, or `superseded`, skip with message: `RFC-XXXX is <status> (terminal). Terminal RFCs cannot be enhanced. To change this decision, create a new RFC with supersedes: [RFC-XXXX] via /fo-idea-create-rfc.`
|
|
41
|
+
|
|
42
|
+
4. **Accepted status check** — if the status is `accepted`, skip with message: `RFC-XXXX is accepted. Accepted RFCs cannot be edited in place. Run /fo-idea-create-rfc with amends: [RFC-XXXX] to create an amending RFC, or supersedes: [RFC-XXXX] to create a superseding RFC.`
|
|
43
|
+
|
|
44
|
+
If all checks pass, proceed to step 2 for this RFC.
|
|
45
|
+
|
|
46
|
+
### 1.6. Batch processing
|
|
47
|
+
|
|
48
|
+
When multiple RFCs are identified, **loop through each one** and run the full enhance (steps 2–11) for each RFC sequentially **without pauses between RFCs**. Do not stop, present a summary, or ask the user between RFCs — once the enhancement for one RFC is committed (or it is skipped), immediately proceed to the next RFC. **Do not emit transition messages such as "Moving to RFC-XXXX next" or per-RFC status reports during the loop.** Internal status is fine, but nothing is shown to the user until the very end. Only after all RFCs are enhanced, print a single final batch summary.
|
|
49
|
+
|
|
50
|
+
**Exception:** Step 5 (resolve audit questions and grill the design) is inherently interactive — it may require user responses for questions the AI could not answer itself. This is not a "pause between RFCs" but a required step within one RFC's enhancement. Resolve all questions for the current RFC before proceeding to step 6, then continue to the next RFC without additional pauses.
|
|
51
|
+
|
|
52
|
+
Read the full RFC file at `docs/rfcs/rfc-XXXX-*.md` for the first RFC to process.
|
|
53
|
+
|
|
54
|
+
### 2. Find the audit
|
|
55
|
+
|
|
56
|
+
Look for the audit report in `docs/audits/`:
|
|
57
|
+
|
|
58
|
+
1. **Canonical**: `audit-rfc-XXXX-…md` — the output of `fo-idea-audit`.
|
|
59
|
+
2. **Legacy**: any file starting with `audit-rfc-XXXX` and ending in `.md` — older audit transcripts from other tools.
|
|
60
|
+
|
|
61
|
+
If a canonical audit file exists, use it. If only legacy files exist, use the most recent one. If no audit file exists at all, **stop with message**: `No audit report found for RFC-XXXX in docs/audits/. Run /fo-idea-audit RFC-XXXX first. The pipeline is: create → audit → enhance → plan → implement.`
|
|
62
|
+
|
|
63
|
+
### 3. Normalize to draft
|
|
64
|
+
|
|
65
|
+
Read the RFC's `status` frontmatter:
|
|
66
|
+
|
|
67
|
+
- **`draft`** — proceed with enhancement.
|
|
68
|
+
- **`reviewing`** — transition to `draft` before enhancement. Set `status: draft`, update `updatedAt` to today's date, commit:
|
|
69
|
+
|
|
70
|
+
```txt
|
|
71
|
+
rfc: revert RFC-XXXX to draft for enhancement
|
|
72
|
+
|
|
73
|
+
Transition RFC-XXXX from reviewing to draft before enhance.
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
Stage only the RFC file. Then proceed with enhancement.
|
|
77
|
+
|
|
78
|
+
**No RFC may begin enhancement in any status other than `draft`.** The transition to `draft` is mandatory and must be committed before proceeding to step 4. (Terminal and accepted statuses are already filtered out in step 1.5.)
|
|
79
|
+
|
|
80
|
+
### 4. Classify findings
|
|
81
|
+
|
|
82
|
+
Read every finding from the audit report. For each, classify it as one of:
|
|
83
|
+
|
|
84
|
+
- **Direct fix** — the RFC text can be edited to address it: fill a placeholder section, add a missing edge case, fix a DNA reference, tighten a contract, add a failure mode, etc.
|
|
85
|
+
- **New RFC** — the finding reveals a topic that is too large or too distinct for this RFC. Examples: a new package, a new DNA invariant, a new governance policy, a new external contract. Splitting it out keeps the RFC focused and follows the ecosystem's one-decision-per-RFC principle.
|
|
86
|
+
- **Out of scope** — the finding is valid but belongs to a different RFC or a future effort. Add it to this RFC's `nonGoals` with a brief explanation and, if applicable, a `related` reference to where it will be addressed.
|
|
87
|
+
|
|
88
|
+
Record the classification for every finding — the summary in step 8 reports it.
|
|
89
|
+
|
|
90
|
+
### 5. Resolve audit questions and grill the design
|
|
91
|
+
|
|
92
|
+
This step is **blocking** — the enhance skill must not proceed to step 6 until all audit questions are resolved and grilling is complete. Skipping unresolved audit questions defeats the purpose of the audit and is **not permitted**.
|
|
93
|
+
|
|
94
|
+
#### 5a. Extract and resolve audit questions
|
|
95
|
+
|
|
96
|
+
Read the "Questions for the author" section from the audit report. For each question, **first attempt to find a confident answer yourself**:
|
|
97
|
+
|
|
98
|
+
1. **Search the ecosystem** — explore existing code, DNA invariants, AGENTS.md rules, existing RFCs, package contracts, and command surfaces. If the answer is determined by existing artifacts, use it. Note it as "resolved from ecosystem: <explanation>" in the summary. Do not ask the user what can be found by exploring.
|
|
99
|
+
2. **Reason from existing patterns** — if the answer is not directly stated but follows unambiguously from existing conventions, architecture decisions, or established patterns in the codebase, derive it. Note it as "resolved by inference: <explanation>" in the summary.
|
|
100
|
+
3. **Ask only if you could not find a confident answer** — if after a genuine attempt you cannot find or derive the answer, ask the user via `ask_user_question`. Present the question with a recommended option first, marked "(recommended)". Ask one question at a time, waiting for the answer before continuing to the next question.
|
|
101
|
+
|
|
102
|
+
Do not ask the user a question you could have answered yourself. Do not skip a question you genuinely could not answer — that defeats the audit.
|
|
103
|
+
|
|
104
|
+
If the audit has no "Questions for the author" section or the section is empty, skip to 5b.
|
|
105
|
+
|
|
106
|
+
#### 5b. Grill the design
|
|
107
|
+
|
|
108
|
+
After all audit questions are answered, invoke the `grilling` skill to stress-test the RFC's design beyond the audit questions. Use the `skill` tool with `SkillName: "grilling"` to load the grilling instructions, then follow them: ask questions one at a time, provide a recommended answer for each, and wait for the user's response before continuing.
|
|
109
|
+
|
|
110
|
+
The grilling questions should probe the RFC's design decisions, edge cases, and integration points that the audit may not have covered. Focus on areas the audit flagged as "Needs revision" or where the answers to 5a revealed uncertainty.
|
|
111
|
+
|
|
112
|
+
If the user explicitly says they don't want further grilling, respect their wish and proceed to 5c.
|
|
113
|
+
|
|
114
|
+
#### 5c. Integrate answers
|
|
115
|
+
|
|
116
|
+
After all questions (audit + grilling) are answered, integrate each answer into the RFC text as a new subsection or within an existing section. Record the answers for the summary in step 9.
|
|
117
|
+
|
|
118
|
+
### 6. Create new RFCs
|
|
119
|
+
|
|
120
|
+
For each finding classified as **New RFC**:
|
|
121
|
+
|
|
122
|
+
1. **Create the RFC** using `rfc.create`:
|
|
123
|
+
```sh
|
|
124
|
+
ref(forge.yaml bindings.commands.validateRfc) --create --title="<imperative title>" --kind=<architecture|contract|command|policy> --scope=<app|workspace>
|
|
125
|
+
```
|
|
126
|
+
2. **Fill the new RFC** — write its Context explaining it was split from the triggering RFC during audit enhancement. Reference the triggering RFC in `related[]`.
|
|
127
|
+
3. **Cross-reference** — add the new RFC's id to the triggering RFC's `related[]` frontmatter. In the triggering RFC's body, replace the split-out topic with a brief note and a reference to the new RFC.
|
|
128
|
+
4. **Run `rfc.validate`** on the new RFC to verify it passes mechanical validation.
|
|
129
|
+
|
|
130
|
+
The new RFC starts as `draft` — it cannot be implemented until human architecture acceptance.
|
|
131
|
+
|
|
132
|
+
### 7. Apply direct fixes
|
|
133
|
+
|
|
134
|
+
Edit the RFC to address every finding classified as **Direct fix**. Work through the audit axes in order:
|
|
135
|
+
|
|
136
|
+
- **Axis A (Structural)** — fill placeholder sections, tighten the Decision statement, add concrete CLI invocations, complete the file-system table, document the `--json` output shape, specify failure modes, write an honest Alternatives section, add agent-misinterpretation risks, make acceptance criteria checkable.
|
|
137
|
+
- **Axis B (DNA)** — fix `satisfies[]` entries to match the body's actual claims, add the "how" explanation for each DNA invariant, resolve silent conflicts (either fix the RFC or note the need for a superseding RFC).
|
|
138
|
+
- **Axis C (Ecosystem)** — fix package boundary violations, correct pipeline placement, add Compass sync notes, add AGENTS.md update requirements, fix cosmic naming references, correct command lifecycle buckets.
|
|
139
|
+
- **Axis D (Forward-only)** — remove compatibility shims, bridges, dual-paths, and legacy-maintenance-behind-a-flag language. Deprecation means removal, not a grace period.
|
|
140
|
+
- **Axis E (Agent-facing)** — remove self-authorizing language, add correct governance rule references (RFC-XXXX, RFC-XXXX, RFC-XXXX, RFC-XXXX), distinguish code-changes from content-authoring in acceptance criteria, remove any cookie usage.
|
|
141
|
+
- **Axis F (Pragmatism)** — consolidate redundant commands into flags, remove speculative generality from TypeScript contracts, add "why extension was insufficient" to Alternatives, tighten `appsImpacted`/`packagesImpacted` lists.
|
|
142
|
+
- **Axis G (Blind spots)** — add performance notes for build-time commands, document false-positive rates and suppression mechanisms, add edge case coverage (empty states, concurrent execution, interrupted operations), document migration paths, add security/privacy considerations.
|
|
143
|
+
|
|
144
|
+
For findings classified as **Out of scope**, add entries to the `nonGoals` frontmatter list with a brief explanation.
|
|
145
|
+
|
|
146
|
+
### 7.5 Stamp enhancedAt
|
|
147
|
+
|
|
148
|
+
Set the `enhancedAt` field in the RFC's frontmatter to today's date (YYYY-MM-DD). This is the persistent marker that downstream skills (`fo-idea-plan`, `fo-idea-implement`) check to determine whether enhance has been run. Also update `updatedAt` to today's date.
|
|
149
|
+
|
|
150
|
+
This step is mandatory even if the audit verdict was "Approved" and zero direct fixes were applied — the stamp confirms the audit was reviewed and no changes were needed, which is distinct from "enhance was never run".
|
|
151
|
+
|
|
152
|
+
### 8. Validate
|
|
153
|
+
|
|
154
|
+
Run mechanical validation on all modified and created RFCs:
|
|
155
|
+
|
|
156
|
+
```sh
|
|
157
|
+
ref(forge.yaml bindings.commands.validateRfc) --json
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
If any violations target the enhanced RFC or new RFCs, fix them and re-run. Do not stop until `rfc.validate` is clean for all touched RFCs.
|
|
161
|
+
|
|
162
|
+
### 9. Summary
|
|
163
|
+
|
|
164
|
+
Present a concise summary of changes made in `aiLanguage`. **Translate all labels and headings to `aiLanguage`** — the template below is structural only.
|
|
165
|
+
|
|
166
|
+
```
|
|
167
|
+
## <RFC-XXXX Enhancement Summary in aiLanguage>
|
|
168
|
+
|
|
169
|
+
### Verdict from audit: <Approved | Needs revision | Rejected>
|
|
170
|
+
|
|
171
|
+
### Direct fixes applied: <count>
|
|
172
|
+
- <one-line per fix, grouped by axis>
|
|
173
|
+
|
|
174
|
+
### New RFCs created: <count>
|
|
175
|
+
- RFC-YYYY: <title> — split from <axis/finding>
|
|
176
|
+
|
|
177
|
+
### Audit questions resolved: <count>
|
|
178
|
+
- <one-line per question: "resolved from ecosystem: <explanation>" | "resolved by inference: <explanation>" | "asked: <user's answer>">
|
|
179
|
+
|
|
180
|
+
### Grilling questions asked: <count>
|
|
181
|
+
- <one-line per question, with the user's answer>
|
|
182
|
+
|
|
183
|
+
### Out of scope (added to nonGoals): <count>
|
|
184
|
+
- <one-line per item>
|
|
185
|
+
|
|
186
|
+
### Validation: <Pass | Fail — details>
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
### 10. Commit
|
|
190
|
+
|
|
191
|
+
Commit all modified and created RFCs. This is **mandatory** — the enhancement must be committed, not left in the working tree.
|
|
192
|
+
|
|
193
|
+
Commit message format:
|
|
194
|
+
|
|
195
|
+
```txt
|
|
196
|
+
enhance: RFC-XXXX <short description>
|
|
197
|
+
|
|
198
|
+
Integrate audit findings into RFC-XXXX (<title>). <count> direct fixes,
|
|
199
|
+
<count> new RFCs created, <count> audit questions resolved, <count> grilling questions asked.
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
Stage only the RFC files and audit files touched by this enhancement — do not stage unrelated changes.
|
|
203
|
+
|
|
204
|
+
### 11. Stop
|
|
205
|
+
|
|
206
|
+
Do not run `/fo-idea-plan` — that is a separate skill for accepted RFCs. If the user asks to plan implementation, suggest running `/fo-idea-plan` after the RFC is accepted. If the user asks to implement, suggest running `/fo-idea-implement` — it requires a plan file and will stop if one is missing. The full pipeline is: create → audit → enhance → plan → implement.
|
|
207
|
+
|
|
208
|
+
## Constraints
|
|
209
|
+
|
|
210
|
+
- **Commit only your own files.** Stage only the files this skill produces or modifies — the RFC file(s), audit file(s), and any new RFCs created during enhancement. Do not stage unrelated changes. Another agent may be working in a different session; `git add -A` or `git add .` is forbidden.
|
|
211
|
+
- The enhance skill **only edits RFCs with status `draft`**. If the RFC is `reviewing`, it must be transitioned to `draft` and committed first (step 3). Accepted, implemented, rejected, and superseded RFCs are not editable in place.
|
|
212
|
+
- New RFCs created during enhancement are always `draft` — they require human architecture acceptance before implementation.
|
|
213
|
+
- The enhance skill **must not weaken existing DNA invariants**. If a finding requires changing a DNA invariant, the enhance skill creates a superseding RFC instead of editing the original.
|
|
214
|
+
- The enhance skill **must not introduce backward compatibility layers, shims, or dual-paths**. The ecosystem is forward-only.
|
|
215
|
+
- The enhance skill **must not add self-authorizing language** to any RFC. Draft RFCs cannot grant implementation permission.
|
|
216
|
+
- Every edit must be grounded in an audit finding — the enhance skill does not make changes the audit did not call for.
|
|
217
|
+
- The enhance skill **must run `rfc.validate`** after all changes and fix any violations before presenting the summary.
|
|
218
|
+
- **No pauses for recoverable tool errors.** If a tool call fails with a recoverable error — e.g. `write_to_file` content too long, JSON truncation, line count/character limit exceeded, or similar — do not stop and ask the user. Recover autonomously: split the content into smaller writes, use `edit`/`multi_edit`, decompose oversized files, and retry immediately. The operator's default answer to "Shall I proceed?" is always "yes".
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: fo-idea-i-just-want-to-see-the-plan
|
|
3
|
+
description: Run the idea-to-plan pipeline (idea, audit, enhance, plan) in a single invocation, then stop. Accepts a raw idea or an existing RFC id. Use when the operator wants a plan, not implementation.
|
|
4
|
+
invocation: user
|
|
5
|
+
category: fo
|
|
6
|
+
concerns: document-only
|
|
7
|
+
dependsOn: ['my-preferences', 'fo-idea-i-just-want-to-see-the-result']
|
|
8
|
+
languagePolicy: ref(PREFERENCES.md)
|
|
9
|
+
triggers: ["I just want to see the plan", "plan this feature without implementing", "run idea to plan pipeline"]
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# Idea to Plan — Just Want to See the Plan
|
|
13
|
+
|
|
14
|
+
Before starting, read `PREFERENCES.md` at the repository root. If the file is missing or `aiLanguage` is unset, ask the operator once and create the file using the `my-preferences` skill semantics.
|
|
15
|
+
|
|
16
|
+
See `_shared/fo-pipeline-conventions.md` §Language policy.
|
|
17
|
+
|
|
18
|
+
## What this skill does
|
|
19
|
+
|
|
20
|
+
Thin wrapper around `fo-idea-i-just-want-to-see-the-result`. Invokes the orchestrator with `stopAfter: plan`, which runs steps 0–3 only (idea → audit → enhance → plan). Step 4 (implement, which includes review and fix) is not run.
|
|
21
|
+
|
|
22
|
+
## ADR documents
|
|
23
|
+
|
|
24
|
+
ADRs skip audit, enhance, and plan. The orchestrator stops after step 0 (idea creation) with the message: "ADR does not require a plan. Run `/fo-idea-implement` to implement."
|
|
25
|
+
|
|
26
|
+
## After the orchestrator stops
|
|
27
|
+
|
|
28
|
+
Present the orchestrator's summary, then add this next-step hint:
|
|
29
|
+
|
|
30
|
+
Run `/fo-idea-implement` to execute the plan (which now includes review and fix), or `/fo-idea-i-just-want-to-see-the-result` to run the remaining pipeline automatically.
|
|
31
|
+
|
|
32
|
+
**Stop.** The operator asked to "just see the plan" — the plan and the hint above are the result.
|
|
33
|
+
|
|
34
|
+
## Constraints
|
|
35
|
+
|
|
36
|
+
- **Session summary.** End every session with the closing block defined in `_shared/fo-session-summary.md`.
|