@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,230 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: fo-idea-plan
|
|
3
|
+
description: Plan RFC implementation — ensure audit/enhance done, map affected artifacts, draft a step-by-step plan with validation and evidence, and persist it. Use when an RFC needs an implementation plan.
|
|
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, paths.compassDocs]
|
|
12
|
+
triggers: ["plan the implementation for this RFC", "create implementation plan", "map affected artifacts and draft steps"]
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# Plan RFC Implementation
|
|
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
|
+
Create a structured implementation plan for an accepted (or pilot-approved) RFC. The plan fixes the step sequence, affected artifacts, validation suite, and evidence strategy **before** code changes begin — making implementation predictable, repeatable, and verifiable.
|
|
20
|
+
|
|
21
|
+
## Process
|
|
22
|
+
|
|
23
|
+
### 0. Identify the RFC(s) and verify prerequisites
|
|
24
|
+
|
|
25
|
+
The pipeline is: create → audit → enhance → plan. Audit and enhance are **mandatory** — no RFC may proceed to planning without both being completed. This is critical because enhance can only edit the RFC while it is still `draft` — if the RFC is `reviewing`, enhance will transition it to `draft` first. Once it becomes `accepted`, enhancement is no longer possible in place.
|
|
26
|
+
|
|
27
|
+
**Do not skip these checks for `accepted` RFCs.** An RFC may have been accepted manually without going through the pipeline. The checks below apply to every RFC regardless of status.
|
|
28
|
+
|
|
29
|
+
#### 0.1. Identify the RFC(s)
|
|
30
|
+
|
|
31
|
+
The user may provide:
|
|
32
|
+
|
|
33
|
+
- **A single RFC**: `RFC-XXXX`, a filename, or a path.
|
|
34
|
+
- **A comma-separated list**: `RFC-XXXX, RFC-XXXX, RFC-XXXX` — process each in order.
|
|
35
|
+
- **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.
|
|
36
|
+
- **Nothing**: if an RFC file is open in the IDE, use it. Otherwise, ask.
|
|
37
|
+
|
|
38
|
+
When multiple RFCs are identified, **loop through each one** and run the full plan (steps 0–7) for each RFC sequentially **without pauses between RFCs**. Do not stop, present a summary, or ask the user between RFCs — once the plan 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 planned, print a single final batch summary.
|
|
39
|
+
|
|
40
|
+
#### 0.2. Prerequisite checks (per RFC)
|
|
41
|
+
|
|
42
|
+
Before running the plan 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.
|
|
43
|
+
|
|
44
|
+
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 a plan step. The ADR pipeline is: create → implement. Run /fo-idea-implement ADR-XXXX to implement.`
|
|
45
|
+
|
|
46
|
+
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.`
|
|
47
|
+
|
|
48
|
+
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 planned. To change this decision, create a new RFC with supersedes: [RFC-XXXX] via /fo-idea-create-rfc.`
|
|
49
|
+
|
|
50
|
+
4. **Audit check** — look for `docs/audits/audit-rfc-XXXX-*.md`. If no audit file exists, skip 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.`
|
|
51
|
+
|
|
52
|
+
5. **Enhance check** — read the RFC's frontmatter and look for the `enhancedAt` field. If `enhancedAt` is absent, skip with message: `RFC-XXXX has not been enhanced (no enhancedAt in frontmatter). Run /fo-idea-enhance RFC-XXXX first. The pipeline is: create → audit → enhance → plan → implement.`
|
|
53
|
+
|
|
54
|
+
6. **Accepted status check** — if the status is `accepted` and both audit and enhance are done, prerequisites are met. Proceed to step 1.
|
|
55
|
+
|
|
56
|
+
If all checks pass, proceed to step 0.3.
|
|
57
|
+
|
|
58
|
+
#### 0.3. Transition draft → accepted
|
|
59
|
+
|
|
60
|
+
If the RFC is `draft` or `reviewing` and has `enhancedAt` — the user's instruction to plan IS the architecture acceptance. Transition the RFC to `accepted`:
|
|
61
|
+
|
|
62
|
+
1. Set `status: accepted`.
|
|
63
|
+
2. Set `reviewers` — if the operator specified a reviewer at invocation, use that. Otherwise, read the default reviewer(s) from the `reviewers` field comment in `os/rfc/rfc-0000-template.md` inside `@warpgogol/forge` (currently `human:andrii-syrokomskyi`). Set all listed default reviewers.
|
|
64
|
+
3. Set `updatedAt` to today's date.
|
|
65
|
+
4. Commit:
|
|
66
|
+
|
|
67
|
+
```txt
|
|
68
|
+
rfc: accept RFC-XXXX <short title>
|
|
69
|
+
|
|
70
|
+
Transition RFC-XXXX to accepted status for planning.
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
5. Stage only the RFC file.
|
|
74
|
+
|
|
75
|
+
Then proceed to step 1.
|
|
76
|
+
|
|
77
|
+
**Inherited acceptance.** If the RFC has a `specRef` frontmatter field pointing to a spec with `status: accepted`, the acceptance inheritance path applies:
|
|
78
|
+
|
|
79
|
+
1. Check the audit report for this RFC — if the audit verdict is `approved`, the RFC MAY transition `draft → accepted` without a separate human acceptance ceremony. Record `reviewers` from the spec's `reviewers` field and note `via spec acceptance <spec-id>` in the commit message.
|
|
80
|
+
2. If the audit verdict is `needs-revision` or `rejected`, inheritance is void — a human decision is required. Do not transition; ask the operator.
|
|
81
|
+
3. If the `specRef` points to a spec with `status: vendored` (not yet accepted), the RFC cannot progress past `draft` — V-SPEC-03 blocks it.
|
|
82
|
+
|
|
83
|
+
### 1. Read the RFC
|
|
84
|
+
|
|
85
|
+
Read the RFC file at `docs/rfcs/rfc-XXXX-*.md` and extract:
|
|
86
|
+
|
|
87
|
+
- **Decision** — the single decision being made.
|
|
88
|
+
- **Architectural fit** — which DNA invariants it enforces or protects, which existing building blocks it aligns with.
|
|
89
|
+
- **Design** — CLI surface, TypeScript contracts, file system responsibilities, output format, failure modes.
|
|
90
|
+
- **Rollout** — adoption path, pipeline integration, deprecation path.
|
|
91
|
+
- **Risks** — technical, organizational, agent-facing.
|
|
92
|
+
- **Acceptance criteria** — the checkboxes that gate the `accepted → implemented` transition.
|
|
93
|
+
- **Implementation notes for agents** — behavioral policy, constraints, escalation triggers.
|
|
94
|
+
- **Frontmatter** — `commands.proposed/added/changed/removed`, `appsImpacted`, `packagesImpacted`, `satisfies` (DNA trace, RFC-XXXX), `acceptance` probes.
|
|
95
|
+
|
|
96
|
+
### 2. Explore the codebase
|
|
97
|
+
|
|
98
|
+
Verify the RFC's claims about affected artifacts. Check:
|
|
99
|
+
|
|
100
|
+
- Which `packages/*` export the types/commands that need changing.
|
|
101
|
+
- Which `apps/*` consume them and need migration.
|
|
102
|
+
- Which `services/*` are impacted.
|
|
103
|
+
- Which `docs/*.xml` Compass files need synchronization (per root AGENTS.md Compass document duties).
|
|
104
|
+
- Which `AGENTS.md` files (root, `apps/`, `packages/`, `services/`) need rule updates.
|
|
105
|
+
- Which pipelines (`build.check`, `build.prepare`, `sites-check`, `sites-check-postbuild`) the new commands join.
|
|
106
|
+
- Whether `rfc.supersede.propose` is needed for any invariant conflict discovered during exploration.
|
|
107
|
+
|
|
108
|
+
### 3. Resolve open questions
|
|
109
|
+
|
|
110
|
+
After exploring, identify decisions the RFC leaves open — ambiguities, trade-offs, unspecified boundaries, conflicting constraints. These are **decisions**, not facts: if a fact can be found by exploring the codebase, look it up instead of asking.
|
|
111
|
+
|
|
112
|
+
Walk the user through each question **one at a time**. For each:
|
|
113
|
+
|
|
114
|
+
1. **Short context** — what the question is, why the plan needs it resolved, what changes depending on the answer.
|
|
115
|
+
2. **Options** — list 2-4 concrete options, **recommended option first**. Mark it with "(recommended)". Each option is a short label plus one line explaining the trade-off.
|
|
116
|
+
3. **Wait** — present the question and stop. Do not batch multiple questions; asking several at once is bewildering.
|
|
117
|
+
|
|
118
|
+
Use the `ask_user_question` tool when available, with the recommended option as the first entry. Otherwise, present the question inline and wait for the answer.
|
|
119
|
+
|
|
120
|
+
Typical questions that arise:
|
|
121
|
+
|
|
122
|
+
- **Scope boundary** — the RFC names several packages; which are in-scope for this plan vs. deferred to a follow-up?
|
|
123
|
+
- **Migration strategy** — fail-hard from day one, warn-first with a grace period, or opt-in with a flag?
|
|
124
|
+
- **Pipeline placement** — does the new check join `build.check` (blocking) or `sites-check-postbuild` (advisory)?
|
|
125
|
+
- **Backward compatibility** — forward-only break, or expand-then-contract migration?
|
|
126
|
+
- **Test seam** — unit test at the handler level, integration test through the CLI, or both?
|
|
127
|
+
- **Compass sync** — which `docs/*.xml` files need updates, and is this a structural change or a content-only refresh?
|
|
128
|
+
|
|
129
|
+
If exploration surfaces no open questions, skip this step and proceed directly to drafting.
|
|
130
|
+
|
|
131
|
+
### 4. Draft the plan
|
|
132
|
+
|
|
133
|
+
Copy `docs/plans/plan-0000-template.md` and fill it, incorporating the user's answers from step 3. Each step must have a **completion criterion** — a checkable condition that tells the agent the step is done.
|
|
134
|
+
|
|
135
|
+
Step ordering follows the contract-first pattern:
|
|
136
|
+
|
|
137
|
+
1. **Contracts** — types, schemas, frontmatter fields, ontology catalogs.
|
|
138
|
+
2. **Commands** — Site OS command handlers, registry, pipeline wiring.
|
|
139
|
+
3. **Documentation** — `AGENTS.md`, Compass XML (`ref(forge.yaml bindings.paths.compassDocs)`), `ref(forge.yaml bindings.paths.invariantsFile)` (if new DNA invariant).
|
|
140
|
+
4. **Tests** — unit tests, fixture files, test matrix.
|
|
141
|
+
5. **Validation** — run `rfc.validate`, `build:check`, acceptance probes.
|
|
142
|
+
6. **Evidence** — run `rfc.verification.emit`, commit evidence file.
|
|
143
|
+
7. **Review & Fix** — `fo-review` on all session code changes, `fo-fix` if findings (MANDATORY — do not omit from the plan).
|
|
144
|
+
|
|
145
|
+
Mark **human review points** on steps that:
|
|
146
|
+
|
|
147
|
+
- Change or establish a DNA invariant (requires a new RFC, not an implementation step).
|
|
148
|
+
- Change an external contract (Stripe, Supabase, Cloudflare, UChat, Matomo).
|
|
149
|
+
- Change security or privacy policy.
|
|
150
|
+
- Change the RFC governance process itself.
|
|
151
|
+
|
|
152
|
+
### 5. Grill the plan
|
|
153
|
+
|
|
154
|
+
Invoke the `/grilling` skill to stress-test the draft plan before persisting. This is **mandatory**, not optional — every plan goes through grilling.
|
|
155
|
+
|
|
156
|
+
The grilling checks:
|
|
157
|
+
|
|
158
|
+
- Are the objectives concrete enough to verify?
|
|
159
|
+
- Does the step ordering have hidden dependencies?
|
|
160
|
+
- Are completion criteria actually checkable, not vague?
|
|
161
|
+
- Are human review points placed where they should be?
|
|
162
|
+
- Does the validation suite cover the acceptance criteria?
|
|
163
|
+
- Are risks mapped to specific mitigating steps, not just listed?
|
|
164
|
+
- Could an agent following this plan get stuck or confused?
|
|
165
|
+
|
|
166
|
+
Address every concern the grilling raises by revising the draft. Do not persist until the grilling is satisfied.
|
|
167
|
+
|
|
168
|
+
### 6. Persist the plan
|
|
169
|
+
|
|
170
|
+
Name the plan file by mirroring the RFC filename with a `plan-` prefix:
|
|
171
|
+
|
|
172
|
+
```txt
|
|
173
|
+
docs/rfcs/rfc-0001-introduce-rfc-governance-process.md
|
|
174
|
+
→ docs/plans/plan-rfc-0001-introduce-rfc-governance-process.md
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
Do **not** modify the RFC file itself — the plan references the RFC by `rfcId`, not the other way around.
|
|
178
|
+
|
|
179
|
+
### 7. Commit
|
|
180
|
+
|
|
181
|
+
Commit the plan file. This is **mandatory** — the plan must be committed, not left in the working tree.
|
|
182
|
+
|
|
183
|
+
Commit message format:
|
|
184
|
+
|
|
185
|
+
```txt
|
|
186
|
+
plan: RFC-XXXX <short description>
|
|
187
|
+
|
|
188
|
+
Add implementation plan for RFC-XXXX (<title>).
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
Reference the RFC ID in the commit subject. Stage only the plan file — do not stage unrelated changes.
|
|
192
|
+
|
|
193
|
+
### 8. Final batch summary
|
|
194
|
+
|
|
195
|
+
This step runs only once, after every RFC in the batch has been planned through steps 0–7. Do not run this step after each individual RFC.
|
|
196
|
+
|
|
197
|
+
If only one RFC was requested, confirm briefly:
|
|
198
|
+
|
|
199
|
+
```
|
|
200
|
+
Plan created: docs/plans/plan-rfc-XXXX-*.md
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
If multiple RFCs were processed, present a single batch summary in `aiLanguage`. **Translate all labels, headings, and column names to `aiLanguage`** — the template below is structural only.
|
|
204
|
+
|
|
205
|
+
```
|
|
206
|
+
## <Batch Plan Summary in aiLanguage>
|
|
207
|
+
|
|
208
|
+
### RFCs planned: <N>
|
|
209
|
+
### RFCs skipped/errored: <list with reason>
|
|
210
|
+
|
|
211
|
+
| RFC | Plan path | Status |
|
|
212
|
+
| --- | --- | --- |
|
|
213
|
+
| RFC-XXXX | docs/plans/... | created |
|
|
214
|
+
| RFC-XXXX | docs/plans/... | created |
|
|
215
|
+
...
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
Do not output per-RFC summaries or "Moving to RFC-XXXX next" messages during the loop; they belong here, at the very end.
|
|
219
|
+
|
|
220
|
+
## Constraints
|
|
221
|
+
|
|
222
|
+
- **Commit only your own files.** Stage only the files this skill produces or modifies — the plan file and the RFC file (for status transitions). Do not stage unrelated changes. Another agent may be working in a different session; `git add -A` or `git add .` is forbidden.
|
|
223
|
+
- **Audit and enhance are mandatory.** No RFC may proceed to planning without both an audit file in `docs/audits/` and `enhancedAt` in the RFC frontmatter. This applies regardless of RFC status — an `accepted` RFC may have been accepted manually without the pipeline. Never skip these checks. If either is missing, skip the RFC with a clear message directing the user to the missing step.
|
|
224
|
+
- The agent MAY transition `draft`/`reviewing` → `accepted` in this skill (step 0.3) after enhance is complete. This is the only RFC file modification permitted — the plan itself references the RFC by `rfcId`.
|
|
225
|
+
- The plan describes steps but does NOT authorize execution — use `/fo-idea-implement` to execute.
|
|
226
|
+
- The plan MUST NOT propose changing DNA invariants without a new superseding RFC.
|
|
227
|
+
- The plan MUST respect RFC-XXXX: only `accepted → implemented` is agent-permitted; all other status transitions are human-only. The `draft → accepted` transition in step 0.3 is an exception authorized by the user's explicit instruction to plan the RFC.
|
|
228
|
+
- The plan MUST reference the RFC's acceptance criteria as the source of truth for completion.
|
|
229
|
+
- **Default reviewer source.** When transitioning `draft → accepted` and the operator has not specified a reviewer, read the default reviewer(s) from the `reviewers` field comment in `os/rfc/rfc-0000-template.md` inside `@warpgogol/forge` (currently `human:andrii-syrokomskyi`). Set all listed default reviewers.
|
|
230
|
+
- **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,103 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: fo-idea-status
|
|
3
|
+
description: Show a concise table of RFCs and ADRs filtered by status or mentioned in the current session. Use when the operator wants a quick status overview.
|
|
4
|
+
invocation: user
|
|
5
|
+
category: fo
|
|
6
|
+
concerns: read-only
|
|
7
|
+
dependsOn: ['my-preferences']
|
|
8
|
+
languagePolicy: ref(PREFERENCES.md)
|
|
9
|
+
bindings:
|
|
10
|
+
requires: []
|
|
11
|
+
optional: [commands.validateRfc, commands.validateAdr]
|
|
12
|
+
triggers: ["show RFC and ADR status", "what is the status of this RFC", "list RFCs by status"]
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# RFC and ADR Status
|
|
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
|
+
See `_shared/fo-pipeline-conventions.md` §Language policy.
|
|
20
|
+
|
|
21
|
+
## What this skill does
|
|
22
|
+
|
|
23
|
+
Lists RFCs and ADRs via site-kernel commands (or by scanning frontmatter as fallback), collects statuses, and presents a concise table. If the operator specifies statuses, filter to those. If the operator mentions RFC/ADR ids in the invocation, include those regardless of status. When a single status has more than 12 documents, show only the count instead of listing each one.
|
|
24
|
+
|
|
25
|
+
## Process
|
|
26
|
+
|
|
27
|
+
### 1. Determine the filter
|
|
28
|
+
|
|
29
|
+
Check the operator's input for:
|
|
30
|
+
|
|
31
|
+
- **Status names** — `draft`, `accepted`, `implemented`, `reviewing`, `rejected`, `superseded`, `retired`. If provided, filter to those statuses only.
|
|
32
|
+
- **No filter** — if no statuses are specified, show all statuses that have at least one document.
|
|
33
|
+
- **Session mentions** — if the operator included `RFC-XXXX` or `ADR-XXXX` ids in the current invocation, always include those documents in the output, even if their status was not requested.
|
|
34
|
+
|
|
35
|
+
### 2. Collect documents
|
|
36
|
+
|
|
37
|
+
**Always** make a single call to `rfc.list --json` (no `--status` flag) and a single call to `adr.list --json`. Filter by status in memory from the returned `entries` array. Never make per-status calls.
|
|
38
|
+
|
|
39
|
+
```sh
|
|
40
|
+
ref(forge.yaml bindings.commands.validateRfc) --list --json
|
|
41
|
+
ref(forge.yaml bindings.commands.validateAdr) --list --json
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
If `adr.list` is not available, fall back to scanning `docs/adrs/adr-*.md` frontmatter.
|
|
45
|
+
|
|
46
|
+
Read the JSON output and extract `id`, `title`, `status`, `createdAt`, and `updatedAt` from each entry.
|
|
47
|
+
|
|
48
|
+
### 3. Build the table
|
|
49
|
+
|
|
50
|
+
Sort entries by `updatedAt` descending (newest first). If `updatedAt` is missing or equal, fall back to `createdAt` descending.
|
|
51
|
+
|
|
52
|
+
Group documents by type (RFC, ADR) and then by status. **Translate all headings and column names to `aiLanguage`** — the templates below are structural only. For each group:
|
|
53
|
+
|
|
54
|
+
- If the group has **≤12 documents**, list each one: `| ID | Title | Status |`
|
|
55
|
+
- If the group has **>12 documents**, show only the count
|
|
56
|
+
|
|
57
|
+
For counts-only groups:
|
|
58
|
+
|
|
59
|
+
```
|
|
60
|
+
## RFC Status
|
|
61
|
+
|
|
62
|
+
| Status | Count |
|
|
63
|
+
| --- | --- |
|
|
64
|
+
| implemented | 328 |
|
|
65
|
+
| draft | 7 |
|
|
66
|
+
|
|
67
|
+
(Showing counts for implemented; listing draft individually.)
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
If all requested groups are small enough, use the detailed table per type:
|
|
71
|
+
|
|
72
|
+
```
|
|
73
|
+
## RFC Status
|
|
74
|
+
|
|
75
|
+
| ID | Title | Status |
|
|
76
|
+
| --- | --- | --- |
|
|
77
|
+
| RFC-XXXX | ... | draft |
|
|
78
|
+
...
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### 4. Session mentions
|
|
82
|
+
|
|
83
|
+
If the operator mentioned specific RFC/ADR ids in the invocation, add a section after the tables:
|
|
84
|
+
|
|
85
|
+
```
|
|
86
|
+
### Mentioned in this session
|
|
87
|
+
|
|
88
|
+
| ID | Title | Status |
|
|
89
|
+
| --- | --- | --- |
|
|
90
|
+
| RFC-XXXX | ... | draft |
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
### 5. Stop
|
|
94
|
+
|
|
95
|
+
Present the table and stop. This skill is read-only — it does not modify any file.
|
|
96
|
+
|
|
97
|
+
## Constraints
|
|
98
|
+
|
|
99
|
+
- **Read-only.** This skill does not modify any file.
|
|
100
|
+
- **Concise output.** Use the >12 threshold to keep output manageable. Show counts, not individual listings, for large groups.
|
|
101
|
+
- **Include session mentions.** Always include documents the operator mentioned in the invocation, regardless of the status filter.
|
|
102
|
+
- **Prefer OS commands.** Use `rfc.list`/`adr.list` instead of scanning the file system.
|
|
103
|
+
- **Session summary.** End every session with the closing block defined in `_shared/fo-session-summary.md`.
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: fo-memory-sync
|
|
3
|
+
description: Sync memory and recent sessions from external AI coding tools (Codex CLI, Claude Code) into the current project. Cross-platform, local-only.
|
|
4
|
+
invocation: user
|
|
5
|
+
category: fo
|
|
6
|
+
concerns: content-mutation
|
|
7
|
+
dependsOn: ['my-preferences']
|
|
8
|
+
languagePolicy: ref(PREFERENCES.md)
|
|
9
|
+
knowledge:
|
|
10
|
+
- qa-log.md
|
|
11
|
+
- fix-patterns.md
|
|
12
|
+
- learned-principles.md
|
|
13
|
+
triggers: ["sync memory from codex", "import external agent knowledge", "recall sessions from other tools", "sync memory from claude code"]
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
# fo-memory-sync
|
|
17
|
+
|
|
18
|
+
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 `my-preferences` skill semantics.
|
|
19
|
+
|
|
20
|
+
Sync memory and recent sessions from external AI coding tools into the current project so that a fresh agent can pick up knowledge left by other agents who worked on the same project. Runs locally — no network calls, no data exfiltration. Cross-platform: Linux, WSL, Windows.
|
|
21
|
+
|
|
22
|
+
## Knowledge layers
|
|
23
|
+
|
|
24
|
+
The skill maintains three knowledge files alongside `SKILL.md`:
|
|
25
|
+
|
|
26
|
+
- **`fix-patterns.md`** (L1) — baseline patterns for filtering, deduplication, and import decisions. Grown by AI per operator direction.
|
|
27
|
+
- **`learned-principles.md`** (L2) — distilled concrete principles extracted from past runs, with `confirmations: N` counter. At N≥3 the skill auto-applies without asking.
|
|
28
|
+
- **`qa-log.md`** (L0) — append-only raw Q&A pairs from each run. Used for meta-analysis and prioritizing suggestions.
|
|
29
|
+
|
|
30
|
+
Read L1 and L2 at the start of each run. Append to L0 during the run. Distill L2 from L0 at the end.
|
|
31
|
+
|
|
32
|
+
## Source locations
|
|
33
|
+
|
|
34
|
+
The skill reads from two external tool families. All paths are resolved relative to the home directory.
|
|
35
|
+
|
|
36
|
+
### Codex CLI
|
|
37
|
+
|
|
38
|
+
| Platform | Memory | Sessions |
|
|
39
|
+
| ----------- | -------------------------------- | -------------------------------- |
|
|
40
|
+
| Linux / WSL | `~/.codex/memories/` | `~/.codex/sessions/` |
|
|
41
|
+
| Windows | `%USERPROFILE%\.codex\memories\` | `%USERPROFILE%\.codex\sessions\` |
|
|
42
|
+
|
|
43
|
+
Memory files are typically Markdown or plain text. Session files may be JSON, JSONL, or Markdown — read whatever format exists.
|
|
44
|
+
|
|
45
|
+
### Claude Code
|
|
46
|
+
|
|
47
|
+
| Platform | Global instructions | Global settings | Project instructions |
|
|
48
|
+
| --- | --- | --- | --- |
|
|
49
|
+
| Linux / WSL | `~/.claude/CLAUDE.md` | `~/.claude/settings.json` | `<repo>/CLAUDE.md` or `<repo>/.claude/CLAUDE.md` |
|
|
50
|
+
| Windows | `%USERPROFILE%\.claude\CLAUDE.md` | `%USERPROFILE%\.claude\settings.json` | `<repo>\CLAUDE.md` or `<repo>\.claude\CLAUDE.md` |
|
|
51
|
+
|
|
52
|
+
Claude Code does not store session history in a standard filesystem location readable by external tools. For Claude Code, the skill reads global and project-level instructions only.
|
|
53
|
+
|
|
54
|
+
## Process
|
|
55
|
+
|
|
56
|
+
### 1. Detect platform and resolve paths
|
|
57
|
+
|
|
58
|
+
Detect the operating system via `process.platform` or equivalent. Resolve the home directory:
|
|
59
|
+
|
|
60
|
+
- Linux / WSL: `os.homedir()` → typically `/home/<user>`
|
|
61
|
+
- Windows: `os.homedir()` → typically `C:\Users\<user>`
|
|
62
|
+
|
|
63
|
+
Build the full path table for both Codex and Claude Code. Check which paths exist. Skip any source that does not exist — do not error.
|
|
64
|
+
|
|
65
|
+
### 2. Read knowledge files
|
|
66
|
+
|
|
67
|
+
Read `fix-patterns.md` and `learned-principles.md` for accumulated filtering and import patterns from previous runs across all projects.
|
|
68
|
+
|
|
69
|
+
### 3. Discover external memory and sessions
|
|
70
|
+
|
|
71
|
+
#### 3a. Codex memories
|
|
72
|
+
|
|
73
|
+
List all files in `~/.codex/memories/` (or Windows equivalent). Sort by modification time, newest first. Read each file. For each memory file:
|
|
74
|
+
|
|
75
|
+
1. **Check L2** — is there a learned principle matching this memory's topic + project context? If yes and confirmations ≥3, auto-decide (import or skip) without asking.
|
|
76
|
+
2. **Check L1** — is there a baseline pattern matching this memory type? If yes, apply the pattern's filter/import rule.
|
|
77
|
+
3. **No match** — ask the operator with 2-3 options. Record the Q&A pair in L0.
|
|
78
|
+
|
|
79
|
+
#### 3b. Codex sessions
|
|
80
|
+
|
|
81
|
+
List all files in `~/.codex/sessions/` (or Windows equivalent). Sort by modification time, newest first. Apply the session limit (default: 20, configurable via operator input). For each session file:
|
|
82
|
+
|
|
83
|
+
1. Read the file. Detect format (JSON, JSONL, Markdown, plain text).
|
|
84
|
+
2. Extract: date, session name or ID, first lines of context, project path if present.
|
|
85
|
+
3. **Filter by project** — if the session references a project path, check whether it matches the current project root (by path or git remote). If it does not match and the operator did not request all projects, skip it.
|
|
86
|
+
4. **Filter by date** — if the operator specified a date range, apply it.
|
|
87
|
+
5. **Filter by name** — if the operator specified a session name filter, apply it.
|
|
88
|
+
|
|
89
|
+
#### 3c. Claude Code instructions
|
|
90
|
+
|
|
91
|
+
Read `~/.claude/CLAUDE.md` (global instructions) and `<repo>/CLAUDE.md` or `<repo>/.claude/CLAUDE.md` (project instructions). These are instruction files, not session logs — treat them as persistent knowledge that may contain project-relevant conventions.
|
|
92
|
+
|
|
93
|
+
### 4. Filter and deduplicate
|
|
94
|
+
|
|
95
|
+
For each discovered item (memory, session, instruction):
|
|
96
|
+
|
|
97
|
+
1. **Relevance filter** — does the item reference the current project, its file paths, its technologies, or its domain? Score relevance as high / medium / low / irrelevant.
|
|
98
|
+
2. **Deduplication** — check whether the knowledge is already present in the project. Search:
|
|
99
|
+
- `AGENTS.md` files at all levels
|
|
100
|
+
- `docs/architecture-dna.md`
|
|
101
|
+
- `docs/rfcs/` and `docs/adrs/`
|
|
102
|
+
- Existing `docs/sessions/` files
|
|
103
|
+
- Memory DB (if accessible)
|
|
104
|
+
3. **Staleness check** — is the item older than the last sync? Check L0 for the last sync timestamp for this project.
|
|
105
|
+
|
|
106
|
+
Items that are irrelevant, duplicated, or stale are listed in the report but not imported.
|
|
107
|
+
|
|
108
|
+
### 5. Present findings to operator
|
|
109
|
+
|
|
110
|
+
Present a structured summary in `aiLanguage`. **Translate all labels, headings, and column names to `aiLanguage`** — the template below is structural only.
|
|
111
|
+
|
|
112
|
+
```
|
|
113
|
+
# <fo-memory-sync report in aiLanguage>
|
|
114
|
+
|
|
115
|
+
## Sources scanned
|
|
116
|
+
- Codex memories: N files found (M relevant)
|
|
117
|
+
- Codex sessions: N files found (M relevant, K within date range)
|
|
118
|
+
- Claude Code instructions: found / not found
|
|
119
|
+
|
|
120
|
+
## Relevant items
|
|
121
|
+
| # | Source | Type | Date | Relevance | Summary | Action |
|
|
122
|
+
| --- | --- | --- | --- | --- | --- | --- |
|
|
123
|
+
| 1 | Codex memory | memory | 2026-07-20 | high | <one-line summary> | import |
|
|
124
|
+
| 2 | Codex session | session | 2026-07-22 | medium | <one-line summary> | import |
|
|
125
|
+
| 3 | Claude CLAUDE.md | instruction | — | high | <one-line summary> | already present |
|
|
126
|
+
|
|
127
|
+
## Filtered out
|
|
128
|
+
| # | Source | Reason |
|
|
129
|
+
| --- | --- | --- |
|
|
130
|
+
| 4 | Codex memory | irrelevant — references different project |
|
|
131
|
+
| 5 | Codex session | duplicate — knowledge already in AGENTS.md |
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
Ask the operator to confirm which items to import. Use `ask_user_question` with the relevant items as options.
|
|
135
|
+
|
|
136
|
+
### 6. Import confirmed items
|
|
137
|
+
|
|
138
|
+
For each confirmed item, route the knowledge to the appropriate destination:
|
|
139
|
+
|
|
140
|
+
| Knowledge type | Destination | Mechanism |
|
|
141
|
+
| --- | --- | --- |
|
|
142
|
+
| Project convention or rule | Nearest applicable `AGENTS.md` | Direct edit |
|
|
143
|
+
| Architectural decision | `docs/adrs/` | Delegate to `fo-idea-create-adr` |
|
|
144
|
+
| Cross-workspace invariant | `ref(forge.yaml bindings.paths.invariantsFile)` | Delegate to `fo-extract-dna` |
|
|
145
|
+
| Session context | `docs/sessions/` | Create session file |
|
|
146
|
+
| Operator preference | `.agents/operator-profile.md` | Direct edit |
|
|
147
|
+
| Ephemeral context | Memory DB | `create_memory` tool |
|
|
148
|
+
|
|
149
|
+
Do not duplicate knowledge already present in the target. Read the target file before editing. Add knowledge in the most concise actionable form.
|
|
150
|
+
|
|
151
|
+
### 7. Update knowledge files
|
|
152
|
+
|
|
153
|
+
After the run:
|
|
154
|
+
|
|
155
|
+
1. Append new Q&A pairs to `qa-log.md` (L0).
|
|
156
|
+
2. If new filtering or import patterns emerged, propose them to the operator and append approved patterns to `fix-patterns.md` (L1).
|
|
157
|
+
3. If recurring decisions were confirmed, distill principles and append to `learned-principles.md` (L2) with `confirmations: 1`. Increment existing principles if the same decision was made again.
|
|
158
|
+
4. Commit knowledge file updates: `git add packages/forge/skills/fo/fo-memory-sync/ && git commit -m "chore: update fo-memory-sync knowledge from run"`.
|
|
159
|
+
|
|
160
|
+
### 8. Final report
|
|
161
|
+
|
|
162
|
+
Output a structured summary:
|
|
163
|
+
|
|
164
|
+
```
|
|
165
|
+
# fo-memory-sync summary
|
|
166
|
+
|
|
167
|
+
## Sync completed
|
|
168
|
+
- Project: <project root>
|
|
169
|
+
- Date: <YYYY-MM-DD>
|
|
170
|
+
- Sources: Codex (memories: N, sessions: M), Claude Code (instructions: found)
|
|
171
|
+
|
|
172
|
+
## Imported
|
|
173
|
+
- AGENTS.md rules: N
|
|
174
|
+
- ADRs: N (delegated to fo-idea-create-adr)
|
|
175
|
+
- DNA invariants: N (delegated to fo-extract-dna)
|
|
176
|
+
- Session files: N
|
|
177
|
+
- Memory DB entries: N
|
|
178
|
+
- Operator profile entries: N
|
|
179
|
+
|
|
180
|
+
## Filtered out
|
|
181
|
+
- Irrelevant: N
|
|
182
|
+
- Duplicate: N
|
|
183
|
+
- Stale: N
|
|
184
|
+
|
|
185
|
+
## Knowledge files updated
|
|
186
|
+
- qa-log.md: N new entries
|
|
187
|
+
- fix-patterns.md: N new patterns
|
|
188
|
+
- learned-principles.md: N new/updated principles
|
|
189
|
+
|
|
190
|
+
## Next sync
|
|
191
|
+
- Suggested: <YYYY-MM-DD> (weekly)
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
## Constraints
|
|
195
|
+
|
|
196
|
+
- **Local-only.** No network calls, no API requests, no data exfiltration. All reading is from the local filesystem.
|
|
197
|
+
- **Read-only on external sources.** Never modify files in `~/.codex/`, `~/.claude/`, or any external tool directory. The skill only reads from those locations.
|
|
198
|
+
- **Cross-platform.** Must work on Linux, WSL, and Windows. Use `os.homedir()` and `path.join()` — never hardcode path separators.
|
|
199
|
+
- **Operator confirmation mandatory for imports.** Do not import any knowledge without explicit confirmation. Present findings, let the operator choose.
|
|
200
|
+
- **No duplication.** Always check whether knowledge is already present in the project before importing. Read target files before editing.
|
|
201
|
+
- **Dedup across projects.** Knowledge files (L0/L1/L2) are shared across all projects. Use project path or git remote as the dedup key in `qa-log.md` entries.
|
|
202
|
+
- **Commit knowledge files.** After each run, commit updated knowledge files to the forge repo. See `_shared/fo-pipeline-conventions.md` §Commit discipline.
|
|
203
|
+
- **Session limit.** Default 20 sessions. Prevents reading hundreds of old session files.
|
|
204
|
+
- **Sensitive information.** Redact API keys, passwords, and PII from any imported knowledge. Same redaction pattern as `fo-handoff`.
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
<!-- L1: Baseline fix patterns for filtering, deduplication, and import decisions.
|
|
2
|
+
Grown by AI per operator direction. Each pattern describes a recurring situation
|
|
3
|
+
and the action to take. -->
|
|
4
|
+
# Fix Patterns
|
|
5
|
+
|
|
6
|
+
## Pattern A: Skip non-project sessions
|
|
7
|
+
|
|
8
|
+
**Situation:** Codex session references a project path that does not match the current project root or git remote.
|
|
9
|
+
**Action:** Skip. List in the "Filtered out" section of the report with reason "irrelevant — references different project".
|
|
10
|
+
|
|
11
|
+
## Pattern B: Skip duplicate knowledge
|
|
12
|
+
|
|
13
|
+
**Situation:** Memory or session content is already present in `AGENTS.md`, `docs/architecture-dna.md`, or existing `docs/sessions/` files.
|
|
14
|
+
**Action:** Skip import. List in the "Filtered out" section with reason "duplicate — knowledge already in <location>".
|
|
15
|
+
|
|
16
|
+
## Pattern C: Import project convention
|
|
17
|
+
|
|
18
|
+
**Situation:** Memory or instruction contains a convention or rule directly applicable to the current project.
|
|
19
|
+
**Action:** Route to the nearest applicable `AGENTS.md`. Read the file before editing. Add in concise actionable form.
|
|
20
|
+
|
|
21
|
+
## Pattern D: Redact sensitive information
|
|
22
|
+
|
|
23
|
+
**Situation:** Memory or session content contains API keys, passwords, or PII.
|
|
24
|
+
**Action:** Redact before importing. Replace with `<redacted>` placeholder. Never import raw secrets.
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
<!-- L2: Concrete principles distilled from past runs, with confirmations counter.
|
|
2
|
+
At confirmations >= 3, the skill auto-applies the principle without asking.
|
|
3
|
+
Rejecting a recommended answer resets confirmations to 0. -->
|
|
4
|
+
# Learned Principles
|
|
5
|
+
|
|
6
|
+
<!-- Format: - principle: <text> | confirmations: N | project: <path-or-remote-or-all> -->
|