@warpgogol/forge 1.2.2 → 2.1.0
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 +1 -0
- package/README.md +33 -19
- package/README.uk.md +33 -19
- package/package.json +1 -1
- package/profiles/astro-typescript-turborepo.yaml +147 -0
- package/profiles/forge-shell.yaml +120 -1
- package/profiles/godot-csharp.yaml +280 -6
- package/profiles/phaser-turborepo.yaml +134 -0
- package/skills/_shared/fo-pipeline-conventions.md +55 -0
- package/skills/fo/fo-doc-audit/SKILL.md +2 -2
- package/skills/fo/fo-idea-i-just-want-to-see-the-plan/SKILL.md +2 -0
- package/skills/fo/fo-idea-i-just-want-to-see-the-result/SKILL.md +7 -3
- package/skills/fo/fo-idea-implement/SKILL.md +50 -46
- package/skills/fo/fo-session-retro/SKILL.md +2 -2
- package/dist/bin/cli.d.ts +0 -3
- package/dist/bin/cli.d.ts.map +0 -1
- package/dist/bin/cli.js +0 -292
- package/dist/bin/cli.js.map +0 -1
- package/dist/os/adr/adr.module.d.ts +0 -3
- package/dist/os/adr/adr.module.d.ts.map +0 -1
- package/dist/os/adr/adr.module.js +0 -145
- package/dist/os/adr/adr.module.js.map +0 -1
- package/dist/os/adr/frontmatter-io.d.ts +0 -12
- package/dist/os/adr/frontmatter-io.d.ts.map +0 -1
- package/dist/os/adr/frontmatter-io.js +0 -67
- package/dist/os/adr/frontmatter-io.js.map +0 -1
- package/dist/os/adr/handlers/archive.d.ts +0 -24
- package/dist/os/adr/handlers/archive.d.ts.map +0 -1
- package/dist/os/adr/handlers/archive.js +0 -194
- package/dist/os/adr/handlers/archive.js.map +0 -1
- package/dist/os/adr/handlers/implement-stamp.d.ts +0 -4
- package/dist/os/adr/handlers/implement-stamp.d.ts.map +0 -1
- package/dist/os/adr/handlers/implement-stamp.js +0 -258
- package/dist/os/adr/handlers/implement-stamp.js.map +0 -1
- package/dist/os/adr/handlers/list-create.d.ts +0 -5
- package/dist/os/adr/handlers/list-create.d.ts.map +0 -1
- package/dist/os/adr/handlers/list-create.js +0 -165
- package/dist/os/adr/handlers/list-create.js.map +0 -1
- package/dist/os/adr/handlers/validate.d.ts +0 -4
- package/dist/os/adr/handlers/validate.d.ts.map +0 -1
- package/dist/os/adr/handlers/validate.js +0 -265
- package/dist/os/adr/handlers/validate.js.map +0 -1
- package/dist/os/adr/index.d.ts +0 -8
- package/dist/os/adr/index.d.ts.map +0 -1
- package/dist/os/adr/index.js +0 -18
- package/dist/os/adr/index.js.map +0 -1
- package/dist/os/adr/types.d.ts +0 -75
- package/dist/os/adr/types.d.ts.map +0 -1
- package/dist/os/adr/types.js +0 -55
- package/dist/os/adr/types.js.map +0 -1
- package/dist/os/audit/audit.module.d.ts +0 -3
- package/dist/os/audit/audit.module.d.ts.map +0 -1
- package/dist/os/audit/audit.module.js +0 -44
- package/dist/os/audit/audit.module.js.map +0 -1
- package/dist/os/audit/frontmatter-io.d.ts +0 -12
- package/dist/os/audit/frontmatter-io.d.ts.map +0 -1
- package/dist/os/audit/frontmatter-io.js +0 -71
- package/dist/os/audit/frontmatter-io.js.map +0 -1
- package/dist/os/audit/handlers/archive.d.ts +0 -4
- package/dist/os/audit/handlers/archive.d.ts.map +0 -1
- package/dist/os/audit/handlers/archive.js +0 -207
- package/dist/os/audit/handlers/archive.js.map +0 -1
- package/dist/os/audit/index.d.ts +0 -6
- package/dist/os/audit/index.d.ts.map +0 -1
- package/dist/os/audit/index.js +0 -16
- package/dist/os/audit/index.js.map +0 -1
- package/dist/os/audit/types.d.ts +0 -12
- package/dist/os/audit/types.d.ts.map +0 -1
- package/dist/os/audit/types.js +0 -17
- package/dist/os/audit/types.js.map +0 -1
- package/dist/os/compass/compass.module.d.ts +0 -3
- package/dist/os/compass/compass.module.d.ts.map +0 -1
- package/dist/os/compass/compass.module.js +0 -166
- package/dist/os/compass/compass.module.js.map +0 -1
- package/dist/os/compass/handlers/compass-audit-handler.d.ts +0 -36
- package/dist/os/compass/handlers/compass-audit-handler.d.ts.map +0 -1
- package/dist/os/compass/handlers/compass-audit-handler.js +0 -238
- package/dist/os/compass/handlers/compass-audit-handler.js.map +0 -1
- package/dist/os/compass/handlers/compass-change-summary-handler.d.ts +0 -19
- package/dist/os/compass/handlers/compass-change-summary-handler.d.ts.map +0 -1
- package/dist/os/compass/handlers/compass-change-summary-handler.js +0 -205
- package/dist/os/compass/handlers/compass-change-summary-handler.js.map +0 -1
- package/dist/os/compass/handlers/compass-inventory-handler.d.ts +0 -28
- package/dist/os/compass/handlers/compass-inventory-handler.d.ts.map +0 -1
- package/dist/os/compass/handlers/compass-inventory-handler.js +0 -213
- package/dist/os/compass/handlers/compass-inventory-handler.js.map +0 -1
- package/dist/os/compass/handlers/compass-inventory.d.ts +0 -30
- package/dist/os/compass/handlers/compass-inventory.d.ts.map +0 -1
- package/dist/os/compass/handlers/compass-inventory.js +0 -418
- package/dist/os/compass/handlers/compass-inventory.js.map +0 -1
- package/dist/os/compass/handlers/git-revision.d.ts +0 -8
- package/dist/os/compass/handlers/git-revision.d.ts.map +0 -1
- package/dist/os/compass/handlers/git-revision.js +0 -99
- package/dist/os/compass/handlers/git-revision.js.map +0 -1
- package/dist/os/compass/handlers/resolve-scan-root.d.ts +0 -3
- package/dist/os/compass/handlers/resolve-scan-root.d.ts.map +0 -1
- package/dist/os/compass/handlers/resolve-scan-root.js +0 -57
- package/dist/os/compass/handlers/resolve-scan-root.js.map +0 -1
- package/dist/os/compass/index.d.ts +0 -8
- package/dist/os/compass/index.d.ts.map +0 -1
- package/dist/os/compass/index.js +0 -19
- package/dist/os/compass/index.js.map +0 -1
- package/dist/os/core/core.module.d.ts +0 -3
- package/dist/os/core/core.module.d.ts.map +0 -1
- package/dist/os/core/core.module.js +0 -758
- package/dist/os/core/core.module.js.map +0 -1
- package/dist/os/core/handlers/assets-check.d.ts +0 -19
- package/dist/os/core/handlers/assets-check.d.ts.map +0 -1
- package/dist/os/core/handlers/assets-check.js +0 -89
- package/dist/os/core/handlers/assets-check.js.map +0 -1
- package/dist/os/core/handlers/assets-helpers.d.ts +0 -28
- package/dist/os/core/handlers/assets-helpers.d.ts.map +0 -1
- package/dist/os/core/handlers/assets-helpers.js +0 -128
- package/dist/os/core/handlers/assets-helpers.js.map +0 -1
- package/dist/os/core/handlers/assets-list.d.ts +0 -9
- package/dist/os/core/handlers/assets-list.d.ts.map +0 -1
- package/dist/os/core/handlers/assets-list.js +0 -72
- package/dist/os/core/handlers/assets-list.js.map +0 -1
- package/dist/os/core/handlers/build.d.ts +0 -16
- package/dist/os/core/handlers/build.d.ts.map +0 -1
- package/dist/os/core/handlers/build.js +0 -123
- package/dist/os/core/handlers/build.js.map +0 -1
- package/dist/os/core/handlers/determinism-check.d.ts +0 -20
- package/dist/os/core/handlers/determinism-check.d.ts.map +0 -1
- package/dist/os/core/handlers/determinism-check.js +0 -289
- package/dist/os/core/handlers/determinism-check.js.map +0 -1
- package/dist/os/core/handlers/dev.d.ts +0 -10
- package/dist/os/core/handlers/dev.d.ts.map +0 -1
- package/dist/os/core/handlers/dev.js +0 -102
- package/dist/os/core/handlers/dev.js.map +0 -1
- package/dist/os/core/handlers/knowledge-compact.d.ts +0 -4
- package/dist/os/core/handlers/knowledge-compact.d.ts.map +0 -1
- package/dist/os/core/handlers/knowledge-compact.js +0 -198
- package/dist/os/core/handlers/knowledge-compact.js.map +0 -1
- package/dist/os/core/handlers/pinned-check.d.ts +0 -49
- package/dist/os/core/handlers/pinned-check.d.ts.map +0 -1
- package/dist/os/core/handlers/pinned-check.js +0 -159
- package/dist/os/core/handlers/pinned-check.js.map +0 -1
- package/dist/os/core/handlers/pinned-init.d.ts +0 -19
- package/dist/os/core/handlers/pinned-init.d.ts.map +0 -1
- package/dist/os/core/handlers/pinned-init.js +0 -283
- package/dist/os/core/handlers/pinned-init.js.map +0 -1
- package/dist/os/core/handlers/pinned-types.d.ts +0 -29
- package/dist/os/core/handlers/pinned-types.d.ts.map +0 -1
- package/dist/os/core/handlers/pinned-types.js +0 -16
- package/dist/os/core/handlers/pinned-types.js.map +0 -1
- package/dist/os/core/handlers/pinned-validate.d.ts +0 -4
- package/dist/os/core/handlers/pinned-validate.d.ts.map +0 -1
- package/dist/os/core/handlers/pinned-validate.js +0 -248
- package/dist/os/core/handlers/pinned-validate.js.map +0 -1
- package/dist/os/core/handlers/profile-resolve.d.ts +0 -13
- package/dist/os/core/handlers/profile-resolve.d.ts.map +0 -1
- package/dist/os/core/handlers/profile-resolve.js +0 -65
- package/dist/os/core/handlers/profile-resolve.js.map +0 -1
- package/dist/os/core/handlers/release-prepare.d.ts +0 -25
- package/dist/os/core/handlers/release-prepare.d.ts.map +0 -1
- package/dist/os/core/handlers/release-prepare.js +0 -228
- package/dist/os/core/handlers/release-prepare.js.map +0 -1
- package/dist/os/core/handlers/release-publish.d.ts +0 -13
- package/dist/os/core/handlers/release-publish.d.ts.map +0 -1
- package/dist/os/core/handlers/release-publish.js +0 -173
- package/dist/os/core/handlers/release-publish.js.map +0 -1
- package/dist/os/core/handlers/validate.d.ts +0 -26
- package/dist/os/core/handlers/validate.d.ts.map +0 -1
- package/dist/os/core/handlers/validate.js +0 -208
- package/dist/os/core/handlers/validate.js.map +0 -1
- package/dist/os/core/handlers/workspace-deps.d.ts +0 -12
- package/dist/os/core/handlers/workspace-deps.d.ts.map +0 -1
- package/dist/os/core/handlers/workspace-deps.js +0 -39
- package/dist/os/core/handlers/workspace-deps.js.map +0 -1
- package/dist/os/core/index.d.ts +0 -2
- package/dist/os/core/index.d.ts.map +0 -1
- package/dist/os/core/index.js +0 -13
- package/dist/os/core/index.js.map +0 -1
- package/dist/os/exploration/exploration.module.d.ts +0 -3
- package/dist/os/exploration/exploration.module.d.ts.map +0 -1
- package/dist/os/exploration/exploration.module.js +0 -82
- package/dist/os/exploration/exploration.module.js.map +0 -1
- package/dist/os/exploration/frontmatter-io.d.ts +0 -13
- package/dist/os/exploration/frontmatter-io.d.ts.map +0 -1
- package/dist/os/exploration/frontmatter-io.js +0 -61
- package/dist/os/exploration/frontmatter-io.js.map +0 -1
- package/dist/os/exploration/handlers/archive.d.ts +0 -4
- package/dist/os/exploration/handlers/archive.d.ts.map +0 -1
- package/dist/os/exploration/handlers/archive.js +0 -135
- package/dist/os/exploration/handlers/archive.js.map +0 -1
- package/dist/os/exploration/handlers/list.d.ts +0 -4
- package/dist/os/exploration/handlers/list.d.ts.map +0 -1
- package/dist/os/exploration/handlers/list.js +0 -56
- package/dist/os/exploration/handlers/list.js.map +0 -1
- package/dist/os/exploration/handlers/show.d.ts +0 -4
- package/dist/os/exploration/handlers/show.d.ts.map +0 -1
- package/dist/os/exploration/handlers/show.js +0 -91
- package/dist/os/exploration/handlers/show.js.map +0 -1
- package/dist/os/exploration/index.d.ts +0 -7
- package/dist/os/exploration/index.d.ts.map +0 -1
- package/dist/os/exploration/index.js +0 -17
- package/dist/os/exploration/index.js.map +0 -1
- package/dist/os/exploration/types.d.ts +0 -38
- package/dist/os/exploration/types.d.ts.map +0 -1
- package/dist/os/exploration/types.js +0 -23
- package/dist/os/exploration/types.js.map +0 -1
- package/dist/os/mission/handlers/archive.d.ts +0 -4
- package/dist/os/mission/handlers/archive.d.ts.map +0 -1
- package/dist/os/mission/handlers/archive.js +0 -356
- package/dist/os/mission/handlers/archive.js.map +0 -1
- package/dist/os/mission/index.d.ts +0 -2
- package/dist/os/mission/index.d.ts.map +0 -1
- package/dist/os/mission/index.js +0 -2
- package/dist/os/mission/index.js.map +0 -1
- package/dist/os/mission/mission.module.d.ts +0 -3
- package/dist/os/mission/mission.module.d.ts.map +0 -1
- package/dist/os/mission/mission.module.js +0 -44
- package/dist/os/mission/mission.module.js.map +0 -1
- package/dist/os/mission/types.d.ts +0 -23
- package/dist/os/mission/types.d.ts.map +0 -1
- package/dist/os/mission/types.js +0 -18
- package/dist/os/mission/types.js.map +0 -1
- package/dist/os/naming/index.d.ts +0 -3
- package/dist/os/naming/index.d.ts.map +0 -1
- package/dist/os/naming/index.js +0 -14
- package/dist/os/naming/index.js.map +0 -1
- package/dist/os/naming/naming-convention.d.ts +0 -25
- package/dist/os/naming/naming-convention.d.ts.map +0 -1
- package/dist/os/naming/naming-convention.js +0 -324
- package/dist/os/naming/naming-convention.js.map +0 -1
- package/dist/os/naming/naming.module.d.ts +0 -3
- package/dist/os/naming/naming.module.d.ts.map +0 -1
- package/dist/os/naming/naming.module.js +0 -33
- package/dist/os/naming/naming.module.js.map +0 -1
- package/dist/os/notes/index.d.ts +0 -2
- package/dist/os/notes/index.d.ts.map +0 -1
- package/dist/os/notes/index.js +0 -10
- package/dist/os/notes/index.js.map +0 -1
- package/dist/os/notes/notes.module.d.ts +0 -3
- package/dist/os/notes/notes.module.d.ts.map +0 -1
- package/dist/os/notes/notes.module.js +0 -83
- package/dist/os/notes/notes.module.js.map +0 -1
- package/dist/os/plan/frontmatter-io.d.ts +0 -12
- package/dist/os/plan/frontmatter-io.d.ts.map +0 -1
- package/dist/os/plan/frontmatter-io.js +0 -69
- package/dist/os/plan/frontmatter-io.js.map +0 -1
- package/dist/os/plan/handlers/archive.d.ts +0 -4
- package/dist/os/plan/handlers/archive.d.ts.map +0 -1
- package/dist/os/plan/handlers/archive.js +0 -206
- package/dist/os/plan/handlers/archive.js.map +0 -1
- package/dist/os/plan/index.d.ts +0 -6
- package/dist/os/plan/index.d.ts.map +0 -1
- package/dist/os/plan/index.js +0 -16
- package/dist/os/plan/index.js.map +0 -1
- package/dist/os/plan/plan.module.d.ts +0 -3
- package/dist/os/plan/plan.module.d.ts.map +0 -1
- package/dist/os/plan/plan.module.js +0 -44
- package/dist/os/plan/plan.module.js.map +0 -1
- package/dist/os/plan/types.d.ts +0 -12
- package/dist/os/plan/types.d.ts.map +0 -1
- package/dist/os/plan/types.js +0 -17
- package/dist/os/plan/types.js.map +0 -1
- package/dist/os/program/discovery.d.ts +0 -61
- package/dist/os/program/discovery.d.ts.map +0 -1
- package/dist/os/program/discovery.js +0 -236
- package/dist/os/program/discovery.js.map +0 -1
- package/dist/os/program/handlers/complete.d.ts +0 -12
- package/dist/os/program/handlers/complete.d.ts.map +0 -1
- package/dist/os/program/handlers/complete.js +0 -344
- package/dist/os/program/handlers/complete.js.map +0 -1
- package/dist/os/program/handlers/lease.d.ts +0 -13
- package/dist/os/program/handlers/lease.d.ts.map +0 -1
- package/dist/os/program/handlers/lease.js +0 -322
- package/dist/os/program/handlers/lease.js.map +0 -1
- package/dist/os/program/handlers/seal.d.ts +0 -12
- package/dist/os/program/handlers/seal.d.ts.map +0 -1
- package/dist/os/program/handlers/seal.js +0 -265
- package/dist/os/program/handlers/seal.js.map +0 -1
- package/dist/os/program/handlers/validate.d.ts +0 -14
- package/dist/os/program/handlers/validate.d.ts.map +0 -1
- package/dist/os/program/handlers/validate.js +0 -164
- package/dist/os/program/handlers/validate.js.map +0 -1
- package/dist/os/program/lease.d.ts +0 -39
- package/dist/os/program/lease.d.ts.map +0 -1
- package/dist/os/program/lease.js +0 -129
- package/dist/os/program/lease.js.map +0 -1
- package/dist/os/program/program.module.d.ts +0 -3
- package/dist/os/program/program.module.d.ts.map +0 -1
- package/dist/os/program/program.module.js +0 -201
- package/dist/os/program/program.module.js.map +0 -1
- package/dist/os/program/schemas.d.ts +0 -225
- package/dist/os/program/schemas.d.ts.map +0 -1
- package/dist/os/program/schemas.js +0 -174
- package/dist/os/program/schemas.js.map +0 -1
- package/dist/os/program/state.d.ts +0 -38
- package/dist/os/program/state.d.ts.map +0 -1
- package/dist/os/program/state.js +0 -189
- package/dist/os/program/state.js.map +0 -1
- package/dist/os/rfc/acceptance.d.ts +0 -15
- package/dist/os/rfc/acceptance.d.ts.map +0 -1
- package/dist/os/rfc/acceptance.js +0 -310
- package/dist/os/rfc/acceptance.js.map +0 -1
- package/dist/os/rfc/decision-log.d.ts +0 -6
- package/dist/os/rfc/decision-log.d.ts.map +0 -1
- package/dist/os/rfc/decision-log.js +0 -269
- package/dist/os/rfc/decision-log.js.map +0 -1
- package/dist/os/rfc/dna-trace.d.ts +0 -27
- package/dist/os/rfc/dna-trace.d.ts.map +0 -1
- package/dist/os/rfc/dna-trace.js +0 -214
- package/dist/os/rfc/dna-trace.js.map +0 -1
- package/dist/os/rfc/frontmatter-io.d.ts +0 -18
- package/dist/os/rfc/frontmatter-io.d.ts.map +0 -1
- package/dist/os/rfc/frontmatter-io.js +0 -110
- package/dist/os/rfc/frontmatter-io.js.map +0 -1
- package/dist/os/rfc/handlers/archive.d.ts +0 -25
- package/dist/os/rfc/handlers/archive.d.ts.map +0 -1
- package/dist/os/rfc/handlers/archive.js +0 -247
- package/dist/os/rfc/handlers/archive.js.map +0 -1
- package/dist/os/rfc/handlers/check.d.ts +0 -4
- package/dist/os/rfc/handlers/check.d.ts.map +0 -1
- package/dist/os/rfc/handlers/check.js +0 -195
- package/dist/os/rfc/handlers/check.js.map +0 -1
- package/dist/os/rfc/handlers/implement-stamp.d.ts +0 -4
- package/dist/os/rfc/handlers/implement-stamp.d.ts.map +0 -1
- package/dist/os/rfc/handlers/implement-stamp.js +0 -420
- package/dist/os/rfc/handlers/implement-stamp.js.map +0 -1
- package/dist/os/rfc/handlers/index-graph.d.ts +0 -13
- package/dist/os/rfc/handlers/index-graph.d.ts.map +0 -1
- package/dist/os/rfc/handlers/index-graph.js +0 -192
- package/dist/os/rfc/handlers/index-graph.js.map +0 -1
- package/dist/os/rfc/handlers/lifecycle.d.ts +0 -13
- package/dist/os/rfc/handlers/lifecycle.d.ts.map +0 -1
- package/dist/os/rfc/handlers/lifecycle.js +0 -155
- package/dist/os/rfc/handlers/lifecycle.js.map +0 -1
- package/dist/os/rfc/handlers/list-create.d.ts +0 -6
- package/dist/os/rfc/handlers/list-create.d.ts.map +0 -1
- package/dist/os/rfc/handlers/list-create.js +0 -240
- package/dist/os/rfc/handlers/list-create.js.map +0 -1
- package/dist/os/rfc/handlers/pipeline-status.d.ts +0 -26
- package/dist/os/rfc/handlers/pipeline-status.d.ts.map +0 -1
- package/dist/os/rfc/handlers/pipeline-status.js +0 -124
- package/dist/os/rfc/handlers/pipeline-status.js.map +0 -1
- package/dist/os/rfc/handlers/shared.d.ts +0 -22
- package/dist/os/rfc/handlers/shared.d.ts.map +0 -1
- package/dist/os/rfc/handlers/shared.js +0 -105
- package/dist/os/rfc/handlers/shared.js.map +0 -1
- package/dist/os/rfc/handlers/supersede-propose.d.ts +0 -4
- package/dist/os/rfc/handlers/supersede-propose.d.ts.map +0 -1
- package/dist/os/rfc/handlers/supersede-propose.js +0 -203
- package/dist/os/rfc/handlers/supersede-propose.js.map +0 -1
- package/dist/os/rfc/handlers/validate-rules.d.ts +0 -32
- package/dist/os/rfc/handlers/validate-rules.d.ts.map +0 -1
- package/dist/os/rfc/handlers/validate-rules.js +0 -590
- package/dist/os/rfc/handlers/validate-rules.js.map +0 -1
- package/dist/os/rfc/handlers/validate.d.ts +0 -4
- package/dist/os/rfc/handlers/validate.d.ts.map +0 -1
- package/dist/os/rfc/handlers/validate.js +0 -108
- package/dist/os/rfc/handlers/validate.js.map +0 -1
- package/dist/os/rfc/handlers.d.ts +0 -7
- package/dist/os/rfc/handlers.d.ts.map +0 -1
- package/dist/os/rfc/handlers.js +0 -19
- package/dist/os/rfc/handlers.js.map +0 -1
- package/dist/os/rfc/index.d.ts +0 -18
- package/dist/os/rfc/index.d.ts.map +0 -1
- package/dist/os/rfc/index.js +0 -24
- package/dist/os/rfc/index.js.map +0 -1
- package/dist/os/rfc/rfc.module.d.ts +0 -3
- package/dist/os/rfc/rfc.module.d.ts.map +0 -1
- package/dist/os/rfc/rfc.module.js +0 -366
- package/dist/os/rfc/rfc.module.js.map +0 -1
- package/dist/os/rfc/types.d.ts +0 -483
- package/dist/os/rfc/types.d.ts.map +0 -1
- package/dist/os/rfc/types.js +0 -100
- package/dist/os/rfc/types.js.map +0 -1
- package/dist/os/rfc/verification-evidence.d.ts +0 -8
- package/dist/os/rfc/verification-evidence.d.ts.map +0 -1
- package/dist/os/rfc/verification-evidence.js +0 -184
- package/dist/os/rfc/verification-evidence.js.map +0 -1
- package/dist/os/session/atif-parser.d.ts +0 -29
- package/dist/os/session/atif-parser.d.ts.map +0 -1
- package/dist/os/session/atif-parser.js +0 -140
- package/dist/os/session/atif-parser.js.map +0 -1
- package/dist/os/session/frontmatter-io.d.ts +0 -31
- package/dist/os/session/frontmatter-io.d.ts.map +0 -1
- package/dist/os/session/frontmatter-io.js +0 -146
- package/dist/os/session/frontmatter-io.js.map +0 -1
- package/dist/os/session/handlers/archive.d.ts +0 -4
- package/dist/os/session/handlers/archive.d.ts.map +0 -1
- package/dist/os/session/handlers/archive.js +0 -241
- package/dist/os/session/handlers/archive.js.map +0 -1
- package/dist/os/session/handlers/list.d.ts +0 -4
- package/dist/os/session/handlers/list.d.ts.map +0 -1
- package/dist/os/session/handlers/list.js +0 -147
- package/dist/os/session/handlers/list.js.map +0 -1
- package/dist/os/session/handlers/save.d.ts +0 -6
- package/dist/os/session/handlers/save.d.ts.map +0 -1
- package/dist/os/session/handlers/save.js +0 -297
- package/dist/os/session/handlers/save.js.map +0 -1
- package/dist/os/session/handlers/validate.d.ts +0 -4
- package/dist/os/session/handlers/validate.d.ts.map +0 -1
- package/dist/os/session/handlers/validate.js +0 -188
- package/dist/os/session/handlers/validate.js.map +0 -1
- package/dist/os/session/index.d.ts +0 -9
- package/dist/os/session/index.d.ts.map +0 -1
- package/dist/os/session/index.js +0 -20
- package/dist/os/session/index.js.map +0 -1
- package/dist/os/session/session.module.d.ts +0 -3
- package/dist/os/session/session.module.d.ts.map +0 -1
- package/dist/os/session/session.module.js +0 -115
- package/dist/os/session/session.module.js.map +0 -1
- package/dist/os/session/types.d.ts +0 -101
- package/dist/os/session/types.d.ts.map +0 -1
- package/dist/os/session/types.js +0 -52
- package/dist/os/session/types.js.map +0 -1
- package/dist/os/spec/live-spec-list.d.ts +0 -4
- package/dist/os/spec/live-spec-list.d.ts.map +0 -1
- package/dist/os/spec/live-spec-list.js +0 -64
- package/dist/os/spec/live-spec-list.js.map +0 -1
- package/dist/os/spec/live-spec-merge.d.ts +0 -4
- package/dist/os/spec/live-spec-merge.d.ts.map +0 -1
- package/dist/os/spec/live-spec-merge.js +0 -345
- package/dist/os/spec/live-spec-merge.js.map +0 -1
- package/dist/os/spec/live-spec-show.d.ts +0 -4
- package/dist/os/spec/live-spec-show.d.ts.map +0 -1
- package/dist/os/spec/live-spec-show.js +0 -99
- package/dist/os/spec/live-spec-show.js.map +0 -1
- package/dist/os/spec/live-spec-types.d.ts +0 -71
- package/dist/os/spec/live-spec-types.d.ts.map +0 -1
- package/dist/os/spec/live-spec-types.js +0 -14
- package/dist/os/spec/live-spec-types.js.map +0 -1
- package/dist/os/spec/live-spec-validate.d.ts +0 -4
- package/dist/os/spec/live-spec-validate.d.ts.map +0 -1
- package/dist/os/spec/live-spec-validate.js +0 -140
- package/dist/os/spec/live-spec-validate.js.map +0 -1
- package/dist/os/spec/spec-materialize.d.ts +0 -21
- package/dist/os/spec/spec-materialize.d.ts.map +0 -1
- package/dist/os/spec/spec-materialize.js +0 -336
- package/dist/os/spec/spec-materialize.js.map +0 -1
- package/dist/os/spec/spec-schema.d.ts +0 -126
- package/dist/os/spec/spec-schema.d.ts.map +0 -1
- package/dist/os/spec/spec-schema.js +0 -118
- package/dist/os/spec/spec-schema.js.map +0 -1
- package/dist/os/spec/spec-status.d.ts +0 -33
- package/dist/os/spec/spec-status.d.ts.map +0 -1
- package/dist/os/spec/spec-status.js +0 -222
- package/dist/os/spec/spec-status.js.map +0 -1
- package/dist/os/spec/spec-validate.d.ts +0 -4
- package/dist/os/spec/spec-validate.d.ts.map +0 -1
- package/dist/os/spec/spec-validate.js +0 -435
- package/dist/os/spec/spec-validate.js.map +0 -1
- package/dist/os/spec/spec.module.d.ts +0 -3
- package/dist/os/spec/spec.module.d.ts.map +0 -1
- package/dist/os/spec/spec.module.js +0 -119
- package/dist/os/spec/spec.module.js.map +0 -1
- package/dist/os/werkstatt/handlers/lock.d.ts +0 -10
- package/dist/os/werkstatt/handlers/lock.d.ts.map +0 -1
- package/dist/os/werkstatt/handlers/lock.js +0 -153
- package/dist/os/werkstatt/handlers/lock.js.map +0 -1
- package/dist/os/werkstatt/handlers/schema.d.ts +0 -33
- package/dist/os/werkstatt/handlers/schema.d.ts.map +0 -1
- package/dist/os/werkstatt/handlers/schema.js +0 -42
- package/dist/os/werkstatt/handlers/schema.js.map +0 -1
- package/dist/os/werkstatt/handlers/werkstatt-lock-recover.d.ts +0 -15
- package/dist/os/werkstatt/handlers/werkstatt-lock-recover.d.ts.map +0 -1
- package/dist/os/werkstatt/handlers/werkstatt-lock-recover.js +0 -144
- package/dist/os/werkstatt/handlers/werkstatt-lock-recover.js.map +0 -1
- package/dist/os/werkstatt/handlers/werkstatt-lock-status.d.ts +0 -18
- package/dist/os/werkstatt/handlers/werkstatt-lock-status.d.ts.map +0 -1
- package/dist/os/werkstatt/handlers/werkstatt-lock-status.js +0 -43
- package/dist/os/werkstatt/handlers/werkstatt-lock-status.js.map +0 -1
- package/dist/os/werkstatt/handlers/werkstatt-operation-validate.d.ts +0 -11
- package/dist/os/werkstatt/handlers/werkstatt-operation-validate.d.ts.map +0 -1
- package/dist/os/werkstatt/handlers/werkstatt-operation-validate.js +0 -79
- package/dist/os/werkstatt/handlers/werkstatt-operation-validate.js.map +0 -1
- package/dist/os/werkstatt/index.d.ts +0 -7
- package/dist/os/werkstatt/index.d.ts.map +0 -1
- package/dist/os/werkstatt/index.js +0 -18
- package/dist/os/werkstatt/index.js.map +0 -1
- package/dist/os/werkstatt/werkstatt.module.d.ts +0 -3
- package/dist/os/werkstatt/werkstatt.module.d.ts.map +0 -1
- package/dist/os/werkstatt/werkstatt.module.js +0 -58
- package/dist/os/werkstatt/werkstatt.module.js.map +0 -1
- package/dist/os/workflow/handlers.d.ts +0 -12
- package/dist/os/workflow/handlers.d.ts.map +0 -1
- package/dist/os/workflow/handlers.js +0 -254
- package/dist/os/workflow/handlers.js.map +0 -1
- package/dist/os/workflow/index.d.ts +0 -4
- package/dist/os/workflow/index.d.ts.map +0 -1
- package/dist/os/workflow/index.js +0 -18
- package/dist/os/workflow/index.js.map +0 -1
- package/dist/os/workflow/types.d.ts +0 -69
- package/dist/os/workflow/types.d.ts.map +0 -1
- package/dist/os/workflow/types.js +0 -23
- package/dist/os/workflow/types.js.map +0 -1
- package/dist/os/workflow/workflow.module.d.ts +0 -3
- package/dist/os/workflow/workflow.module.d.ts.map +0 -1
- package/dist/os/workflow/workflow.module.js +0 -48
- package/dist/os/workflow/workflow.module.js.map +0 -1
- package/dist/src/cli-output.d.ts +0 -5
- package/dist/src/cli-output.d.ts.map +0 -1
- package/dist/src/cli-output.js +0 -53
- package/dist/src/cli-output.js.map +0 -1
- package/dist/src/config/forge-config.d.ts +0 -242
- package/dist/src/config/forge-config.d.ts.map +0 -1
- package/dist/src/config/forge-config.js +0 -359
- package/dist/src/config/forge-config.js.map +0 -1
- package/dist/src/forge-module.d.ts +0 -16
- package/dist/src/forge-module.d.ts.map +0 -1
- package/dist/src/forge-module.js +0 -15
- package/dist/src/forge-module.js.map +0 -1
- package/dist/src/index.d.ts +0 -36
- package/dist/src/index.d.ts.map +0 -1
- package/dist/src/index.js +0 -56
- package/dist/src/index.js.map +0 -1
- package/dist/src/knowledge/budgets.d.ts +0 -38
- package/dist/src/knowledge/budgets.d.ts.map +0 -1
- package/dist/src/knowledge/budgets.js +0 -157
- package/dist/src/knowledge/budgets.js.map +0 -1
- package/dist/src/knowledge/compact.d.ts +0 -47
- package/dist/src/knowledge/compact.d.ts.map +0 -1
- package/dist/src/knowledge/compact.js +0 -320
- package/dist/src/knowledge/compact.js.map +0 -1
- package/dist/src/knowledge/index.d.ts +0 -7
- package/dist/src/knowledge/index.d.ts.map +0 -1
- package/dist/src/knowledge/index.js +0 -19
- package/dist/src/knowledge/index.js.map +0 -1
- package/dist/src/knowledge/parse.d.ts +0 -3
- package/dist/src/knowledge/parse.d.ts.map +0 -1
- package/dist/src/knowledge/parse.js +0 -205
- package/dist/src/knowledge/parse.js.map +0 -1
- package/dist/src/knowledge/promote.d.ts +0 -37
- package/dist/src/knowledge/promote.d.ts.map +0 -1
- package/dist/src/knowledge/promote.js +0 -120
- package/dist/src/knowledge/promote.js.map +0 -1
- package/dist/src/knowledge/schema.d.ts +0 -61
- package/dist/src/knowledge/schema.d.ts.map +0 -1
- package/dist/src/knowledge/schema.js +0 -64
- package/dist/src/knowledge/schema.js.map +0 -1
- package/dist/src/knowledge/serialize.d.ts +0 -3
- package/dist/src/knowledge/serialize.d.ts.map +0 -1
- package/dist/src/knowledge/serialize.js +0 -67
- package/dist/src/knowledge/serialize.js.map +0 -1
- package/dist/src/migration-adapters/git-utils.d.ts +0 -3
- package/dist/src/migration-adapters/git-utils.d.ts.map +0 -1
- package/dist/src/migration-adapters/git-utils.js +0 -56
- package/dist/src/migration-adapters/git-utils.js.map +0 -1
- package/dist/src/migration-adapters/ignored-files.d.ts +0 -12
- package/dist/src/migration-adapters/ignored-files.d.ts.map +0 -1
- package/dist/src/migration-adapters/ignored-files.js +0 -190
- package/dist/src/migration-adapters/ignored-files.js.map +0 -1
- package/dist/src/migration-adapters/index.d.ts +0 -8
- package/dist/src/migration-adapters/index.d.ts.map +0 -1
- package/dist/src/migration-adapters/index.js +0 -17
- package/dist/src/migration-adapters/index.js.map +0 -1
- package/dist/src/migration-adapters/node-typescript-pnpm/index.d.ts +0 -3
- package/dist/src/migration-adapters/node-typescript-pnpm/index.d.ts.map +0 -1
- package/dist/src/migration-adapters/node-typescript-pnpm/index.js +0 -141
- package/dist/src/migration-adapters/node-typescript-pnpm/index.js.map +0 -1
- package/dist/src/migration-adapters/phaser-pnpm/index.d.ts +0 -3
- package/dist/src/migration-adapters/phaser-pnpm/index.d.ts.map +0 -1
- package/dist/src/migration-adapters/phaser-pnpm/index.js +0 -142
- package/dist/src/migration-adapters/phaser-pnpm/index.js.map +0 -1
- package/dist/src/migration-adapters/registry.d.ts +0 -6
- package/dist/src/migration-adapters/registry.d.ts.map +0 -1
- package/dist/src/migration-adapters/registry.js +0 -55
- package/dist/src/migration-adapters/registry.js.map +0 -1
- package/dist/src/migration-adapters/types.d.ts +0 -35
- package/dist/src/migration-adapters/types.d.ts.map +0 -1
- package/dist/src/migration-adapters/types.js +0 -31
- package/dist/src/migration-adapters/types.js.map +0 -1
- package/dist/src/onboarding/agents-generate.d.ts +0 -30
- package/dist/src/onboarding/agents-generate.d.ts.map +0 -1
- package/dist/src/onboarding/agents-generate.js +0 -352
- package/dist/src/onboarding/agents-generate.js.map +0 -1
- package/dist/src/onboarding/create.d.ts +0 -12
- package/dist/src/onboarding/create.d.ts.map +0 -1
- package/dist/src/onboarding/create.js +0 -318
- package/dist/src/onboarding/create.js.map +0 -1
- package/dist/src/onboarding/doctor.d.ts +0 -45
- package/dist/src/onboarding/doctor.d.ts.map +0 -1
- package/dist/src/onboarding/doctor.js +0 -1108
- package/dist/src/onboarding/doctor.js.map +0 -1
- package/dist/src/onboarding/init.d.ts +0 -32
- package/dist/src/onboarding/init.d.ts.map +0 -1
- package/dist/src/onboarding/init.js +0 -291
- package/dist/src/onboarding/init.js.map +0 -1
- package/dist/src/onboarding/invariant-engine.d.ts +0 -17
- package/dist/src/onboarding/invariant-engine.d.ts.map +0 -1
- package/dist/src/onboarding/invariant-engine.js +0 -416
- package/dist/src/onboarding/invariant-engine.js.map +0 -1
- package/dist/src/onboarding/memory-scaffold.d.ts +0 -18
- package/dist/src/onboarding/memory-scaffold.d.ts.map +0 -1
- package/dist/src/onboarding/memory-scaffold.js +0 -151
- package/dist/src/onboarding/memory-scaffold.js.map +0 -1
- package/dist/src/onboarding/nested-agents-generate.d.ts +0 -18
- package/dist/src/onboarding/nested-agents-generate.d.ts.map +0 -1
- package/dist/src/onboarding/nested-agents-generate.js +0 -69
- package/dist/src/onboarding/nested-agents-generate.js.map +0 -1
- package/dist/src/onboarding/nested-agents-templates.d.ts +0 -26
- package/dist/src/onboarding/nested-agents-templates.d.ts.map +0 -1
- package/dist/src/onboarding/nested-agents-templates.js +0 -178
- package/dist/src/onboarding/nested-agents-templates.js.map +0 -1
- package/dist/src/onboarding/profile-validate.d.ts +0 -13
- package/dist/src/onboarding/profile-validate.d.ts.map +0 -1
- package/dist/src/onboarding/profile-validate.js +0 -109
- package/dist/src/onboarding/profile-validate.js.map +0 -1
- package/dist/src/onboarding/scaffold-project.d.ts +0 -12
- package/dist/src/onboarding/scaffold-project.d.ts.map +0 -1
- package/dist/src/onboarding/scaffold-project.js +0 -248
- package/dist/src/onboarding/scaffold-project.js.map +0 -1
- package/dist/src/onboarding/scaffold.d.ts +0 -15
- package/dist/src/onboarding/scaffold.d.ts.map +0 -1
- package/dist/src/onboarding/scaffold.js +0 -120
- package/dist/src/onboarding/scaffold.js.map +0 -1
- package/dist/src/onboarding/upgrade.d.ts +0 -25
- package/dist/src/onboarding/upgrade.d.ts.map +0 -1
- package/dist/src/onboarding/upgrade.js +0 -391
- package/dist/src/onboarding/upgrade.js.map +0 -1
- package/dist/src/onboarding/workspace-discovery.d.ts +0 -11
- package/dist/src/onboarding/workspace-discovery.d.ts.map +0 -1
- package/dist/src/onboarding/workspace-discovery.js +0 -138
- package/dist/src/onboarding/workspace-discovery.js.map +0 -1
- package/dist/src/profiles/profile-schema.d.ts +0 -351
- package/dist/src/profiles/profile-schema.d.ts.map +0 -1
- package/dist/src/profiles/profile-schema.js +0 -201
- package/dist/src/profiles/profile-schema.js.map +0 -1
- package/dist/src/profiles/stack-profile.d.ts +0 -168
- package/dist/src/profiles/stack-profile.d.ts.map +0 -1
- package/dist/src/profiles/stack-profile.js +0 -144
- package/dist/src/profiles/stack-profile.js.map +0 -1
- package/dist/src/profiles/terminology-utils.d.ts +0 -8
- package/dist/src/profiles/terminology-utils.d.ts.map +0 -1
- package/dist/src/profiles/terminology-utils.js +0 -31
- package/dist/src/profiles/terminology-utils.js.map +0 -1
- package/dist/src/registry.d.ts +0 -38
- package/dist/src/registry.d.ts.map +0 -1
- package/dist/src/registry.js +0 -135
- package/dist/src/registry.js.map +0 -1
- package/dist/src/skill-schema.d.ts +0 -30
- package/dist/src/skill-schema.d.ts.map +0 -1
- package/dist/src/skill-schema.js +0 -34
- package/dist/src/skill-schema.js.map +0 -1
- package/dist/src/types.d.ts +0 -152
- package/dist/src/types.d.ts.map +0 -1
- package/dist/src/types.js +0 -17
- package/dist/src/types.js.map +0 -1
- package/dist/src/utils/fs-atomic.d.ts +0 -7
- package/dist/src/utils/fs-atomic.d.ts.map +0 -1
- package/dist/src/utils/fs-atomic.js +0 -81
- package/dist/src/utils/fs-atomic.js.map +0 -1
- package/dist/src/utils/fs-idempotent.d.ts +0 -2
- package/dist/src/utils/fs-idempotent.d.ts.map +0 -1
- package/dist/src/utils/fs-idempotent.js +0 -39
- package/dist/src/utils/fs-idempotent.js.map +0 -1
- package/dist/src/utils/fs-trash-sync.d.ts +0 -2
- package/dist/src/utils/fs-trash-sync.d.ts.map +0 -1
- package/dist/src/utils/fs-trash-sync.js +0 -34
- package/dist/src/utils/fs-trash-sync.js.map +0 -1
- package/dist/src/utils/fs-trash.d.ts +0 -2
- package/dist/src/utils/fs-trash.d.ts.map +0 -1
- package/dist/src/utils/fs-trash.js +0 -24
- package/dist/src/utils/fs-trash.js.map +0 -1
- package/dist/src/utils/fs.d.ts +0 -8
- package/dist/src/utils/fs.d.ts.map +0 -1
- package/dist/src/utils/fs.js +0 -60
- package/dist/src/utils/fs.js.map +0 -1
- package/dist/src/utils/generated-marker.d.ts +0 -21
- package/dist/src/utils/generated-marker.d.ts.map +0 -1
- package/dist/src/utils/generated-marker.js +0 -128
- package/dist/src/utils/generated-marker.js.map +0 -1
- package/dist/src/utils/hash.d.ts +0 -2
- package/dist/src/utils/hash.d.ts.map +0 -1
- package/dist/src/utils/hash.js +0 -18
- package/dist/src/utils/hash.js.map +0 -1
- package/dist/src/utils/index.d.ts +0 -9
- package/dist/src/utils/index.d.ts.map +0 -1
- package/dist/src/utils/index.js +0 -21
- package/dist/src/utils/index.js.map +0 -1
- package/dist/src/utils/string-utils.d.ts +0 -2
- package/dist/src/utils/string-utils.d.ts.map +0 -1
- package/dist/src/utils/string-utils.js +0 -19
- package/dist/src/utils/string-utils.js.map +0 -1
- package/dist/src/validators/note-frontmatter-validate.d.ts +0 -20
- package/dist/src/validators/note-frontmatter-validate.d.ts.map +0 -1
- package/dist/src/validators/note-frontmatter-validate.js +0 -117
- package/dist/src/validators/note-frontmatter-validate.js.map +0 -1
- package/dist/src/validators/note-link-validate.d.ts +0 -21
- package/dist/src/validators/note-link-validate.d.ts.map +0 -1
- package/dist/src/validators/note-link-validate.js +0 -121
- package/dist/src/validators/note-link-validate.js.map +0 -1
- package/dist/src/validators/note-orphan-detect.d.ts +0 -19
- package/dist/src/validators/note-orphan-detect.d.ts.map +0 -1
- package/dist/src/validators/note-orphan-detect.js +0 -123
- package/dist/src/validators/note-orphan-detect.js.map +0 -1
- package/dist/src/validators/port-validate.d.ts +0 -12
- package/dist/src/validators/port-validate.d.ts.map +0 -1
- package/dist/src/validators/port-validate.js +0 -78
- package/dist/src/validators/port-validate.js.map +0 -1
- package/dist/src/validators/skill-validate.d.ts +0 -29
- package/dist/src/validators/skill-validate.d.ts.map +0 -1
- package/dist/src/validators/skill-validate.js +0 -689
- package/dist/src/validators/skill-validate.js.map +0 -1
|
@@ -41,15 +41,19 @@ Determine the document type by:
|
|
|
41
41
|
|
|
42
42
|
If the type cannot be determined, ask the user.
|
|
43
43
|
|
|
44
|
-
### 3.
|
|
44
|
+
### 3. Pre-pipeline checkpoint
|
|
45
45
|
|
|
46
|
-
|
|
46
|
+
Before starting implementation, perform a pre-pipeline checkpoint per `_shared/fo-pipeline-conventions.md` §Pre-pipeline checkpoint. If pre-existing session context exists (discussion, document creation, debugging, prior pipeline steps), emit the checkpoint block, release pre-existing context, and start implementation with a fresh read phase. If the session has no prior context (e.g. this skill was invoked at the start of a session), skip the checkpoint. If a pre-pipeline checkpoint was already emitted by a calling orchestrator (e.g. `fo-idea-i-just-want-to-see-the-result`), skip this step — the checkpoint was already done.
|
|
47
|
+
|
|
48
|
+
### 4. RFC implementation flow
|
|
49
|
+
|
|
50
|
+
#### 4.1. Prerequisite checks (per RFC)
|
|
47
51
|
|
|
48
52
|
The pipeline is: create → audit → enhance → plan → implement. Audit, enhance, and a plan are **mandatory** — no RFC may proceed to implementation without all three being completed. The RFC must also be `accepted` — this skill does not transition `draft` to `accepted`; that is the responsibility of `fo-idea-plan`.
|
|
49
53
|
|
|
50
54
|
Before running the implementation 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.
|
|
51
55
|
|
|
52
|
-
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. Use the ADR implementation flow (step
|
|
56
|
+
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. Use the ADR implementation flow (step 5 below) for ADR-XXXX.`
|
|
53
57
|
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.`
|
|
54
58
|
3. **Terminal status check** — read the RFC's `status` frontmatter. If the status is `implemented`, skip with message: `RFC-XXXX is already implemented. Nothing to do.` If the status is `rejected` or `superseded`, skip with message: `RFC-XXXX is <status> (terminal). Terminal RFCs cannot be implemented. To change this decision, create a new RFC with supersedes: [RFC-XXXX] via /fo-idea-create-rfc.`
|
|
55
59
|
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.`
|
|
@@ -57,15 +61,15 @@ Before running the implementation on each RFC, perform these checks **in order**
|
|
|
57
61
|
6. **Accepted status check** — if the status is not `accepted` (e.g. `draft` or `reviewing`), skip with message: `RFC-XXXX is <status>, not accepted. Run /fo-idea-plan RFC-XXXX first — it will transition the RFC to accepted and create the plan. The pipeline is: create → audit → enhance → plan → implement.`
|
|
58
62
|
7. **Plan check** — look for `docs/plans/plan-rfc-XXXX-*.md`. If no plan file exists, skip with message: `No plan file found for RFC-XXXX in docs/plans/. Run /fo-idea-plan RFC-XXXX first. The pipeline is: create → audit → enhance → plan → implement.`
|
|
59
63
|
|
|
60
|
-
If all checks pass, proceed to step
|
|
64
|
+
If all checks pass, proceed to step 4.2.
|
|
61
65
|
|
|
62
|
-
####
|
|
66
|
+
#### 4.2. Read the RFC and related context
|
|
63
67
|
|
|
64
68
|
Read the RFC fully and all RFCs listed in its `amends[]`, `related[]`, and `supersedes[]`. Read the plan fully. Read the closest `AGENTS.md` for each impacted package. Read `ref(forge.yaml bindings.paths.invariantsFile)` entries for every DNA invariant in `satisfies[]`.
|
|
65
69
|
|
|
66
70
|
If the plan or RFC has genuine ambiguities that would cause wrong implementation, ask the user **before starting implementation**. Use `ask_user_question` with a recommended option first. Once implementation begins, stop asking — make autonomous decisions.
|
|
67
71
|
|
|
68
|
-
####
|
|
72
|
+
#### 4.3. Implement step by step
|
|
69
73
|
|
|
70
74
|
Execute the plan's step sequence in order. For each step:
|
|
71
75
|
|
|
@@ -96,7 +100,7 @@ Stage only the files touched by this step. Do not stage unrelated changes — an
|
|
|
96
100
|
- **Compass scaffolding.** New non-trivial source files in `apps/` or `packages/` must carry `MODULE_CONTRACT` and `CHANGE_SUMMARY` scaffolding. Check the project's invariants file for the canonical Compass markup rule.
|
|
97
101
|
- **Compass terminology.** Use Compass (not GRACE) in all new code, documentation, and log messages.
|
|
98
102
|
|
|
99
|
-
####
|
|
103
|
+
#### 4.4. Run heavy checks
|
|
100
104
|
|
|
101
105
|
After **all** plan steps are complete, run the heavy validation suite in order:
|
|
102
106
|
|
|
@@ -122,9 +126,9 @@ Use the `packagesImpacted` and `appsImpacted` frontmatter lists to determine whi
|
|
|
122
126
|
|
|
123
127
|
**Do not run a full root `root build` or `turbo run build`.** The success criterion is that all impacted workspaces pass their scoped checks, not that the entire ecosystem builds. See root AGENTS.md §Build verification discipline.
|
|
124
128
|
|
|
125
|
-
####
|
|
129
|
+
#### 4.5. Fix errors
|
|
126
130
|
|
|
127
|
-
If any check in step
|
|
131
|
+
If any check in step 4.4 fails, fix every error:
|
|
128
132
|
|
|
129
133
|
1. Read the error output.
|
|
130
134
|
2. Identify the root cause.
|
|
@@ -142,7 +146,7 @@ If any check in step 3.4 fails, fix every error:
|
|
|
142
146
|
|
|
143
147
|
Continue until all impacted checks pass.
|
|
144
148
|
|
|
145
|
-
####
|
|
149
|
+
#### 4.6. Check acceptance criteria
|
|
146
150
|
|
|
147
151
|
Read the RFC's `## Acceptance criteria` section. For each checkbox:
|
|
148
152
|
|
|
@@ -153,9 +157,9 @@ Read the RFC's `## Acceptance criteria` section. For each checkbox:
|
|
|
153
157
|
5. **If a criterion cannot be met** (e.g., requires an external dependency not yet available, requires a pilot that is not registered), do NOT mark it `[x]` and do NOT stamp `implemented`. Instead, split the deferred work into a follow-up RFC via `rfc.supersede.propose`. An RFC with unchecked `[ ]` criteria cannot transition to `implemented` — this is enforced by V-26.
|
|
154
158
|
6. **Ensure `reviewers` is non-empty** — `rfc.validate` enforces V-25: implemented RFCs with an empty `reviewers` field fail validation. Add at least one reviewer (e.g. `human:<name>`) before stamping `implemented`.
|
|
155
159
|
|
|
156
|
-
Do not proceed to step
|
|
160
|
+
Do not proceed to step 4.7 until every acceptance criterion checkbox is checked with evidence.
|
|
157
161
|
|
|
158
|
-
####
|
|
162
|
+
#### 4.7. Run acceptance probes and emit evidence
|
|
159
163
|
|
|
160
164
|
If the RFC declares `acceptance:` probes in frontmatter:
|
|
161
165
|
|
|
@@ -181,7 +185,7 @@ Emit per-RFC verification evidence for RFC-XXXX implementation.
|
|
|
181
185
|
|
|
182
186
|
Stage `docs/rfcs/verification/rfc-xxxx.generated.json`.
|
|
183
187
|
|
|
184
|
-
####
|
|
188
|
+
#### 4.8. Stamp implemented
|
|
185
189
|
|
|
186
190
|
Transition the RFC to `implemented` using the `rfc.implement.stamp` command. Direct edits to `status`, `implementedAt`, and `updatedAt` are prohibited for all actors.
|
|
187
191
|
|
|
@@ -208,7 +212,7 @@ Transition the RFC to `implemented` using the `rfc.implement.stamp` command. Dir
|
|
|
208
212
|
|
|
209
213
|
Stage only the RFC file. The implementation commit and the stamp commit MUST be separate.
|
|
210
214
|
|
|
211
|
-
####
|
|
215
|
+
#### 4.8b. Regenerate command manifest (MANDATORY)
|
|
212
216
|
|
|
213
217
|
If the RFC added, changed, or removed commands (check `commands.added`, `commands.changed`, `commands.removed` in the RFC frontmatter), regenerate the command manifest so that `rfc.validate` does not report `RFC-CMD-02` (command listed but not registered):
|
|
214
218
|
|
|
@@ -228,26 +232,26 @@ If the RFC has no `commands.*` changes (e.g. it only changes schemas, docs, or i
|
|
|
228
232
|
|
|
229
233
|
This step is MANDATORY for any RFC with `commands.added`, `commands.changed`, or `commands.removed`. A stale manifest causes `RFC-CMD-02` violations that block `rfc.validate` for all implemented RFCs.
|
|
230
234
|
|
|
231
|
-
####
|
|
235
|
+
#### 4.9. Documentation audit (fo-doc-audit)
|
|
232
236
|
|
|
233
237
|
After implementation is complete and all checks pass, invoke `fo-doc-audit` via the `skill` tool. It analyzes the session's changes, checks all documentation surfaces (AGENTS.md, README, Compass XML, architecture-dna.md, templates, generated artifacts, COMMANDS.md/PACKAGE_GRAPH.md), applies needed updates, and commits them separately. Wait for it to complete.
|
|
234
238
|
|
|
235
239
|
If `fo-doc-audit` reports that no updates are needed, proceed to the next step.
|
|
236
240
|
|
|
237
|
-
####
|
|
241
|
+
#### 4.10. Code review (fo-review)
|
|
238
242
|
|
|
239
243
|
After the documentation audit, invoke `fo-review` via the `skill` tool. It performs a cross-session fitness check of the code diff against Forge standards (DNA, forward-only, Compass, agent clarity, pragmatism). The review covers all code changes made in this session since the first implementation commit.
|
|
240
244
|
|
|
241
245
|
1. Determine the diff range: `git diff <merge-base-of-session>...HEAD` — where merge-base is the commit before the first `implement:` commit for this RFC.
|
|
242
246
|
2. Invoke `fo-review` with the diff range. Wait for it to complete (persist + commit the review report in `docs/reviews/code/`).
|
|
243
|
-
3. Read the review report. If the verdict is `approved` **and** the report contains zero findings across all axes, proceed to step
|
|
244
|
-
4. If the review has **any** findings — even a single cosmetic observation on any axis — proceed to step
|
|
247
|
+
3. Read the review report. If the verdict is `approved` **and** the report contains zero findings across all axes, proceed to step 4.12.
|
|
248
|
+
4. If the review has **any** findings — even a single cosmetic observation on any axis — proceed to step 4.11 (fix). Do not interpret an `approved` verdict as "no findings" — read the axis sections and count every finding, including ones labelled "minor" or "cosmetic".
|
|
245
249
|
|
|
246
250
|
**This step is MANDATORY.** Do not skip it, even if the implementation seems clean. The review is the quality gate that catches DNA misalignment, forward-only violations, Compass drift, and agent clarity issues that implementation authors miss.
|
|
247
251
|
|
|
248
|
-
####
|
|
252
|
+
#### 4.11. Fix review findings (fo-fix)
|
|
249
253
|
|
|
250
|
-
If `fo-review` (step
|
|
254
|
+
If `fo-review` (step 4.10) reported **any** findings (even cosmetic ones on axes A/C/F/G), invoke `fo-fix` via the `skill` tool. It applies the review findings iteratively: fix → typecheck → commit → re-check.
|
|
251
255
|
|
|
252
256
|
1. Invoke `fo-fix` with the review report. Wait for it to complete.
|
|
253
257
|
2. After `fo-fix` returns, re-run `fo-review` to confirm all findings are resolved.
|
|
@@ -256,18 +260,18 @@ If `fo-review` (step 3.10) reported **any** findings (even cosmetic ones on axes
|
|
|
256
260
|
|
|
257
261
|
If `fo-review` reported truly zero findings (the report explicitly states "No issues." on every axis), skip this step. An `approved` verdict with any finding text on any axis does NOT qualify as zero findings.
|
|
258
262
|
|
|
259
|
-
####
|
|
263
|
+
#### 4.11b. Implementation status gate (RFC)
|
|
260
264
|
|
|
261
265
|
Before reporting completion, verify the RFC has been stamped as `implemented`:
|
|
262
266
|
|
|
263
267
|
1. Read the RFC frontmatter — confirm `status: implemented` and `implementedAt` is set.
|
|
264
268
|
2. Run `ref(forge.yaml bindings.commands.validateRfc) --id RFC-XXXX --json` — confirm zero errors.
|
|
265
|
-
3. If status is not `implemented`, go back to step
|
|
269
|
+
3. If status is not `implemented`, go back to step 4.8 (Stamp implemented) and run the stamp command.
|
|
266
270
|
4. If `rfc.validate` reports errors, fix them before proceeding.
|
|
267
271
|
|
|
268
|
-
This gate is MANDATORY. Do not proceed to step
|
|
272
|
+
This gate is MANDATORY. Do not proceed to step 4.12 (report) until the RFC is `implemented`.
|
|
269
273
|
|
|
270
|
-
####
|
|
274
|
+
#### 4.12. RFC report
|
|
271
275
|
|
|
272
276
|
After implementation is complete, report in `aiLanguage`. **Translate all labels and headings to `aiLanguage`** — the template below is structural only. Only identifiers (RFC-XXXX, file paths, skill names) stay untranslated.
|
|
273
277
|
|
|
@@ -284,11 +288,11 @@ After implementation is complete, report in `aiLanguage`. **Translate all labels
|
|
|
284
288
|
### Status: implemented (<date>)
|
|
285
289
|
```
|
|
286
290
|
|
|
287
|
-
###
|
|
291
|
+
### 5. ADR implementation flow
|
|
288
292
|
|
|
289
293
|
Execute this flow when the document is an ADR (prefix `ADR-`, or file in `docs/adrs/`).
|
|
290
294
|
|
|
291
|
-
####
|
|
295
|
+
#### 5.1. Read the ADR
|
|
292
296
|
|
|
293
297
|
Read the ADR file. Extract:
|
|
294
298
|
|
|
@@ -298,7 +302,7 @@ Read the ADR file. Extract:
|
|
|
298
302
|
- **Consequences** — what the decision implies for the codebase.
|
|
299
303
|
- **Related** — any RFCs, ADRs, or DNA invariants referenced.
|
|
300
304
|
|
|
301
|
-
####
|
|
305
|
+
#### 5.2. Transition to accepted (if needed)
|
|
302
306
|
|
|
303
307
|
If the ADR is `proposed` or `reviewing`, transition it to `accepted`:
|
|
304
308
|
|
|
@@ -317,7 +321,7 @@ If the ADR is `proposed` or `reviewing`, transition it to `accepted`:
|
|
|
317
321
|
|
|
318
322
|
If the ADR is already `accepted`, proceed directly.
|
|
319
323
|
|
|
320
|
-
####
|
|
324
|
+
#### 5.3. Implement the decision
|
|
321
325
|
|
|
322
326
|
Read the `## Decision` section and implement it in code. **For each decision point, verify whether the code already exists** — ADRs may declare fields or extensions that related RFCs did not fully implement. Do not assume associated RFCs covered everything; check each decision against the actual codebase and implement any gaps. Follow the same principles as RFC implementation:
|
|
323
327
|
|
|
@@ -335,7 +339,7 @@ Read the `## Decision` section and implement it in code. **For each decision poi
|
|
|
335
339
|
|
|
336
340
|
- If a tool call fails with a recoverable error, recover autonomously: split content, use `edit`/`multi_edit`, decompose files, and retry immediately.
|
|
337
341
|
|
|
338
|
-
####
|
|
342
|
+
#### 5.4. Run scoped build checks
|
|
339
343
|
|
|
340
344
|
After implementation is complete, run heavy checks for the impacted workspaces only:
|
|
341
345
|
|
|
@@ -359,7 +363,7 @@ After implementation is complete, run heavy checks for the impacted workspaces o
|
|
|
359
363
|
|
|
360
364
|
**MUST NOT run a full root `root build` or `turbo run build`.** Only check the workspaces this ADR touches. See root AGENTS.md §Build verification discipline.
|
|
361
365
|
|
|
362
|
-
####
|
|
366
|
+
#### 5.5. Fix errors
|
|
363
367
|
|
|
364
368
|
If any check fails, fix every error:
|
|
365
369
|
|
|
@@ -377,26 +381,26 @@ If any check fails, fix every error:
|
|
|
377
381
|
|
|
378
382
|
Continue until all impacted checks pass.
|
|
379
383
|
|
|
380
|
-
####
|
|
384
|
+
#### 5.6. Documentation audit (fo-doc-audit)
|
|
381
385
|
|
|
382
386
|
After implementation is complete and all checks pass, invoke `fo-doc-audit` via the `skill` tool. It analyzes the session's changes, checks all documentation surfaces, applies needed updates, and commits them separately. Wait for it to complete.
|
|
383
387
|
|
|
384
388
|
If `fo-doc-audit` reports that no updates are needed, proceed to the next step.
|
|
385
389
|
|
|
386
|
-
####
|
|
390
|
+
#### 5.7. Code review (fo-review)
|
|
387
391
|
|
|
388
392
|
After the documentation audit, invoke `fo-review` via the `skill` tool. It performs a cross-session fitness check of the code diff against Forge standards. The review covers all code changes made in this session.
|
|
389
393
|
|
|
390
394
|
1. Determine the diff range: `git diff <merge-base-of-session>...HEAD`.
|
|
391
395
|
2. Invoke `fo-review` with the diff range. Wait for it to complete (persist + commit the review report).
|
|
392
|
-
3. Read the review report. If the verdict is `approved` **and** the report contains zero findings across all axes, proceed to step
|
|
393
|
-
4. If the review has **any** findings — even a single cosmetic observation on any axis — proceed to step
|
|
396
|
+
3. Read the review report. If the verdict is `approved` **and** the report contains zero findings across all axes, proceed to step 5.9.
|
|
397
|
+
4. If the review has **any** findings — even a single cosmetic observation on any axis — proceed to step 5.8 (fix). Do not interpret an `approved` verdict as "no findings" — read the axis sections and count every finding.
|
|
394
398
|
|
|
395
399
|
**This step is MANDATORY.** Do not skip it.
|
|
396
400
|
|
|
397
|
-
####
|
|
401
|
+
#### 5.8. Fix review findings (fo-fix)
|
|
398
402
|
|
|
399
|
-
If `fo-review` (step
|
|
403
|
+
If `fo-review` (step 5.7) reported **any** findings (even cosmetic ones), invoke `fo-fix` via the `skill` tool.
|
|
400
404
|
|
|
401
405
|
1. Invoke `fo-fix` with the review report. Wait for it to complete.
|
|
402
406
|
2. After `fo-fix` returns, re-run `fo-review` to confirm all findings are resolved.
|
|
@@ -405,7 +409,7 @@ If `fo-review` (step 4.7) reported **any** findings (even cosmetic ones), invoke
|
|
|
405
409
|
|
|
406
410
|
If `fo-review` reported truly zero findings (the report explicitly states "No issues." on every axis), skip this step. An `approved` verdict with any finding text on any axis does NOT qualify as zero findings.
|
|
407
411
|
|
|
408
|
-
####
|
|
412
|
+
#### 5.9. ADR code-trace
|
|
409
413
|
|
|
410
414
|
Before stamping `implemented`, verify that the ADR is mentioned in the codebase — this leaves a trace linking code back to the decision record, just as RFCs leave traces.
|
|
411
415
|
|
|
@@ -413,7 +417,7 @@ Before stamping `implemented`, verify that the ADR is mentioned in the codebase
|
|
|
413
417
|
- **COMPASS block comments** — `MODULE_CONTRACT`, `CHANGE_SUMMARY`, or other Compass scaffolding comments that reference the ADR id.
|
|
414
418
|
- **Inline code mentions** — comments, docstrings, or annotations in source files that reference the ADR id.
|
|
415
419
|
|
|
416
|
-
2. **If mentions are found** — the trace exists. Proceed to step
|
|
420
|
+
2. **If mentions are found** — the trace exists. Proceed to step 5.10.
|
|
417
421
|
|
|
418
422
|
3. **If no mentions are found** — attempt to find the most relevant file(s) where the decision was implemented. If the file(s) can be identified:
|
|
419
423
|
- Add a Compass block comment referencing the ADR id to the file's `MODULE_CONTRACT` or `CHANGE_SUMMARY` section. For example: `<item>ADR-XXXX: <brief note on what this ADR decided for this module.</item>`
|
|
@@ -426,13 +430,13 @@ Before stamping `implemented`, verify that the ADR is mentioned in the codebase
|
|
|
426
430
|
Add ADR-XXXX reference to <file> to link the decision to the code.
|
|
427
431
|
```
|
|
428
432
|
|
|
429
|
-
- Proceed to step
|
|
433
|
+
- Proceed to step 5.10.
|
|
430
434
|
|
|
431
435
|
4. **If the relevant file(s) cannot be identified** — ask the operator: `ADR-XXXX was implemented but no code mention was found. Please point to the file(s) where this ADR's decision was applied so I can add a trace reference.` After the operator provides the file(s), add the trace as described in step 3, commit, and proceed.
|
|
432
436
|
|
|
433
437
|
**For already-implemented ADRs** (if this step is reached for an ADR that was already `implemented`): this check is informational — attempt to find the trace and add it if missing, but do not block on it.
|
|
434
438
|
|
|
435
|
-
####
|
|
439
|
+
#### 5.10. Stamp implemented
|
|
436
440
|
|
|
437
441
|
After all checks pass and documentation is updated, transition the ADR to `implemented` using `adr.implement.stamp` as required by the ADR lifecycle contract. Direct edits to ADR `status`, `implementedAt`, and `updatedAt` are prohibited — use the stamp command instead.
|
|
438
442
|
|
|
@@ -456,18 +460,18 @@ After all checks pass and documentation is updated, transition the ADR to `imple
|
|
|
456
460
|
|
|
457
461
|
Stage only the ADR file. The implementation commit and the stamp commit MUST be separate.
|
|
458
462
|
|
|
459
|
-
####
|
|
463
|
+
#### 5.10b. Implementation status gate (ADR)
|
|
460
464
|
|
|
461
465
|
Before reporting completion, verify the ADR has been transitioned to `implemented`:
|
|
462
466
|
|
|
463
467
|
1. Read the ADR frontmatter — confirm `status: implemented` and `implementedAt` is set.
|
|
464
468
|
2. Run `ref(forge.yaml bindings.commands.validateAdr) --id ADR-XXXX --json` — confirm zero errors.
|
|
465
|
-
3. If status is not `implemented`, go back to step
|
|
469
|
+
3. If status is not `implemented`, go back to step 5.10 (Stamp implemented) and run `adr.implement.stamp`.
|
|
466
470
|
4. If `adr.validate` reports errors, fix them before proceeding.
|
|
467
471
|
|
|
468
|
-
This gate is MANDATORY. Do not proceed to step
|
|
472
|
+
This gate is MANDATORY. Do not proceed to step 5.11 (report) until the ADR is `implemented`.
|
|
469
473
|
|
|
470
|
-
####
|
|
474
|
+
#### 5.11. Report
|
|
471
475
|
|
|
472
476
|
After implementation is complete, report in `aiLanguage`. **Translate all labels and headings to `aiLanguage`** — the template below is structural only.
|
|
473
477
|
|
|
@@ -482,7 +486,7 @@ After implementation is complete, report in `aiLanguage`. **Translate all labels
|
|
|
482
486
|
### Status: implemented (<date>)
|
|
483
487
|
```
|
|
484
488
|
|
|
485
|
-
###
|
|
489
|
+
### 6. Batch summary
|
|
486
490
|
|
|
487
491
|
If multiple documents were processed, present a single batch summary at the very end in `aiLanguage`. **Translate all labels, headings, and column names to `aiLanguage`** — the template below is structural only.
|
|
488
492
|
|
|
@@ -518,5 +522,5 @@ When an RFC was planned in this session, prefer implementing it in this session
|
|
|
518
522
|
- **Do not weaken DNA invariants.** If implementation reveals an invariant conflict, escalate via `rfc.supersede.propose` instead of working around it.
|
|
519
523
|
- **Compass scaffolding on new files.** Non-trivial new source files in `apps/` or `packages/` must carry `MODULE_CONTRACT` and `CHANGE_SUMMARY`. Check the project's invariants file for the canonical Compass markup rule.
|
|
520
524
|
- **Compass terminology, not GRACE.** Use Compass in all new code, docs, and log messages.
|
|
521
|
-
- **Review and fix are MANDATORY.** After implementation and doc-audit, always run `fo-review` (step
|
|
525
|
+
- **Review and fix are MANDATORY.** After implementation and doc-audit, always run `fo-review` (step 4.10 / 5.7) and `fo-fix` (step 4.11 / 5.8) if **any** findings exist in the review report — including cosmetic or minor findings. Do not stamp `implemented` without a review report in `docs/reviews/code/`. An `approved` verdict does NOT mean "skip fix" — read every axis section and count every finding. This is the quality gate that catches DNA misalignment, forward-only violations, and Compass drift.
|
|
522
526
|
- **No `draft → accepted` transition for RFCs.** This skill requires RFC `status: accepted` and does not transition RFCs. Use `/fo-idea-plan` for that transition.
|
|
@@ -178,10 +178,10 @@ For each identified RFC, read the frontmatter `status` field from `docs/rfcs/rfc
|
|
|
178
178
|
|
|
179
179
|
| Option | Description |
|
|
180
180
|
| --- | --- |
|
|
181
|
-
| Complete now | The agent proceeds to finish the remaining `fo-idea-implement` steps (
|
|
181
|
+
| Complete now | The agent proceeds to finish the remaining `fo-idea-implement` steps (4.6–4.8: check acceptance criteria with evidence, stamp implemented). This may require running validators, fixing errors, and committing the stamp. |
|
|
182
182
|
| Leave as-is | The operator explicitly acknowledges the RFC remains in its current non-terminal status with unchecked acceptance criteria. No further action is taken on the RFC. |
|
|
183
183
|
|
|
184
|
-
If the operator chooses "Complete now", execute `fo-idea-implement` steps
|
|
184
|
+
If the operator chooses "Complete now", execute `fo-idea-implement` steps 4.6–4.8 for that RFC before proceeding. If multiple RFCs are in this state, ask about each one (or present them as a batch with `allowMultiple: true`).
|
|
185
185
|
|
|
186
186
|
**4d. Report:**
|
|
187
187
|
|
package/dist/bin/cli.d.ts
DELETED
package/dist/bin/cli.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../bin/cli.ts"],"names":[],"mappings":""}
|
package/dist/bin/cli.js
DELETED
|
@@ -1,292 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
/*
|
|
3
|
-
<MODULE_CONTRACT>
|
|
4
|
-
<purpose>CLI bin entrypoint for @warpgogol/forge — minimal command runner that
|
|
5
|
-
registers forge modules and dispatches commands. Works autonomously without
|
|
6
|
-
@warpgogol/werkstatt.</purpose>
|
|
7
|
-
<non-goals>
|
|
8
|
-
<item>Do not implement command logic — delegate to forge os/ modules and src/ handlers.</item>
|
|
9
|
-
<item>Do not replicate the full kernel runtime — minimal dispatch only.</item>
|
|
10
|
-
</non-goals>
|
|
11
|
-
</MODULE_CONTRACT>
|
|
12
|
-
<CHANGE_SUMMARY>
|
|
13
|
-
<item>Initial CLI bin entrypoint for forge autonomy refactor.</item>
|
|
14
|
-
<item>RFC-0542: self-documenting output contract — renderNextSteps, renderIdeRecommendation, generateHelp, --help <command> flag.</item>
|
|
15
|
-
<item>RFC-0543: source VERSION from package.json at runtime instead of hardcoded constant.</item>
|
|
16
|
-
</CHANGE_SUMMARY>
|
|
17
|
-
*/
|
|
18
|
-
import { resolve, dirname, join } from "node:path";
|
|
19
|
-
import { fileURLToPath } from "node:url";
|
|
20
|
-
import { readFileSync } from "node:fs";
|
|
21
|
-
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
22
|
-
// ---------------------------------------------------------------------------
|
|
23
|
-
// Logger
|
|
24
|
-
// ---------------------------------------------------------------------------
|
|
25
|
-
const logger = {
|
|
26
|
-
section(msg, details) {
|
|
27
|
-
console.log(`\n■ ${msg}`);
|
|
28
|
-
if (details)
|
|
29
|
-
console.log(details);
|
|
30
|
-
},
|
|
31
|
-
info(msg, details) {
|
|
32
|
-
console.log(` ${msg}`);
|
|
33
|
-
if (details)
|
|
34
|
-
console.log(details);
|
|
35
|
-
},
|
|
36
|
-
warn(msg, details) {
|
|
37
|
-
console.warn(` ⚠ ${msg}`);
|
|
38
|
-
if (details)
|
|
39
|
-
console.warn(details);
|
|
40
|
-
},
|
|
41
|
-
error(msg, details) {
|
|
42
|
-
console.error(` ✖ ${msg}`);
|
|
43
|
-
if (details)
|
|
44
|
-
console.error(details);
|
|
45
|
-
},
|
|
46
|
-
success(msg, details) {
|
|
47
|
-
console.log(` ✓ ${msg}`);
|
|
48
|
-
if (details)
|
|
49
|
-
console.log(details);
|
|
50
|
-
},
|
|
51
|
-
};
|
|
52
|
-
import { renderNextSteps, renderIdeRecommendation, generateHelp } from "../src/cli-output.js";
|
|
53
|
-
class ForgeCliRegistry {
|
|
54
|
-
commands = new Map();
|
|
55
|
-
registerCommand(command) {
|
|
56
|
-
this.commands.set(command.name, command);
|
|
57
|
-
}
|
|
58
|
-
registerPipeline(_name, _steps) {
|
|
59
|
-
// CLI mode: pipelines not supported — no-op
|
|
60
|
-
}
|
|
61
|
-
listCommandNames() {
|
|
62
|
-
return [...this.commands.keys()].sort();
|
|
63
|
-
}
|
|
64
|
-
listCommands() {
|
|
65
|
-
return [...this.commands.values()].map((c) => ({
|
|
66
|
-
name: c.name,
|
|
67
|
-
description: c.description,
|
|
68
|
-
scope: c.scope,
|
|
69
|
-
provider: "workspace",
|
|
70
|
-
mutatesState: c.mutatesState,
|
|
71
|
-
requiresNetwork: c.requiresNetwork,
|
|
72
|
-
supportsAllSites: c.supportsAllSites,
|
|
73
|
-
timeoutMs: c.timeoutMs,
|
|
74
|
-
expectedDurationMs: c.expectedDurationMs,
|
|
75
|
-
longRunning: c.longRunning,
|
|
76
|
-
flags: c.flags,
|
|
77
|
-
reads: c.reads,
|
|
78
|
-
writes: c.writes,
|
|
79
|
-
}));
|
|
80
|
-
}
|
|
81
|
-
getCommand(name) {
|
|
82
|
-
return this.commands.get(name);
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
// ---------------------------------------------------------------------------
|
|
86
|
-
// Flag parsing
|
|
87
|
-
// ---------------------------------------------------------------------------
|
|
88
|
-
function parseArgs(argv) {
|
|
89
|
-
const flags = {};
|
|
90
|
-
for (let i = 0; i < argv.length; i++) {
|
|
91
|
-
const arg = argv[i];
|
|
92
|
-
if (arg.startsWith("--")) {
|
|
93
|
-
const eqIndex = arg.indexOf("=");
|
|
94
|
-
if (eqIndex > 0) {
|
|
95
|
-
const key = arg.slice(2, eqIndex);
|
|
96
|
-
const value = arg.slice(eqIndex + 1);
|
|
97
|
-
flags[key] = value;
|
|
98
|
-
}
|
|
99
|
-
else {
|
|
100
|
-
const key = arg.slice(2);
|
|
101
|
-
const next = argv[i + 1];
|
|
102
|
-
if (next && !next.startsWith("--")) {
|
|
103
|
-
flags[key] = next;
|
|
104
|
-
i++;
|
|
105
|
-
}
|
|
106
|
-
else {
|
|
107
|
-
flags[key] = true;
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
else {
|
|
112
|
-
// RFC-0609: positional arguments are no longer collected; ignore them
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
return { flags };
|
|
116
|
-
}
|
|
117
|
-
// ---------------------------------------------------------------------------
|
|
118
|
-
// Module registration
|
|
119
|
-
// ---------------------------------------------------------------------------
|
|
120
|
-
async function buildRegistry() {
|
|
121
|
-
const registry = new ForgeCliRegistry();
|
|
122
|
-
const modules = [
|
|
123
|
-
await import("../os/core/core.module.js").then((m) => m.forgeCoreModule),
|
|
124
|
-
await import("../os/rfc/rfc.module.js").then((m) => m.forgeRfcModule),
|
|
125
|
-
await import("../os/workflow/workflow.module.js").then((m) => m.forgeWorkflowModule),
|
|
126
|
-
await import("../os/naming/naming.module.js").then((m) => m.forgeNamingModule),
|
|
127
|
-
await import("../os/compass/compass.module.js").then((m) => m.forgeCompassModule),
|
|
128
|
-
await import("../os/werkstatt/werkstatt.module.js").then((m) => m.forgeWerkstattModule),
|
|
129
|
-
await import("../os/session/session.module.js").then((m) => m.forgeSessionModule),
|
|
130
|
-
await import("../os/exploration/exploration.module.js").then((m) => m.forgeExplorationModule),
|
|
131
|
-
await import("../os/notes/notes.module.js").then((m) => m.forgeNotesModule),
|
|
132
|
-
].filter((m) => m !== null);
|
|
133
|
-
for (const mod of modules) {
|
|
134
|
-
await mod.register(registry);
|
|
135
|
-
}
|
|
136
|
-
return registry;
|
|
137
|
-
}
|
|
138
|
-
// ---------------------------------------------------------------------------
|
|
139
|
-
// Output rendering (RFC-0542: self-documenting forge command output contract)
|
|
140
|
-
// ---------------------------------------------------------------------------
|
|
141
|
-
// ---------------------------------------------------------------------------
|
|
142
|
-
// Version — sourced from package.json at runtime (RFC-0543)
|
|
143
|
-
// ---------------------------------------------------------------------------
|
|
144
|
-
function readVersion() {
|
|
145
|
-
// Source: packages/forge/bin/cli.ts → packages/forge/package.json (one up)
|
|
146
|
-
// Compiled: dist/bin/cli.js → package.json (two up)
|
|
147
|
-
for (const up of ["..", "../.."]) {
|
|
148
|
-
const pkgPath = join(__dirname, up, "package.json");
|
|
149
|
-
try {
|
|
150
|
-
const pkg = JSON.parse(readFileSync(pkgPath, "utf8"));
|
|
151
|
-
if (pkg.version)
|
|
152
|
-
return pkg.version;
|
|
153
|
-
}
|
|
154
|
-
catch {
|
|
155
|
-
// try next candidate
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
return "0.0.0-unknown";
|
|
159
|
-
}
|
|
160
|
-
const VERSION = readVersion();
|
|
161
|
-
function resolveForgeRootFromCli() {
|
|
162
|
-
// Source: packages/forge/bin/cli.ts → packages/forge/ (one up)
|
|
163
|
-
// Compiled: dist/bin/cli.js → packages/forge/ (two up)
|
|
164
|
-
for (const up of ["..", "../.."]) {
|
|
165
|
-
const pkgPath = join(__dirname, up, "package.json");
|
|
166
|
-
try {
|
|
167
|
-
const pkg = JSON.parse(readFileSync(pkgPath, "utf8"));
|
|
168
|
-
if (pkg.name === "@warpgogol/forge")
|
|
169
|
-
return join(__dirname, up);
|
|
170
|
-
}
|
|
171
|
-
catch {
|
|
172
|
-
// try next candidate
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
return undefined;
|
|
176
|
-
}
|
|
177
|
-
function printCommandHelp(registry, commandName) {
|
|
178
|
-
const resolved = resolveCommandName(commandName, registry);
|
|
179
|
-
const cmd = resolved ? registry.getCommand(resolved) : undefined;
|
|
180
|
-
if (!resolved || !cmd) {
|
|
181
|
-
logger.error(`Unknown command: ${commandName}`);
|
|
182
|
-
logger.info(`Run 'forge --help' for available commands.`);
|
|
183
|
-
process.exit(1);
|
|
184
|
-
}
|
|
185
|
-
const displayName = resolved.replace(/^forge\./, "");
|
|
186
|
-
console.log(`forge ${displayName}`);
|
|
187
|
-
console.log(`\n ${cmd.description}`);
|
|
188
|
-
if (cmd.flags && Object.keys(cmd.flags).length > 0) {
|
|
189
|
-
console.log("\nFlags:");
|
|
190
|
-
for (const [flagName, flagSpec] of Object.entries(cmd.flags)) {
|
|
191
|
-
const required = flagSpec.required ? " (required)" : "";
|
|
192
|
-
console.log(` --${flagName}${required} ${flagSpec.description}`);
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
process.exit(0);
|
|
196
|
-
}
|
|
197
|
-
// ---------------------------------------------------------------------------
|
|
198
|
-
// Command-name resolution (RFC-0699)
|
|
199
|
-
// ---------------------------------------------------------------------------
|
|
200
|
-
function resolveCommandName(commandName, registry) {
|
|
201
|
-
if (registry.getCommand(commandName)) {
|
|
202
|
-
if (commandName.startsWith("forge.")) {
|
|
203
|
-
const unqualified = commandName.slice("forge.".length);
|
|
204
|
-
logger.warn("'" + commandName + "' is deprecated; use '" + unqualified + "'");
|
|
205
|
-
}
|
|
206
|
-
return commandName;
|
|
207
|
-
}
|
|
208
|
-
if (!commandName.includes(".")) {
|
|
209
|
-
const qualified = "forge." + commandName;
|
|
210
|
-
if (registry.getCommand(qualified)) {
|
|
211
|
-
return qualified;
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
return undefined;
|
|
215
|
-
}
|
|
216
|
-
// ---------------------------------------------------------------------------
|
|
217
|
-
// Main
|
|
218
|
-
// ---------------------------------------------------------------------------
|
|
219
|
-
async function main() {
|
|
220
|
-
const argv = process.argv.slice(2);
|
|
221
|
-
if (argv.length === 0 || (argv[0] === "--help" && argv.length === 1) || argv[0] === "-h") {
|
|
222
|
-
const registry = await buildRegistry();
|
|
223
|
-
console.log(generateHelp(registry));
|
|
224
|
-
process.exit(0);
|
|
225
|
-
}
|
|
226
|
-
if (argv[0] === "--help" && argv.length >= 2) {
|
|
227
|
-
const registry = await buildRegistry();
|
|
228
|
-
printCommandHelp(registry, argv[1]);
|
|
229
|
-
return;
|
|
230
|
-
}
|
|
231
|
-
if (argv[0] === "--version" || argv[0] === "-v") {
|
|
232
|
-
console.log(`forge ${VERSION}`);
|
|
233
|
-
process.exit(0);
|
|
234
|
-
}
|
|
235
|
-
const commandName = argv[0];
|
|
236
|
-
const rest = argv.slice(1);
|
|
237
|
-
const { flags } = parseArgs(rest);
|
|
238
|
-
const registry = await buildRegistry();
|
|
239
|
-
const resolved = resolveCommandName(commandName, registry);
|
|
240
|
-
const command = resolved ? registry.getCommand(resolved) : undefined;
|
|
241
|
-
if (!command) {
|
|
242
|
-
logger.error(`Unknown command: ${commandName}`);
|
|
243
|
-
logger.info(`Run 'forge --help' for available commands.`);
|
|
244
|
-
process.exit(1);
|
|
245
|
-
}
|
|
246
|
-
const workspaceRoot = resolve(process.cwd());
|
|
247
|
-
const outputFormat = flags["json"] === true ? "json" : "pretty";
|
|
248
|
-
const dryRun = flags["dry-run"] === true;
|
|
249
|
-
const input = { argv: rest, flags };
|
|
250
|
-
const resolvedForgeRoot = resolveForgeRootFromCli();
|
|
251
|
-
if (outputFormat === "pretty" && commandName === "forge.create") {
|
|
252
|
-
logger.info(`forge root: ${resolvedForgeRoot ?? "(not resolved)"}`);
|
|
253
|
-
}
|
|
254
|
-
const context = {
|
|
255
|
-
workspaceRoot,
|
|
256
|
-
forgeRoot: resolvedForgeRoot,
|
|
257
|
-
logger,
|
|
258
|
-
dryRun,
|
|
259
|
-
outputFormat,
|
|
260
|
-
commandRegistry: registry,
|
|
261
|
-
};
|
|
262
|
-
try {
|
|
263
|
-
const result = (await command.execute(input, context));
|
|
264
|
-
if (result && outputFormat === "json") {
|
|
265
|
-
const output = { ...(result.data ?? {}), nextSteps: result.nextSteps ?? [] };
|
|
266
|
-
console.log(JSON.stringify(output, null, 2));
|
|
267
|
-
}
|
|
268
|
-
else if (result && outputFormat === "pretty") {
|
|
269
|
-
if (result.summary) {
|
|
270
|
-
console.log(result.summary);
|
|
271
|
-
}
|
|
272
|
-
const nextStepsText = renderNextSteps(result.nextSteps);
|
|
273
|
-
if (nextStepsText) {
|
|
274
|
-
console.log(nextStepsText);
|
|
275
|
-
}
|
|
276
|
-
if (commandName === "forge.create") {
|
|
277
|
-
console.log(renderIdeRecommendation());
|
|
278
|
-
}
|
|
279
|
-
}
|
|
280
|
-
const exitCode = result?.exitCode ?? 0;
|
|
281
|
-
process.exit(exitCode);
|
|
282
|
-
}
|
|
283
|
-
catch (error) {
|
|
284
|
-
logger.error(error instanceof Error ? error.message : String(error), error instanceof Error && error.stack ? error.stack : undefined);
|
|
285
|
-
process.exit(1);
|
|
286
|
-
}
|
|
287
|
-
}
|
|
288
|
-
main().catch((error) => {
|
|
289
|
-
logger.error(error instanceof Error ? error.message : String(error), error instanceof Error && error.stack ? error.stack : undefined);
|
|
290
|
-
process.exit(1);
|
|
291
|
-
});
|
|
292
|
-
//# sourceMappingURL=cli.js.map
|
package/dist/bin/cli.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../bin/cli.ts"],"names":[],"mappings":"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"}
|