@warpgogol/forge 4.2.4 → 5.1.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 +14 -6
- package/CHANGELOG.md +72 -0
- package/README.md +8 -8
- package/README.uk.md +5 -5
- package/dist/os/adr/handlers/list-create.d.ts.map +1 -1
- package/dist/os/adr/handlers/list-create.js +4 -1
- package/dist/os/adr/handlers/list-create.js.map +1 -1
- package/dist/os/adr/handlers/validate.d.ts.map +1 -1
- package/dist/os/adr/handlers/validate.js +6 -1
- package/dist/os/adr/handlers/validate.js.map +1 -1
- package/dist/os/adr/types.d.ts.map +1 -1
- package/dist/os/adr/types.js +7 -3
- package/dist/os/adr/types.js.map +1 -1
- package/dist/os/compass/compass.module.d.ts.map +1 -1
- package/dist/os/compass/compass.module.js +76 -10
- package/dist/os/compass/compass.module.js.map +1 -1
- package/dist/os/compass/handlers/compass-audit-handler.d.ts.map +1 -1
- package/dist/os/compass/handlers/compass-audit-handler.js +7 -3
- package/dist/os/compass/handlers/compass-audit-handler.js.map +1 -1
- package/dist/os/compass/handlers/compass-change-summary-handler.d.ts +1 -9
- package/dist/os/compass/handlers/compass-change-summary-handler.d.ts.map +1 -1
- package/dist/os/compass/handlers/compass-change-summary-handler.js +44 -186
- package/dist/os/compass/handlers/compass-change-summary-handler.js.map +1 -1
- package/dist/os/compass/handlers/compass-inventory-handler.d.ts +2 -0
- package/dist/os/compass/handlers/compass-inventory-handler.d.ts.map +1 -1
- package/dist/os/compass/handlers/compass-inventory-handler.js +24 -12
- package/dist/os/compass/handlers/compass-inventory-handler.js.map +1 -1
- package/dist/os/compass/handlers/compass-inventory.d.ts +7 -5
- package/dist/os/compass/handlers/compass-inventory.d.ts.map +1 -1
- package/dist/os/compass/handlers/compass-inventory.js +84 -241
- package/dist/os/compass/handlers/compass-inventory.js.map +1 -1
- package/dist/os/compass/handlers/compass-migrate-handler.d.ts +4 -0
- package/dist/os/compass/handlers/compass-migrate-handler.d.ts.map +1 -0
- package/dist/os/compass/handlers/compass-migrate-handler.js +100 -0
- package/dist/os/compass/handlers/compass-migrate-handler.js.map +1 -0
- package/dist/os/compass/handlers/compass-migrate.d.ts +34 -0
- package/dist/os/compass/handlers/compass-migrate.d.ts.map +1 -0
- package/dist/os/compass/handlers/compass-migrate.js +273 -0
- package/dist/os/compass/handlers/compass-migrate.js.map +1 -0
- package/dist/os/compass/handlers/resolve-scan-root.d.ts.map +1 -1
- package/dist/os/compass/handlers/resolve-scan-root.js +15 -8
- package/dist/os/compass/handlers/resolve-scan-root.js.map +1 -1
- package/dist/os/compass/handlers/summary-record.d.ts +46 -0
- package/dist/os/compass/handlers/summary-record.d.ts.map +1 -0
- package/dist/os/compass/handlers/summary-record.js +233 -0
- package/dist/os/compass/handlers/summary-record.js.map +1 -0
- package/dist/os/compass/index.d.ts +4 -1
- package/dist/os/compass/index.d.ts.map +1 -1
- package/dist/os/compass/index.js +9 -1
- package/dist/os/compass/index.js.map +1 -1
- package/dist/os/compass/policy.d.ts +65 -0
- package/dist/os/compass/policy.d.ts.map +1 -0
- package/dist/os/compass/policy.js +241 -0
- package/dist/os/compass/policy.js.map +1 -0
- package/dist/os/core/core.module.d.ts.map +1 -1
- package/dist/os/core/core.module.js +11 -23
- package/dist/os/core/core.module.js.map +1 -1
- package/dist/os/core/handlers/forge-autonomy-validate.d.ts.map +1 -1
- package/dist/os/core/handlers/forge-autonomy-validate.js +7 -1
- package/dist/os/core/handlers/forge-autonomy-validate.js.map +1 -1
- package/dist/os/core/handlers/package-health.d.ts.map +1 -1
- package/dist/os/core/handlers/package-health.js +6 -1
- package/dist/os/core/handlers/package-health.js.map +1 -1
- package/dist/os/core/handlers/pinned-check.d.ts.map +1 -1
- package/dist/os/core/handlers/pinned-check.js +6 -1
- package/dist/os/core/handlers/pinned-check.js.map +1 -1
- package/dist/os/core/handlers/pinned-validate.d.ts.map +1 -1
- package/dist/os/core/handlers/pinned-validate.js +6 -1
- package/dist/os/core/handlers/pinned-validate.js.map +1 -1
- package/dist/os/core/handlers/validate.d.ts.map +1 -1
- package/dist/os/core/handlers/validate.js +6 -1
- package/dist/os/core/handlers/validate.js.map +1 -1
- package/dist/os/exploration/exploration.module.d.ts.map +1 -1
- package/dist/os/exploration/exploration.module.js +6 -4
- package/dist/os/exploration/exploration.module.js.map +1 -1
- package/dist/os/exploration/handlers/list.d.ts.map +1 -1
- package/dist/os/exploration/handlers/list.js +4 -1
- package/dist/os/exploration/handlers/list.js.map +1 -1
- package/dist/os/mission/handlers/archive.d.ts.map +1 -1
- package/dist/os/mission/handlers/archive.js +7 -3
- package/dist/os/mission/handlers/archive.js.map +1 -1
- package/dist/os/mission/index.d.ts.map +1 -1
- package/dist/os/mission/index.js +13 -0
- package/dist/os/mission/index.js.map +1 -1
- package/dist/os/notes/index.d.ts.map +1 -1
- package/dist/os/notes/index.js +7 -1
- package/dist/os/notes/index.js.map +1 -1
- package/dist/os/rfc/frontmatter-io.d.ts.map +1 -1
- package/dist/os/rfc/frontmatter-io.js +6 -1
- package/dist/os/rfc/frontmatter-io.js.map +1 -1
- package/dist/os/rfc/handlers/archive.d.ts.map +1 -1
- package/dist/os/rfc/handlers/archive.js +6 -1
- package/dist/os/rfc/handlers/archive.js.map +1 -1
- package/dist/os/rfc/handlers/implement-stamp.d.ts.map +1 -1
- package/dist/os/rfc/handlers/implement-stamp.js +7 -3
- package/dist/os/rfc/handlers/implement-stamp.js.map +1 -1
- package/dist/os/rfc/handlers/index-graph.d.ts.map +1 -1
- package/dist/os/rfc/handlers/index-graph.js +6 -1
- package/dist/os/rfc/handlers/index-graph.js.map +1 -1
- package/dist/os/rfc/handlers/lifecycle.d.ts.map +1 -1
- package/dist/os/rfc/handlers/lifecycle.js +6 -1
- package/dist/os/rfc/handlers/lifecycle.js.map +1 -1
- package/dist/os/rfc/handlers/list-create.d.ts.map +1 -1
- package/dist/os/rfc/handlers/list-create.js +6 -1
- package/dist/os/rfc/handlers/list-create.js.map +1 -1
- package/dist/os/rfc/handlers/pipeline-status.d.ts.map +1 -1
- package/dist/os/rfc/handlers/pipeline-status.js +6 -1
- package/dist/os/rfc/handlers/pipeline-status.js.map +1 -1
- package/dist/os/rfc/handlers/supersede-propose.d.ts.map +1 -1
- package/dist/os/rfc/handlers/supersede-propose.js +6 -1
- package/dist/os/rfc/handlers/supersede-propose.js.map +1 -1
- package/dist/os/rfc/handlers/validate-rules.d.ts.map +1 -1
- package/dist/os/rfc/handlers/validate-rules.js +7 -3
- package/dist/os/rfc/handlers/validate-rules.js.map +1 -1
- package/dist/os/rfc/handlers/validate.d.ts.map +1 -1
- package/dist/os/rfc/handlers/validate.js +6 -1
- package/dist/os/rfc/handlers/validate.js.map +1 -1
- package/dist/os/rfc/index.d.ts.map +1 -1
- package/dist/os/rfc/index.js +6 -1
- package/dist/os/rfc/index.js.map +1 -1
- package/dist/os/rfc/rfc.module.d.ts.map +1 -1
- package/dist/os/rfc/rfc.module.js +6 -1
- package/dist/os/rfc/rfc.module.js.map +1 -1
- package/dist/os/rfc/types.d.ts +7 -4
- package/dist/os/rfc/types.d.ts.map +1 -1
- package/dist/os/rfc/types.js +7 -4
- package/dist/os/rfc/types.js.map +1 -1
- package/dist/os/session/handlers/save.d.ts.map +1 -1
- package/dist/os/session/handlers/save.js +6 -1
- package/dist/os/session/handlers/save.js.map +1 -1
- package/dist/os/werkstatt/handlers/werkstatt-lock-recover.d.ts.map +1 -1
- package/dist/os/werkstatt/handlers/werkstatt-lock-recover.js +6 -1
- package/dist/os/werkstatt/handlers/werkstatt-lock-recover.js.map +1 -1
- package/dist/os/werkstatt/handlers/workspace-deps.js +3 -3
- package/dist/os/werkstatt/handlers/workspace-deps.js.map +1 -1
- package/dist/os/workflow/index.d.ts.map +1 -1
- package/dist/os/workflow/index.js +6 -1
- package/dist/os/workflow/index.js.map +1 -1
- package/dist/src/config/forge-config.d.ts +62 -4
- package/dist/src/config/forge-config.d.ts.map +1 -1
- package/dist/src/config/forge-config.js +35 -19
- package/dist/src/config/forge-config.js.map +1 -1
- package/dist/src/forge-module.d.ts.map +1 -1
- package/dist/src/forge-module.js +6 -1
- package/dist/src/forge-module.js.map +1 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +10 -2
- package/dist/src/index.js.map +1 -1
- package/dist/src/migration-adapters/git-utils.d.ts.map +1 -1
- package/dist/src/migration-adapters/git-utils.js +6 -2
- package/dist/src/migration-adapters/git-utils.js.map +1 -1
- package/dist/src/migration-adapters/ignored-files.d.ts.map +1 -1
- package/dist/src/migration-adapters/ignored-files.js +6 -1
- package/dist/src/migration-adapters/ignored-files.js.map +1 -1
- package/dist/src/migration-adapters/index.d.ts.map +1 -1
- package/dist/src/migration-adapters/index.js +4 -1
- package/dist/src/migration-adapters/index.js.map +1 -1
- package/dist/src/migration-adapters/types.d.ts.map +1 -1
- package/dist/src/migration-adapters/types.js +6 -2
- package/dist/src/migration-adapters/types.js.map +1 -1
- package/dist/src/onboarding/agents-generate.d.ts.map +1 -1
- package/dist/src/onboarding/agents-generate.js +18 -14
- package/dist/src/onboarding/agents-generate.js.map +1 -1
- package/dist/src/onboarding/create.d.ts.map +1 -1
- package/dist/src/onboarding/create.js +7 -6
- package/dist/src/onboarding/create.js.map +1 -1
- package/dist/src/onboarding/doctor.d.ts.map +1 -1
- package/dist/src/onboarding/doctor.js +7 -13
- package/dist/src/onboarding/doctor.js.map +1 -1
- package/dist/src/onboarding/init.d.ts.map +1 -1
- package/dist/src/onboarding/init.js +7 -12
- package/dist/src/onboarding/init.js.map +1 -1
- package/dist/src/onboarding/invariant-engine.d.ts.map +1 -1
- package/dist/src/onboarding/invariant-engine.js +7 -2
- package/dist/src/onboarding/invariant-engine.js.map +1 -1
- package/dist/src/onboarding/nested-agents-generate.d.ts.map +1 -1
- package/dist/src/onboarding/nested-agents-generate.js +7 -2
- package/dist/src/onboarding/nested-agents-generate.js.map +1 -1
- package/dist/src/onboarding/nested-agents-templates.d.ts.map +1 -1
- package/dist/src/onboarding/nested-agents-templates.js +11 -3
- package/dist/src/onboarding/nested-agents-templates.js.map +1 -1
- package/dist/src/onboarding/scaffold-project.d.ts.map +1 -1
- package/dist/src/onboarding/scaffold-project.js +6 -1
- package/dist/src/onboarding/scaffold-project.js.map +1 -1
- package/dist/src/onboarding/upgrade.d.ts.map +1 -1
- package/dist/src/onboarding/upgrade.js +7 -3
- package/dist/src/onboarding/upgrade.js.map +1 -1
- package/dist/src/profiles/profile-schema.d.ts +54 -4
- package/dist/src/profiles/profile-schema.d.ts.map +1 -1
- package/dist/src/profiles/profile-schema.js +34 -14
- package/dist/src/profiles/profile-schema.js.map +1 -1
- package/dist/src/profiles/stack-profile.d.ts +24 -0
- package/dist/src/profiles/stack-profile.d.ts.map +1 -1
- package/dist/src/profiles/stack-profile.js +7 -3
- package/dist/src/profiles/stack-profile.js.map +1 -1
- package/dist/src/registry.d.ts.map +1 -1
- package/dist/src/registry.js +7 -9
- package/dist/src/registry.js.map +1 -1
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/types.js +6 -1
- package/dist/src/types.js.map +1 -1
- package/dist/src/utils/fs-atomic.d.ts.map +1 -1
- package/dist/src/utils/fs-atomic.js +13 -1
- package/dist/src/utils/fs-atomic.js.map +1 -1
- package/dist/src/utils/fs-idempotent.d.ts.map +1 -1
- package/dist/src/utils/fs-idempotent.js +13 -0
- package/dist/src/utils/fs-idempotent.js.map +1 -1
- package/dist/src/utils/fs-trash-sync.d.ts.map +1 -1
- package/dist/src/utils/fs-trash-sync.js +13 -1
- package/dist/src/utils/fs-trash-sync.js.map +1 -1
- package/dist/src/utils/fs-trash.d.ts.map +1 -1
- package/dist/src/utils/fs-trash.js +13 -1
- package/dist/src/utils/fs-trash.js.map +1 -1
- package/dist/src/utils/fs.d.ts.map +1 -1
- package/dist/src/utils/fs.js +14 -3
- package/dist/src/utils/fs.js.map +1 -1
- package/dist/src/utils/hash.d.ts.map +1 -1
- package/dist/src/utils/hash.js +12 -1
- package/dist/src/utils/hash.js.map +1 -1
- package/dist/src/utils/index.d.ts.map +1 -1
- package/dist/src/utils/index.js +13 -2
- package/dist/src/utils/index.js.map +1 -1
- package/dist/src/utils/string-utils.d.ts.map +1 -1
- package/dist/src/utils/string-utils.js +12 -1
- package/dist/src/utils/string-utils.js.map +1 -1
- package/dist/src/validators/port-validate.js +1 -1
- package/dist/src/validators/port-validate.js.map +1 -1
- package/dist/src/validators/skill-validate.d.ts.map +1 -1
- package/dist/src/validators/skill-validate.js +7 -8
- package/dist/src/validators/skill-validate.js.map +1 -1
- package/docs/getting-started.md +1 -1
- package/docs/reference/forge-yaml.md +38 -9
- package/docs/reference/profiles.md +8 -8
- package/os/adr/handlers/list-create.ts +4 -1
- package/os/adr/handlers/validate.ts +6 -1
- package/os/adr/types.ts +7 -3
- package/os/compass/compass.module.ts +79 -13
- package/os/compass/handlers/compass-audit-handler.ts +22 -3
- package/os/compass/handlers/compass-change-summary-handler.ts +55 -227
- package/os/compass/handlers/compass-inventory-handler.ts +30 -12
- package/os/compass/handlers/compass-inventory.ts +103 -240
- package/os/compass/handlers/compass-migrate-handler.ts +122 -0
- package/os/compass/handlers/compass-migrate.ts +361 -0
- package/os/compass/handlers/resolve-scan-root-package.test.ts +70 -0
- package/os/compass/handlers/resolve-scan-root.ts +15 -8
- package/os/compass/handlers/summary-record.ts +313 -0
- package/os/compass/handlers/tests/compass-migrate.test.ts +291 -0
- package/os/compass/handlers/tests/compass-policy.test.ts +249 -0
- package/os/compass/handlers/tests/compass-v2-contract.test.ts +9 -9
- package/os/compass/handlers/tests/summary-record.test.ts +224 -0
- package/os/compass/index.ts +23 -5
- package/os/compass/policy.ts +350 -0
- package/os/core/core.module.ts +11 -23
- package/os/core/handlers/forge-autonomy-validate.ts +7 -1
- package/os/core/handlers/package-health.ts +6 -1
- package/os/core/handlers/pinned-check.ts +6 -1
- package/os/core/handlers/pinned-validate.ts +6 -1
- package/os/core/handlers/validate.ts +6 -1
- package/os/exploration/exploration.module.ts +72 -71
- package/os/exploration/handlers/list.ts +4 -1
- package/os/mission/handlers/archive.ts +7 -3
- package/os/mission/index.ts +14 -0
- package/os/notes/index.ts +7 -1
- package/os/rfc/frontmatter-io.ts +6 -1
- package/os/rfc/handlers/archive.ts +6 -1
- package/os/rfc/handlers/implement-stamp.ts +7 -3
- package/os/rfc/handlers/index-graph.ts +6 -1
- package/os/rfc/handlers/lifecycle.ts +6 -1
- package/os/rfc/handlers/list-create.ts +6 -1
- package/os/rfc/handlers/pipeline-status.ts +6 -1
- package/os/rfc/handlers/supersede-propose.ts +6 -1
- package/os/rfc/handlers/validate-rules.ts +7 -3
- package/os/rfc/handlers/validate.ts +6 -1
- package/os/rfc/index.ts +6 -1
- package/os/rfc/rfc.module.ts +6 -1
- package/os/rfc/types.ts +7 -4
- package/os/session/handlers/save.ts +6 -1
- package/os/werkstatt/handlers/werkstatt-lock-recover.ts +6 -1
- package/os/werkstatt/handlers/workspace-deps.ts +3 -3
- package/os/workflow/index.ts +6 -1
- package/package.json +1 -1
- package/profiles/{godot-csharp.yaml → godot-game.yaml} +2 -2
- package/profiles/{knowledge-typescript-turborepo.yaml → knowledge.yaml} +1 -1
- package/profiles/{phaser-turborepo.yaml → phaser-game.yaml} +2 -2
- package/profiles/{typescript-turborepo.yaml → typescript.yaml} +2 -2
- package/skills/fo/fo-add-tests/SKILL.md +14 -0
- package/skills/fo/fo-architecture/SKILL.md +14 -0
- package/skills/fo/fo-compass-annotate/SKILL.md +14 -0
- package/skills/fo/fo-design-summit/SKILL.md +14 -0
- package/skills/fo/fo-doc-audit/SKILL.md +14 -0
- package/skills/fo/fo-explore/SKILL.md +14 -0
- package/skills/fo/fo-extract-dna/SKILL.md +14 -0
- package/skills/fo/fo-fix/SKILL.md +14 -0
- package/skills/fo/fo-handoff/SKILL.md +14 -0
- package/skills/fo/fo-harvest/SKILL.md +14 -0
- package/skills/fo/fo-idea/SKILL.md +14 -0
- package/skills/fo/fo-idea-audit/SKILL.md +14 -0
- package/skills/fo/fo-idea-create-adr/SKILL.md +14 -0
- package/skills/fo/fo-idea-create-rfc/SKILL.md +14 -0
- package/skills/fo/fo-idea-enhance/SKILL.md +14 -0
- package/skills/fo/fo-idea-i-just-want-to-see-the-plan/SKILL.md +14 -0
- package/skills/fo/fo-idea-i-just-want-to-see-the-result/SKILL.md +14 -0
- package/skills/fo/fo-idea-implement/SKILL.md +14 -0
- package/skills/fo/fo-idea-plan/SKILL.md +14 -0
- package/skills/fo/fo-idea-status/SKILL.md +14 -0
- package/skills/fo/fo-knowledge-distill/SKILL.md +14 -0
- package/skills/fo/fo-memory-sync/SKILL.md +14 -0
- package/skills/fo/fo-qa/SKILL.md +14 -0
- package/skills/fo/fo-review/SKILL.md +14 -0
- package/skills/fo/fo-session-retro/SKILL.md +14 -0
- package/skills/fo/fo-session-save/SKILL.md +14 -0
- package/skills/fo/fo-spec-ingest/SKILL.md +14 -0
- package/skills/fo/fo-step-commit/SKILL.md +14 -0
- package/skills/fo/fo-triage/SKILL.md +14 -0
- package/skills/meta/forge-bootstrap/SKILL.md +14 -0
- package/skills/meta/port-to-forge/SKILL.md +14 -0
- package/skills/meta/skill-create/SKILL.md +14 -0
- package/skills/shared/grilling/SKILL.md +14 -0
- package/skills/shared/my-preferences/SKILL.md +14 -0
- package/skills/shared/windows-ai-tooling/SKILL.md +14 -0
- package/skills/shared/writing-great-skills/SKILL.md +14 -0
- package/src/config/forge-config.ts +40 -23
- package/src/forge-module.ts +6 -1
- package/src/index.ts +10 -2
- package/src/migration-adapters/git-utils.ts +6 -2
- package/src/migration-adapters/ignored-files.ts +6 -1
- package/src/migration-adapters/index.ts +4 -1
- package/src/migration-adapters/types.ts +6 -2
- package/src/onboarding/agents-generate.ts +23 -14
- package/src/onboarding/create.ts +7 -6
- package/src/onboarding/doctor.ts +7 -13
- package/src/onboarding/init.ts +7 -12
- package/src/onboarding/invariant-engine.ts +7 -2
- package/src/onboarding/nested-agents-generate.ts +7 -2
- package/src/onboarding/nested-agents-templates.ts +11 -3
- package/src/onboarding/scaffold-project.ts +6 -1
- package/src/onboarding/upgrade.ts +7 -3
- package/src/profiles/profile-schema.ts +42 -18
- package/src/profiles/stack-profile.ts +7 -3
- package/src/registry.ts +7 -9
- package/src/tests/agents-generate-domain.test.ts +3 -3
- package/src/tests/agents-generate.test.ts +2 -2
- package/src/tests/create.test.ts +4 -4
- package/src/tests/forge-autonomy-validate.test.ts +1 -1
- package/src/tests/package-files.test.ts +53 -1
- package/src/tests/profile-schema.test.ts +4 -4
- package/src/tests/scaffold-project.test.ts +3 -3
- package/src/tests/stack-profile.test.ts +12 -12
- package/src/types.ts +6 -1
- package/src/utils/fs-atomic.ts +13 -1
- package/src/utils/fs-idempotent.ts +13 -0
- package/src/utils/fs-trash-sync.ts +13 -1
- package/src/utils/fs-trash.ts +13 -1
- package/src/utils/fs.ts +14 -3
- package/src/utils/hash.ts +12 -1
- package/src/utils/index.ts +13 -2
- package/src/utils/string-utils.ts +12 -1
- package/src/validators/port-validate.ts +1 -1
- package/src/validators/skill-validate.ts +7 -8
- package/skills/shared/extension-e2e-mitm/SKILL.md +0 -53
- package/skills/shared/extension-e2e-mitm/fixture-proxy.ts +0 -113
- package/src/types/werkstatt-engine-shims.d.ts +0 -1416
- package/src/types/werkstatt-shared-shims.d.ts +0 -5686
|
@@ -15,6 +15,20 @@ knowledge:
|
|
|
15
15
|
- project-narrative-template.md
|
|
16
16
|
- milestone-gallery/
|
|
17
17
|
---
|
|
18
|
+
<!--
|
|
19
|
+
<MODULE_CONTRACT>
|
|
20
|
+
<purpose>forge-bootstrap skill — Configure a freshly created forge project — greenfield or transplant — with a barrier-free, creator-facing onboarding experience.</purpose>
|
|
21
|
+
<non-goals>
|
|
22
|
+
<item>Do not execute skill logic — this document instructs agents; it is not runnable code.</item>
|
|
23
|
+
</non-goals>
|
|
24
|
+
</MODULE_CONTRACT>
|
|
25
|
+
<CHANGE_SUMMARY>
|
|
26
|
+
<item>RFC-1097: sweep — SKILL.md headers + classification fixes
|
|
27
|
+
|
|
28
|
+
Sweep batch 1: add Compass v2 headers to 45 SKILL.md files (purpose derived from frontmatter description). Fix non-skill-markdown exclusion to check filename not workspace-relative path (packages/AGENTS.md escaped it). Add .coverage to ignoredDirs.</item>
|
|
29
|
+
</CHANGE_SUMMARY>
|
|
30
|
+
-->
|
|
31
|
+
|
|
18
32
|
|
|
19
33
|
# forge-bootstrap
|
|
20
34
|
|
|
@@ -10,6 +10,20 @@ bindings:
|
|
|
10
10
|
requires: []
|
|
11
11
|
optional: [paths.invariantsFile]
|
|
12
12
|
---
|
|
13
|
+
<!--
|
|
14
|
+
<MODULE_CONTRACT>
|
|
15
|
+
<purpose>port-to-forge skill — Port reusable patterns from project work into forge — identify pattern, grill operator about portability boundaries, create RFC/ADR if needed, scaffold, implement, validate, and update registry.</purpose>
|
|
16
|
+
<non-goals>
|
|
17
|
+
<item>Do not execute skill logic — this document instructs agents; it is not runnable code.</item>
|
|
18
|
+
</non-goals>
|
|
19
|
+
</MODULE_CONTRACT>
|
|
20
|
+
<CHANGE_SUMMARY>
|
|
21
|
+
<item>RFC-1097: sweep — SKILL.md headers + classification fixes
|
|
22
|
+
|
|
23
|
+
Sweep batch 1: add Compass v2 headers to 45 SKILL.md files (purpose derived from frontmatter description). Fix non-skill-markdown exclusion to check filename not workspace-relative path (packages/AGENTS.md escaped it). Add .coverage to ignoredDirs.</item>
|
|
24
|
+
</CHANGE_SUMMARY>
|
|
25
|
+
-->
|
|
26
|
+
|
|
13
27
|
|
|
14
28
|
# port-to-forge
|
|
15
29
|
|
|
@@ -7,6 +7,20 @@ concerns: document-only
|
|
|
7
7
|
dependsOn: ['grilling', 'writing-great-skills']
|
|
8
8
|
languagePolicy: ref(PREFERENCES.md)
|
|
9
9
|
---
|
|
10
|
+
<!--
|
|
11
|
+
<MODULE_CONTRACT>
|
|
12
|
+
<purpose>skill-create skill — Guides an agent through creating a new forge-compliant skill — determines category, invocation, concerns, dependencies, generates frontmatter, calls port.scaffold, and validates.</purpose>
|
|
13
|
+
<non-goals>
|
|
14
|
+
<item>Do not execute skill logic — this document instructs agents; it is not runnable code.</item>
|
|
15
|
+
</non-goals>
|
|
16
|
+
</MODULE_CONTRACT>
|
|
17
|
+
<CHANGE_SUMMARY>
|
|
18
|
+
<item>RFC-1097: sweep — SKILL.md headers + classification fixes
|
|
19
|
+
|
|
20
|
+
Sweep batch 1: add Compass v2 headers to 45 SKILL.md files (purpose derived from frontmatter description). Fix non-skill-markdown exclusion to check filename not workspace-relative path (packages/AGENTS.md escaped it). Add .coverage to ignoredDirs.</item>
|
|
21
|
+
</CHANGE_SUMMARY>
|
|
22
|
+
-->
|
|
23
|
+
|
|
10
24
|
|
|
11
25
|
# skill-create
|
|
12
26
|
|
|
@@ -10,6 +10,20 @@ knowledge:
|
|
|
10
10
|
- qa-log.md
|
|
11
11
|
- learned-principles.md
|
|
12
12
|
---
|
|
13
|
+
<!--
|
|
14
|
+
<MODULE_CONTRACT>
|
|
15
|
+
<purpose>grilling skill — Grill the user relentlessly about a plan or design. Use when the user wants to stress-test a plan before building, or uses any 'grill' trigger phrases.</purpose>
|
|
16
|
+
<non-goals>
|
|
17
|
+
<item>Do not execute skill logic — this document instructs agents; it is not runnable code.</item>
|
|
18
|
+
</non-goals>
|
|
19
|
+
</MODULE_CONTRACT>
|
|
20
|
+
<CHANGE_SUMMARY>
|
|
21
|
+
<item>RFC-1097: sweep — SKILL.md headers + classification fixes
|
|
22
|
+
|
|
23
|
+
Sweep batch 1: add Compass v2 headers to 45 SKILL.md files (purpose derived from frontmatter description). Fix non-skill-markdown exclusion to check filename not workspace-relative path (packages/AGENTS.md escaped it). Add .coverage to ignoredDirs.</item>
|
|
24
|
+
</CHANGE_SUMMARY>
|
|
25
|
+
-->
|
|
26
|
+
|
|
13
27
|
|
|
14
28
|
Before starting, read `PREFERENCES.md` at the repository root. If the file is missing or `aiLanguage` is unset, ask the operator once and create the file using the `my-preferences` skill semantics.
|
|
15
29
|
|
|
@@ -7,6 +7,20 @@ concerns: document-only
|
|
|
7
7
|
dependsOn: []
|
|
8
8
|
languagePolicy: ref(PREFERENCES.md)
|
|
9
9
|
---
|
|
10
|
+
<!--
|
|
11
|
+
<MODULE_CONTRACT>
|
|
12
|
+
<purpose>my-preferences skill — Read, create, or edit the operator's preferences file at the repository root. Run when the operator wants to change language settings for AI conversations, grilling, or project documentation.</purpose>
|
|
13
|
+
<non-goals>
|
|
14
|
+
<item>Do not execute skill logic — this document instructs agents; it is not runnable code.</item>
|
|
15
|
+
</non-goals>
|
|
16
|
+
</MODULE_CONTRACT>
|
|
17
|
+
<CHANGE_SUMMARY>
|
|
18
|
+
<item>RFC-1097: sweep — SKILL.md headers + classification fixes
|
|
19
|
+
|
|
20
|
+
Sweep batch 1: add Compass v2 headers to 45 SKILL.md files (purpose derived from frontmatter description). Fix non-skill-markdown exclusion to check filename not workspace-relative path (packages/AGENTS.md escaped it). Add .coverage to ignoredDirs.</item>
|
|
21
|
+
</CHANGE_SUMMARY>
|
|
22
|
+
-->
|
|
23
|
+
|
|
10
24
|
|
|
11
25
|
# my-preferences
|
|
12
26
|
|
|
@@ -7,6 +7,20 @@ concerns: code-mutation
|
|
|
7
7
|
dependsOn: []
|
|
8
8
|
languagePolicy: ref(PREFERENCES.md)
|
|
9
9
|
---
|
|
10
|
+
<!--
|
|
11
|
+
<MODULE_CONTRACT>
|
|
12
|
+
<purpose>windows-ai-tooling skill — Bootstrap a Windows project for AI agents. Installs verified tools, generates .gitattributes, and emits a command allow-list for agent prompts. Run when starting a new project or when agents fail.</purpose>
|
|
13
|
+
<non-goals>
|
|
14
|
+
<item>Do not execute skill logic — this document instructs agents; it is not runnable code.</item>
|
|
15
|
+
</non-goals>
|
|
16
|
+
</MODULE_CONTRACT>
|
|
17
|
+
<CHANGE_SUMMARY>
|
|
18
|
+
<item>RFC-1097: sweep — SKILL.md headers + classification fixes
|
|
19
|
+
|
|
20
|
+
Sweep batch 1: add Compass v2 headers to 45 SKILL.md files (purpose derived from frontmatter description). Fix non-skill-markdown exclusion to check filename not workspace-relative path (packages/AGENTS.md escaped it). Add .coverage to ignoredDirs.</item>
|
|
21
|
+
</CHANGE_SUMMARY>
|
|
22
|
+
-->
|
|
23
|
+
|
|
10
24
|
|
|
11
25
|
# Windows AI Tooling
|
|
12
26
|
|
|
@@ -7,6 +7,20 @@ concerns: read-only
|
|
|
7
7
|
dependsOn: []
|
|
8
8
|
languagePolicy: ref(PREFERENCES.md)
|
|
9
9
|
---
|
|
10
|
+
<!--
|
|
11
|
+
<MODULE_CONTRACT>
|
|
12
|
+
<purpose>writing-great-skills skill — Reference for writing and editing skills well — the vocabulary and principles that make a skill predictable.</purpose>
|
|
13
|
+
<non-goals>
|
|
14
|
+
<item>Do not execute skill logic — this document instructs agents; it is not runnable code.</item>
|
|
15
|
+
</non-goals>
|
|
16
|
+
</MODULE_CONTRACT>
|
|
17
|
+
<CHANGE_SUMMARY>
|
|
18
|
+
<item>RFC-1097: sweep — SKILL.md headers + classification fixes
|
|
19
|
+
|
|
20
|
+
Sweep batch 1: add Compass v2 headers to 45 SKILL.md files (purpose derived from frontmatter description). Fix non-skill-markdown exclusion to check filename not workspace-relative path (packages/AGENTS.md escaped it). Add .coverage to ignoredDirs.</item>
|
|
21
|
+
</CHANGE_SUMMARY>
|
|
22
|
+
-->
|
|
23
|
+
|
|
10
24
|
|
|
11
25
|
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.
|
|
12
26
|
|
|
@@ -6,21 +6,16 @@
|
|
|
6
6
|
</non-goals>
|
|
7
7
|
</MODULE_CONTRACT>
|
|
8
8
|
<CHANGE_SUMMARY>
|
|
9
|
-
<item>RFC-0391: initial forge-config module with zod schema, loadForgeConfig, resolveForgeRoot.</item>
|
|
10
|
-
<item>RFC-0393: added ForgeBindings schema, resolveBinding with placeholder substitution.</item>
|
|
11
|
-
<item>RFC-0538: added optional compass binding section (fileExtensions, testPatterns).</item>
|
|
12
|
-
<item>RFC-0537: added sessionsDir to paths and bindings.paths schemas.</item>
|
|
13
|
-
<item>RFC-0539: added ForgeSkillPack schema and skillPacks to forge config for project-declared skill packs.</item>
|
|
14
|
-
<item>RFC-0540: added implementStamp to bindings schema, FORGE_CLI_BINDING_DEFAULTS, PM_RUNNER_MAP, resolvePmRunner, applyCliBindingDefaults.</item>
|
|
15
|
-
<item>RFC-0540 fix: eliminated type casts — applyCliBindingDefaults returns ForgeBindings["commands"] directly, resolvePackageManager validates pm against enum.</item>
|
|
16
|
-
<item>RFC-0543: added optional forge.syncedVersion field to forgeConfigSchema and defaultForgeConfig for consumer upgrade tracking.</item>
|
|
17
|
-
<item>RFC-0546: added optional migrationAdapters field to forgeConfigSchema for migration-adapter registry discovery.</item>
|
|
18
|
-
<item>RFC-0639: added 5 semantic command keys (validate, produce, verify, preview, lint), terminology promoted from .optional() to .default({}), resolveTerminology function.</item>
|
|
19
|
-
<item>RFC-0640: added optional domain field to project section for domain-aware bootstrapping and health checks.</item>
|
|
20
|
-
<item>RFC-0643: added optional profile field to forgeConfigSchema and ForgeConfig; loadForgeConfig loads profiles/<id>.yaml when present.</item>
|
|
21
9
|
<item>RFC-0661: added optional knowledge.budgets binding for hot/warm layer character budget overrides.</item>
|
|
22
10
|
<item>RFC-0662: added optional knowledge.retentionDays and knowledge.staleDays bindings for compaction overrides.</item>
|
|
23
11
|
<item>RFC-0704: added optional independentVersionPackages field to forgeConfigSchema for packages with autonomous npm versions.</item>
|
|
12
|
+
<item>RFC-1097: step 6 — compass.migrate codemod run
|
|
13
|
+
|
|
14
|
+
Mechanical v1 to v2 header migration across the workspace: 942 files rewritten — CHANGE_SUMMARY windows collapsed into history, forbidden v1 blocks stripped, KEY_DECISIONS seeded from @ai-invariant comments (5 files) or TODO placeholders (103 files), blocks reordered to canonical order.</item>
|
|
15
|
+
<item>RFC-1097: sweep — packages/forge + services clean
|
|
16
|
+
|
|
17
|
+
Sweep batch 2: real KEY_DECISIONS on 10 files, expanded purposes (CONTRACT-02/PURPOSE-02), headers on mission/index + gen-upstreams, sanitizeItemText in summary.record (literal Compass tags corrupted history), excludedPaths for wrangler types, test-fixtures testPattern. forge+services now 0 diagnostics under --mode error.</item>
|
|
18
|
+
<history>RFC-0391, RFC-0393, RFC-0537, RFC-0538, RFC-0539, RFC-0540, RFC-0543, RFC-0546, RFC-0639, RFC-0640, RFC-0643</history>
|
|
24
19
|
</CHANGE_SUMMARY>
|
|
25
20
|
*/
|
|
26
21
|
|
|
@@ -28,7 +23,11 @@ import fs from "node:fs";
|
|
|
28
23
|
import path from "node:path";
|
|
29
24
|
import { z } from "zod";
|
|
30
25
|
import { parse as parseYaml } from "yaml";
|
|
31
|
-
import {
|
|
26
|
+
import {
|
|
27
|
+
TERMINOLOGY_DEFAULTS,
|
|
28
|
+
compassPolicyOverridesSchema,
|
|
29
|
+
type CompassPolicyOverrides,
|
|
30
|
+
} from "../profiles/profile-schema.ts";
|
|
32
31
|
import { listStackProfiles, type StackProfile } from "../profiles/stack-profile.ts";
|
|
33
32
|
|
|
34
33
|
// ---------------------------------------------------------------------------
|
|
@@ -61,12 +60,9 @@ export const forgeBindingsSchema = z.object({
|
|
|
61
60
|
sessionsDir: z.string().nullable().default(null),
|
|
62
61
|
}),
|
|
63
62
|
terminology: z.record(z.string(), z.string()).default({}),
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
testPatterns: z.array(z.string()).optional(),
|
|
68
|
-
})
|
|
69
|
-
.optional(),
|
|
63
|
+
// RFC-1096: consumer-level Compass policy overrides (same shape as the
|
|
64
|
+
// stack profile `compass:` section).
|
|
65
|
+
compass: compassPolicyOverridesSchema.optional(),
|
|
70
66
|
// RFC-0661: optional knowledge layer character budget overrides
|
|
71
67
|
// RFC-0662: optional retention/stale day overrides
|
|
72
68
|
knowledge: z
|
|
@@ -115,10 +111,7 @@ export interface ForgeBindings {
|
|
|
115
111
|
sessionsDir: string | null;
|
|
116
112
|
};
|
|
117
113
|
terminology: Record<string, string>;
|
|
118
|
-
compass?:
|
|
119
|
-
fileExtensions?: string[];
|
|
120
|
-
testPatterns?: string[];
|
|
121
|
-
};
|
|
114
|
+
compass?: CompassPolicyOverrides;
|
|
122
115
|
// RFC-0661: optional knowledge layer character budget overrides
|
|
123
116
|
// RFC-0662: optional retention/stale day overrides
|
|
124
117
|
knowledge?: {
|
|
@@ -440,6 +433,30 @@ export function resolveForgeRoot(workspaceRoot: string): string {
|
|
|
440
433
|
);
|
|
441
434
|
}
|
|
442
435
|
|
|
436
|
+
/**
|
|
437
|
+
* Resolve the forge package root from inside the package's own modules.
|
|
438
|
+
* Handles both source layout (`src/<dir>/` → package root is two levels up)
|
|
439
|
+
* and compiled layout (`dist/src/<dir>/` → package root is three levels up)
|
|
440
|
+
* by walking up from `startDir` until a `package.json` is found.
|
|
441
|
+
*
|
|
442
|
+
* Use this for resolving package-shipped assets (templates, profiles) —
|
|
443
|
+
* `src/` and `profiles/` are both listed in package.json `files`, so they
|
|
444
|
+
* exist at the package root in the published tarball even though `tsc`
|
|
445
|
+
* never copies them into `dist/`.
|
|
446
|
+
*/
|
|
447
|
+
export function resolveForgePackageRoot(startDir: string): string {
|
|
448
|
+
let dir = startDir;
|
|
449
|
+
for (let i = 0; i < 6; i += 1) {
|
|
450
|
+
if (fs.existsSync(path.join(dir, "package.json"))) {
|
|
451
|
+
return dir;
|
|
452
|
+
}
|
|
453
|
+
const parent = path.dirname(dir);
|
|
454
|
+
if (parent === dir) break;
|
|
455
|
+
dir = parent;
|
|
456
|
+
}
|
|
457
|
+
return startDir;
|
|
458
|
+
}
|
|
459
|
+
|
|
443
460
|
// ---------------------------------------------------------------------------
|
|
444
461
|
// Binding resolver — RFC-0393
|
|
445
462
|
// ---------------------------------------------------------------------------
|
package/src/forge-module.ts
CHANGED
|
@@ -8,8 +8,13 @@
|
|
|
8
8
|
</MODULE_CONTRACT>
|
|
9
9
|
<CHANGE_SUMMARY>
|
|
10
10
|
<item>RFC-0374: initial ForgeModule, ForgeModuleRegistry, ForgeCommandDefinition, ForgePipelineStep interfaces.</item>
|
|
11
|
-
<item>Forge autonomy refactor: ForgeCommandDefinition and ForgeCommandResult now reference canonical types from types.ts.</item>
|
|
12
11
|
<item>RFC-0940: add optional runtime field to ForgeModule for autonomy declaration.</item>
|
|
12
|
+
<item>RFC-1097: step 6 — compass.migrate codemod run
|
|
13
|
+
|
|
14
|
+
Mechanical v1 to v2 header migration across the workspace: 942 files rewritten — CHANGE_SUMMARY windows collapsed into history, forbidden v1 blocks stripped, KEY_DECISIONS seeded from @ai-invariant comments (5 files) or TODO placeholders (103 files), blocks reordered to canonical order.</item>
|
|
15
|
+
<item>RFC-1097: sweep — werkstatt-engine clean
|
|
16
|
+
|
|
17
|
+
Sweep batch 4: 73 Compass headers on headerless engine files (certification, component-runtime, isolation, evolution, testing), real KEY_DECISIONS on 75 files (kernel, cache, dht, swim, gitmesh, runtime), ~80 purpose expansions (CONTRACT-02/PURPOSE-02), non-goals on 13 CONTRACT-03 files, CS-07 history literal fix repo-wide (253 files). Policy: .template.ts/.template.astro excludedPaths. werkstatt-engine now 0 diagnostics.</item>
|
|
13
18
|
</CHANGE_SUMMARY>
|
|
14
19
|
*/
|
|
15
20
|
|
package/src/index.ts
CHANGED
|
@@ -1,13 +1,21 @@
|
|
|
1
1
|
/*
|
|
2
2
|
<MODULE_CONTRACT>
|
|
3
|
-
<purpose>Public entrypoint for @warpgogol/forge — exports ForgeModule types, canonical types, utilities, skill schema, registry, validators, onboarding, and OS modules.</purpose>
|
|
3
|
+
<purpose>Public index entrypoint for @warpgogol/forge — exports ForgeModule types, canonical types, utilities, skill schema, registry, validators, onboarding, and OS modules.</purpose>
|
|
4
4
|
<non-goals>
|
|
5
5
|
<item>Do not export internal implementation details — only public API.</item>
|
|
6
6
|
</non-goals>
|
|
7
7
|
</MODULE_CONTRACT>
|
|
8
8
|
<CHANGE_SUMMARY>
|
|
9
9
|
<item>RFC-0374: initial public exports for forge package.</item>
|
|
10
|
-
<item>
|
|
10
|
+
<item>RFC-1097: step 6 — compass.migrate codemod run
|
|
11
|
+
|
|
12
|
+
Mechanical v1 to v2 header migration across the workspace: 942 files rewritten — CHANGE_SUMMARY windows collapsed into history, forbidden v1 blocks stripped, KEY_DECISIONS seeded from @ai-invariant comments (5 files) or TODO placeholders (103 files), blocks reordered to canonical order.</item>
|
|
13
|
+
<item>RFC-1097: sweep — packages/forge + services clean
|
|
14
|
+
|
|
15
|
+
Sweep batch 2: real KEY_DECISIONS on 10 files, expanded purposes (CONTRACT-02/PURPOSE-02), headers on mission/index + gen-upstreams, sanitizeItemText in summary.record (literal Compass tags corrupted history), excludedPaths for wrangler types, test-fixtures testPattern. forge+services now 0 diagnostics under --mode error.</item>
|
|
16
|
+
<item>RFC-1097: sweep — werkstatt-engine clean
|
|
17
|
+
|
|
18
|
+
Sweep batch 4: 73 Compass headers on headerless engine files (certification, component-runtime, isolation, evolution, testing), real KEY_DECISIONS on 75 files (kernel, cache, dht, swim, gitmesh, runtime), ~80 purpose expansions (CONTRACT-02/PURPOSE-02), non-goals on 13 CONTRACT-03 files, CS-07 history literal fix repo-wide (253 files). Policy: .template.ts/.template.astro excludedPaths. werkstatt-engine now 0 diagnostics.</item>
|
|
11
19
|
</CHANGE_SUMMARY>
|
|
12
20
|
*/
|
|
13
21
|
|
|
@@ -8,8 +8,12 @@
|
|
|
8
8
|
</MODULE_CONTRACT>
|
|
9
9
|
<CHANGE_SUMMARY>
|
|
10
10
|
<item>RFC-0547: extract shared postSetup git logic from duplicated adapter implementations.</item>
|
|
11
|
-
<item>
|
|
12
|
-
|
|
11
|
+
<item>RFC-1097: step 6 — compass.migrate codemod run
|
|
12
|
+
|
|
13
|
+
Mechanical v1 to v2 header migration across the workspace: 942 files rewritten — CHANGE_SUMMARY windows collapsed into history, forbidden v1 blocks stripped, KEY_DECISIONS seeded from @ai-invariant comments (5 files) or TODO placeholders (103 files), blocks reordered to canonical order.</item>
|
|
14
|
+
<item>RFC-1097: sweep — werkstatt-engine clean
|
|
15
|
+
|
|
16
|
+
Sweep batch 4: 73 Compass headers on headerless engine files (certification, component-runtime, isolation, evolution, testing), real KEY_DECISIONS on 75 files (kernel, cache, dht, swim, gitmesh, runtime), ~80 purpose expansions (CONTRACT-02/PURPOSE-02), non-goals on 13 CONTRACT-03 files, CS-07 history literal fix repo-wide (253 files). Policy: .template.ts/.template.astro excludedPaths. werkstatt-engine now 0 diagnostics.</item>
|
|
13
17
|
</CHANGE_SUMMARY>
|
|
14
18
|
*/
|
|
15
19
|
|
|
@@ -7,7 +7,12 @@
|
|
|
7
7
|
</non-goals>
|
|
8
8
|
</MODULE_CONTRACT>
|
|
9
9
|
<CHANGE_SUMMARY>
|
|
10
|
-
<item>
|
|
10
|
+
<item>RFC-1097: step 6 — compass.migrate codemod run
|
|
11
|
+
|
|
12
|
+
Mechanical v1 to v2 header migration across the workspace: 942 files rewritten — CHANGE_SUMMARY windows collapsed into history, forbidden v1 blocks stripped, KEY_DECISIONS seeded from @ai-invariant comments (5 files) or TODO placeholders (103 files), blocks reordered to canonical order.</item>
|
|
13
|
+
<item>RFC-1097: sweep — werkstatt-engine clean
|
|
14
|
+
|
|
15
|
+
Sweep batch 4: 73 Compass headers on headerless engine files (certification, component-runtime, isolation, evolution, testing), real KEY_DECISIONS on 75 files (kernel, cache, dht, swim, gitmesh, runtime), ~80 purpose expansions (CONTRACT-02/PURPOSE-02), non-goals on 13 CONTRACT-03 files, CS-07 history literal fix repo-wide (253 files). Policy: .template.ts/.template.astro excludedPaths. werkstatt-engine now 0 diagnostics.</item>
|
|
11
16
|
</CHANGE_SUMMARY>
|
|
12
17
|
*/
|
|
13
18
|
|
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
/*
|
|
2
2
|
<MODULE_CONTRACT>
|
|
3
|
-
<purpose>Barrel export for migration-
|
|
3
|
+
<purpose>Barrel export for the migration-adapters module — public types and registry functions only (RFC-0546).</purpose>
|
|
4
4
|
<non-goals>
|
|
5
5
|
<item>Do not re-export implementation details — only public types and registry functions.</item>
|
|
6
6
|
</non-goals>
|
|
7
7
|
</MODULE_CONTRACT>
|
|
8
8
|
<CHANGE_SUMMARY>
|
|
9
9
|
<item>RFC-0546: initial barrel export for migration-adapters.</item>
|
|
10
|
+
<item>RFC-1097: sweep — packages/forge + services clean
|
|
11
|
+
|
|
12
|
+
Sweep batch 2: real KEY_DECISIONS on 10 files, expanded purposes (CONTRACT-02/PURPOSE-02), headers on mission/index + gen-upstreams, sanitizeItemText in summary.record (literal Compass tags corrupted history), excludedPaths for wrangler types, test-fixtures testPattern. forge+services now 0 diagnostics under --mode error.</item>
|
|
10
13
|
</CHANGE_SUMMARY>
|
|
11
14
|
*/
|
|
12
15
|
|
|
@@ -9,8 +9,12 @@
|
|
|
9
9
|
<CHANGE_SUMMARY>
|
|
10
10
|
<item>RFC-0546: initial migration-adapter type contracts (MigrationAdapter, AdapterAnalysis, MigrationResult, Conflict).</item>
|
|
11
11
|
<item>RFC-0547: remove .git from DEFAULT_EXCLUDE_PATTERNS — git history handled by postSetup via format-patch + git am.</item>
|
|
12
|
-
<item>
|
|
13
|
-
|
|
12
|
+
<item>RFC-1097: step 6 — compass.migrate codemod run
|
|
13
|
+
|
|
14
|
+
Mechanical v1 to v2 header migration across the workspace: 942 files rewritten — CHANGE_SUMMARY windows collapsed into history, forbidden v1 blocks stripped, KEY_DECISIONS seeded from @ai-invariant comments (5 files) or TODO placeholders (103 files), blocks reordered to canonical order.</item>
|
|
15
|
+
<item>RFC-1097: sweep — werkstatt-engine clean
|
|
16
|
+
|
|
17
|
+
Sweep batch 4: 73 Compass headers on headerless engine files (certification, component-runtime, isolation, evolution, testing), real KEY_DECISIONS on 75 files (kernel, cache, dht, swim, gitmesh, runtime), ~80 purpose expansions (CONTRACT-02/PURPOSE-02), non-goals on 13 CONTRACT-03 files, CS-07 history literal fix repo-wide (253 files). Policy: .template.ts/.template.astro excludedPaths. werkstatt-engine now 0 diagnostics.</item>
|
|
14
18
|
</CHANGE_SUMMARY>
|
|
15
19
|
*/
|
|
16
20
|
|
|
@@ -7,23 +7,23 @@
|
|
|
7
7
|
</non-goals>
|
|
8
8
|
</MODULE_CONTRACT>
|
|
9
9
|
<CHANGE_SUMMARY>
|
|
10
|
-
<item>RFC-0391: initial forge.agents.generate handler.</item>
|
|
11
|
-
<item>RFC-0393: added Capabilities section rendered from resolved bindings.</item>
|
|
12
|
-
<item>RFC-0548: added Core behavioral layer section with intent-to-skill routing table from triggers, fixed policy text, and conditional extended layer (RFC-0549) based on register.</item>
|
|
13
|
-
<item>RFC-0549: replaced extended layer stub with full nine-section content from extended-behavioral-layer.ts.</item>
|
|
14
|
-
<item>RFC-0551: added register-conditional commit policy to core behavioral layer.</item>
|
|
15
|
-
<item>RFC-0611: added nested AGENTS.md generation for workspace directories + dryRun support.</item>
|
|
16
10
|
<item>RFC-0640: load workspaceTypes from stack profile and pass to generateNestedAgentsMd for profile-driven workspace detection.</item>
|
|
17
11
|
<item>RFC-0643: terminology substitution on final content, root template selection by register, details field in result.</item>
|
|
18
12
|
<item>RFC-0664: added project memory layer read discipline section to generated AGENTS.md.</item>
|
|
19
|
-
<item>
|
|
13
|
+
<item>RFC-1097: step 6 — compass.migrate codemod run
|
|
14
|
+
|
|
15
|
+
Mechanical v1 to v2 header migration across the workspace: 942 files rewritten — CHANGE_SUMMARY windows collapsed into history, forbidden v1 blocks stripped, KEY_DECISIONS seeded from @ai-invariant comments (5 files) or TODO placeholders (103 files), blocks reordered to canonical order.</item>
|
|
16
|
+
<item>RFC-1097: sweep — packages/forge + services clean
|
|
17
|
+
|
|
18
|
+
Sweep batch 2: real KEY_DECISIONS on 10 files, expanded purposes (CONTRACT-02/PURPOSE-02), headers on mission/index + gen-upstreams, sanitizeItemText in summary.record (literal Compass tags corrupted history), excludedPaths for wrangler types, test-fixtures testPattern. forge+services now 0 diagnostics under --mode error.</item>
|
|
19
|
+
<history>RFC-0391, RFC-0393, RFC-0548, RFC-0549, RFC-0551, RFC-0611</history>
|
|
20
20
|
</CHANGE_SUMMARY>
|
|
21
21
|
*/
|
|
22
22
|
|
|
23
23
|
import fs from "node:fs";
|
|
24
24
|
import path from "node:path";
|
|
25
25
|
import { parse as parseYaml } from "yaml";
|
|
26
|
-
import { loadForgeConfig, resolveBinding, resolveForgeRoot } from "../config/forge-config.ts";
|
|
26
|
+
import { loadForgeConfig, resolveBinding, resolveForgePackageRoot, resolveForgeRoot } from "../config/forge-config.ts";
|
|
27
27
|
import { resolveAllTerminology } from "../profiles/terminology-utils.ts";
|
|
28
28
|
import { FORGE_SKILLS } from "../registry.ts";
|
|
29
29
|
import { buildGeneratedHeader, hasGeneratedMarker, writeFileIfChanged } from "../utils/index.ts";
|
|
@@ -58,13 +58,22 @@ export interface TemplateContext {
|
|
|
58
58
|
workspaceType?: string;
|
|
59
59
|
}
|
|
60
60
|
|
|
61
|
-
// RFC-0643: Root template paths
|
|
62
|
-
|
|
63
|
-
|
|
61
|
+
// RFC-0643: Root template paths.
|
|
62
|
+
// Templates ship in the tarball under src/onboarding/templates/ but tsc never
|
|
63
|
+
// copies .md files into dist/ — resolve via the package root so both the source
|
|
64
|
+
// layout (src/onboarding/) and compiled layout (dist/src/onboarding/) work.
|
|
65
|
+
const TEMPLATES_DIR = path.join(
|
|
66
|
+
resolveForgePackageRoot(import.meta.dirname),
|
|
67
|
+
"src",
|
|
68
|
+
"onboarding",
|
|
69
|
+
"templates",
|
|
70
|
+
);
|
|
71
|
+
const BUSINESS_ROOT_TEMPLATE = path.join(TEMPLATES_DIR, "root-agents-business.md");
|
|
72
|
+
const CREATIVE_ROOT_TEMPLATE = path.join(TEMPLATES_DIR, "root-agents-creative.md");
|
|
64
73
|
|
|
65
74
|
// Behavioral layer template paths
|
|
66
|
-
const BEHAVIORAL_LAYER_CORE_TEMPLATE = path.join(
|
|
67
|
-
const BEHAVIORAL_LAYER_EXTENDED_TEMPLATE = path.join(
|
|
75
|
+
const BEHAVIORAL_LAYER_CORE_TEMPLATE = path.join(TEMPLATES_DIR, "behavioral-layer-core.md");
|
|
76
|
+
const BEHAVIORAL_LAYER_EXTENDED_TEMPLATE = path.join(TEMPLATES_DIR, "behavioral-layer-extended.md");
|
|
68
77
|
|
|
69
78
|
export function selectRootTemplate(
|
|
70
79
|
register: BehavioralRegister,
|
|
@@ -75,7 +84,7 @@ export function selectRootTemplate(
|
|
|
75
84
|
const templateRel = profile.rootAgentsMdTemplate;
|
|
76
85
|
// Path traversal guard: reject absolute paths and ..
|
|
77
86
|
if (!path.isAbsolute(templateRel) && !templateRel.includes("..")) {
|
|
78
|
-
const forgeRoot =
|
|
87
|
+
const forgeRoot = resolveForgePackageRoot(import.meta.dirname);
|
|
79
88
|
const profilesDir = path.join(forgeRoot, "profiles");
|
|
80
89
|
const templatePath = path.resolve(profilesDir, templateRel);
|
|
81
90
|
// Ensure resolved path is within profiles directory
|
package/src/onboarding/create.ts
CHANGED
|
@@ -9,15 +9,16 @@
|
|
|
9
9
|
</non-goals>
|
|
10
10
|
</MODULE_CONTRACT>
|
|
11
11
|
<CHANGE_SUMMARY>
|
|
12
|
-
<item>RFC-0544: initial forge.create handler composing scaffold + init.</item>
|
|
13
|
-
<item>RFC-0544 fix: replace double cast on runInit return with proper InitResult typing.</item>
|
|
14
|
-
<item>RFC-0548: auto-run forge.agents.generate after init, update nextSteps to remove manual AGENTS.md step.</item>
|
|
15
|
-
<item>RFC-0550: write NEXT_STEPS.md into project root with creator-facing guidance (greenfield vs transplant via LLM).</item>
|
|
16
|
-
<item>RFC-0640: load profile domain fields and pass them to runInit for domain-aware bootstrapping.</item>
|
|
17
12
|
<item>RFC-0643: pass profileId to runInit so forge.yaml gets a `profile` field.</item>
|
|
18
13
|
<item>RFC-0664: scaffold memory layer (.agents/memory/) after init.</item>
|
|
19
14
|
<item>RFC-0877: in-place mode only — --in-place flag required, no subdirectory creation, name derived from folder, strict empty-directory check (only .git/ tolerated).</item>
|
|
20
|
-
<item>
|
|
15
|
+
<item>RFC-1097: step 6 — compass.migrate codemod run
|
|
16
|
+
|
|
17
|
+
Mechanical v1 to v2 header migration across the workspace: 942 files rewritten — CHANGE_SUMMARY windows collapsed into history, forbidden v1 blocks stripped, KEY_DECISIONS seeded from @ai-invariant comments (5 files) or TODO placeholders (103 files), blocks reordered to canonical order.</item>
|
|
18
|
+
<item>RFC-1097: sweep — packages/forge + services clean
|
|
19
|
+
|
|
20
|
+
Sweep batch 2: real KEY_DECISIONS on 10 files, expanded purposes (CONTRACT-02/PURPOSE-02), headers on mission/index + gen-upstreams, sanitizeItemText in summary.record (literal Compass tags corrupted history), excludedPaths for wrangler types, test-fixtures testPattern. forge+services now 0 diagnostics under --mode error.</item>
|
|
21
|
+
<history>RFC-0544, RFC-0548, RFC-0550, RFC-0640</history>
|
|
21
22
|
</CHANGE_SUMMARY>
|
|
22
23
|
*/
|
|
23
24
|
|
package/src/onboarding/doctor.ts
CHANGED
|
@@ -8,22 +8,16 @@ Checks for forge.yaml, AGENTS.md, PREFERENCES.md, .agents/skills/, docs/rfcs/,
|
|
|
8
8
|
</non-goals>
|
|
9
9
|
</MODULE_CONTRACT>
|
|
10
10
|
<CHANGE_SUMMARY>
|
|
11
|
-
<item>Initial forge.doctor handler for autonomy refactor.</item>
|
|
12
|
-
<item>RFC-0391: added @warpgogol/* forbidden-imports autonomy guard.</item>
|
|
13
|
-
<item>RFC-0393: added bindings validation — resolved/absent/invalid reporting.</item>
|
|
14
|
-
<item>RFC-0524: added stale knowledge file detection — compares source and .agents/ copies.</item>
|
|
15
|
-
<item>RFC-0539: extended knowledge file check to iterate pack skills via discoverPackSkills. Added pack-skills check for stale/missing copies and skillPacks config validation.</item>
|
|
16
|
-
<item>RFC-0540: added defaultable-binding-null notices for forge-CLI-backed bindings.</item>
|
|
17
|
-
<item>RFC-0611: added nested AGENTS.md checks — missing, stale (dryRun comparison), hand-written improvement.</item>
|
|
18
|
-
<item>RFC-0640: added domain reporting, invariant listing (reported-only), terminology resolution, --strict flag, and software-specific check skipping for non-software domains.</item>
|
|
19
|
-
<item>RFC-0675: upgraded domain-invariants check from advisory to enforcement using invariant engine.</item>
|
|
20
|
-
<item>RFC-0660: added legacy-section count reporting for structured knowledge files.</item>
|
|
21
|
-
<item>RFC-0661: added knowledge-budgets check — validates override shape, computes per-skill budget reports, reports summary with headroom %.</item>
|
|
22
|
-
<item>RFC-0663: added knowledge-duplicates check (cross-skill L2 duplicate detection) and shared-knowledge-file check (schema/id uniqueness for the shared layer).</item>
|
|
23
11
|
<item>RFC-0664: added memory-layer health check (budget usage, gitignore coverage, daily-file leak risk).</item>
|
|
24
12
|
<item>RFC-0704: added independent-version-packages check — validates that paths in independentVersionPackages exist and contain package.json.</item>
|
|
25
13
|
<item>RFC-0941: added pack-manifests advisory check — validates forge.plugin.yaml existence and schema for each declared skill pack.</item>
|
|
26
|
-
<item>
|
|
14
|
+
<item>RFC-1097: step 6 — compass.migrate codemod run
|
|
15
|
+
|
|
16
|
+
Mechanical v1 to v2 header migration across the workspace: 942 files rewritten — CHANGE_SUMMARY windows collapsed into history, forbidden v1 blocks stripped, KEY_DECISIONS seeded from @ai-invariant comments (5 files) or TODO placeholders (103 files), blocks reordered to canonical order.</item>
|
|
17
|
+
<item>RFC-1097: sweep — packages/forge + services clean
|
|
18
|
+
|
|
19
|
+
Sweep batch 2: real KEY_DECISIONS on 10 files, expanded purposes (CONTRACT-02/PURPOSE-02), headers on mission/index + gen-upstreams, sanitizeItemText in summary.record (literal Compass tags corrupted history), excludedPaths for wrangler types, test-fixtures testPattern. forge+services now 0 diagnostics under --mode error.</item>
|
|
20
|
+
<history>RFC-0391, RFC-0393, RFC-0524, RFC-0539, RFC-0540, RFC-0611, RFC-0640, RFC-0660, RFC-0661, RFC-0663, RFC-0675</history>
|
|
27
21
|
</CHANGE_SUMMARY>
|
|
28
22
|
*/
|
|
29
23
|
|
package/src/onboarding/init.ts
CHANGED
|
@@ -7,21 +7,16 @@
|
|
|
7
7
|
</non-goals>
|
|
8
8
|
</MODULE_CONTRACT>
|
|
9
9
|
<CHANGE_SUMMARY>
|
|
10
|
-
<item>RFC-0374: initial forge.init handler.</item>
|
|
11
|
-
<item>RFC-0391: reworked to be config-driven — creates forge.yaml, uses resolveForgeRoot, creates docs/plans/ and docs/audits/ directories.</item>
|
|
12
|
-
<item>RFC-0392: added --from flag for stack detection from existing project or spec folder.</item>
|
|
13
|
-
<item>RFC-0393: defaultForgeConfig now includes default bindings section (all commands null, default paths).</item>
|
|
14
|
-
<item>RFC-0524: extended skill sync to copy declared knowledge files alongside SKILL.md.</item>
|
|
15
|
-
<item>RFC-0539: extended skill sync to also copy declared pack skills from skillPacks config.</item>
|
|
16
|
-
<item>RFC-0543: write forge.syncedVersion on first init (set to installed forge version).</item>
|
|
17
|
-
<item>RFC-0544: accept optional context.forgeRoot to support composition from forge.create.</item>
|
|
18
|
-
<item>RFC-0544 fix: export InitResult interface for type-safe consumption by forge.create.</item>
|
|
19
|
-
<item>RFC-0552: add skippedSkills to InitResult, detect Forge-vs-pack skill name conflicts.</item>
|
|
20
|
-
<item>RFC-0640: accept optional domain fields from profile (register, domain, terminology, semanticBindings) and write them into PREFERENCES.md and forge.yaml.</item>
|
|
21
|
-
<item>RFC-0643: accept optional profileId and write it to forge.yaml as the `profile` field.</item>
|
|
22
10
|
<item>RFC-0663: added syncSharedKnowledge step to sync shared knowledge layer to .agents/skills/shared-knowledge/.</item>
|
|
23
11
|
<item>RFC-0941: create forge.plugin.yaml manifests for skill packs that lack them before calling discoverPackSkills.</item>
|
|
24
12
|
<item>RFC-1019: extend PREFERENCES.md with formOfAddress, session-end protocol, skill invocation tracking, plan confirmation vs implementation, commit granularity rules.</item>
|
|
13
|
+
<item>RFC-1097: step 6 — compass.migrate codemod run
|
|
14
|
+
|
|
15
|
+
Mechanical v1 to v2 header migration across the workspace: 942 files rewritten — CHANGE_SUMMARY windows collapsed into history, forbidden v1 blocks stripped, KEY_DECISIONS seeded from @ai-invariant comments (5 files) or TODO placeholders (103 files), blocks reordered to canonical order.</item>
|
|
16
|
+
<item>RFC-1097: sweep — packages/forge + services clean
|
|
17
|
+
|
|
18
|
+
Sweep batch 2: real KEY_DECISIONS on 10 files, expanded purposes (CONTRACT-02/PURPOSE-02), headers on mission/index + gen-upstreams, sanitizeItemText in summary.record (literal Compass tags corrupted history), excludedPaths for wrangler types, test-fixtures testPattern. forge+services now 0 diagnostics under --mode error.</item>
|
|
19
|
+
<history>RFC-0374, RFC-0391, RFC-0392, RFC-0393, RFC-0524, RFC-0539, RFC-0543, RFC-0544, RFC-0552, RFC-0640, RFC-0643</history>
|
|
25
20
|
</CHANGE_SUMMARY>
|
|
26
21
|
*/
|
|
27
22
|
|
|
@@ -7,11 +7,16 @@
|
|
|
7
7
|
</non-goals>
|
|
8
8
|
</MODULE_CONTRACT>
|
|
9
9
|
<CHANGE_SUMMARY>
|
|
10
|
-
<item>RFC-0675: initial invariant enforcement engine with three check kinds.</item>
|
|
11
10
|
<item>RFC-0691: add html-attribute-pattern check kind for HTML attribute value validation.</item>
|
|
12
11
|
<item>RFC-0694: replace html-attribute-pattern with attribute-pattern (elements array) for HTML+JSX support.</item>
|
|
13
12
|
<item>RFC-0808: add link-resolution, frontmatter-required, path-exclusion check kinds for note vault validation.</item>
|
|
14
|
-
<item>
|
|
13
|
+
<item>RFC-1097: step 6 — compass.migrate codemod run
|
|
14
|
+
|
|
15
|
+
Mechanical v1 to v2 header migration across the workspace: 942 files rewritten — CHANGE_SUMMARY windows collapsed into history, forbidden v1 blocks stripped, KEY_DECISIONS seeded from @ai-invariant comments (5 files) or TODO placeholders (103 files), blocks reordered to canonical order.</item>
|
|
16
|
+
<item>RFC-1097: sweep — werkstatt-engine clean
|
|
17
|
+
|
|
18
|
+
Sweep batch 4: 73 Compass headers on headerless engine files (certification, component-runtime, isolation, evolution, testing), real KEY_DECISIONS on 75 files (kernel, cache, dht, swim, gitmesh, runtime), ~80 purpose expansions (CONTRACT-02/PURPOSE-02), non-goals on 13 CONTRACT-03 files, CS-07 history literal fix repo-wide (253 files). Policy: .template.ts/.template.astro excludedPaths. werkstatt-engine now 0 diagnostics.</item>
|
|
19
|
+
<history>RFC-0675</history>
|
|
15
20
|
</CHANGE_SUMMARY>
|
|
16
21
|
*/
|
|
17
22
|
|
|
@@ -10,11 +10,16 @@ runAgentsGenerate, runUpgrade, and runDoctor (staleness check via dryRun).</purp
|
|
|
10
10
|
</non-goals>
|
|
11
11
|
</MODULE_CONTRACT>
|
|
12
12
|
<CHANGE_SUMMARY>
|
|
13
|
-
<item>RFC-0611: initial shared nested generation function with dryRun support.</item>
|
|
14
|
-
<item>Enriched template: read package.json metadata and pass to buildNestedAgentsMd for content-rich output.</item>
|
|
15
13
|
<item>RFC-0640: accept optional workspaceTypes from profile and pass to discoverWorkspaces for profile-driven detection.</item>
|
|
16
14
|
<item>RFC-0643: return workspaceTypeMap for per-file workspace type metadata in details field.</item>
|
|
17
15
|
<item>RFC-0643: use selectNestedTemplate for profile-driven nested templates with terminology substitution.</item>
|
|
16
|
+
<item>RFC-1097: step 6 — compass.migrate codemod run
|
|
17
|
+
|
|
18
|
+
Mechanical v1 to v2 header migration across the workspace: 942 files rewritten — CHANGE_SUMMARY windows collapsed into history, forbidden v1 blocks stripped, KEY_DECISIONS seeded from @ai-invariant comments (5 files) or TODO placeholders (103 files), blocks reordered to canonical order.</item>
|
|
19
|
+
<item>RFC-1097: sweep — werkstatt-engine clean
|
|
20
|
+
|
|
21
|
+
Sweep batch 4: 73 Compass headers on headerless engine files (certification, component-runtime, isolation, evolution, testing), real KEY_DECISIONS on 75 files (kernel, cache, dht, swim, gitmesh, runtime), ~80 purpose expansions (CONTRACT-02/PURPOSE-02), non-goals on 13 CONTRACT-03 files, CS-07 history literal fix repo-wide (253 files). Policy: .template.ts/.template.astro excludedPaths. werkstatt-engine now 0 diagnostics.</item>
|
|
22
|
+
<history>RFC-0611</history>
|
|
18
23
|
</CHANGE_SUMMARY>
|
|
19
24
|
*/
|
|
20
25
|
|
|
@@ -9,12 +9,18 @@ content-rich AGENTS.md for a workspace from its package.json metadata. No I/O.</
|
|
|
9
9
|
</MODULE_CONTRACT>
|
|
10
10
|
<CHANGE_SUMMARY>
|
|
11
11
|
<item>RFC-0611: initial minimal stub template for app, package, service workspaces.</item>
|
|
12
|
-
<item>Enriched template: render package name, description, entry points, scripts, and dependencies from package.json metadata instead of a minimal stub.</item>
|
|
13
12
|
<item>RFC-0643: selectNestedTemplate() for profile-driven template selection with path traversal guard.</item>
|
|
13
|
+
<item>RFC-1097: step 6 — compass.migrate codemod run
|
|
14
|
+
|
|
15
|
+
Mechanical v1 to v2 header migration across the workspace: 942 files rewritten — CHANGE_SUMMARY windows collapsed into history, forbidden v1 blocks stripped, KEY_DECISIONS seeded from @ai-invariant comments (5 files) or TODO placeholders (103 files), blocks reordered to canonical order.</item>
|
|
16
|
+
<item>RFC-1097: sweep — werkstatt-engine clean
|
|
17
|
+
|
|
18
|
+
Sweep batch 4: 73 Compass headers on headerless engine files (certification, component-runtime, isolation, evolution, testing), real KEY_DECISIONS on 75 files (kernel, cache, dht, swim, gitmesh, runtime), ~80 purpose expansions (CONTRACT-02/PURPOSE-02), non-goals on 13 CONTRACT-03 files, CS-07 history literal fix repo-wide (253 files). Policy: .template.ts/.template.astro excludedPaths. werkstatt-engine now 0 diagnostics.</item>
|
|
14
19
|
</CHANGE_SUMMARY>
|
|
15
20
|
*/
|
|
16
21
|
|
|
17
22
|
import { buildGeneratedHeader } from "../utils/index.ts";
|
|
23
|
+
import { resolveForgePackageRoot } from "../config/forge-config.ts";
|
|
18
24
|
import type { ForgeConfig } from "../config/forge-config.ts";
|
|
19
25
|
import type { WorkspaceDir, WorkspaceType } from "./workspace-discovery.ts";
|
|
20
26
|
import type { ProfileWorkspaceType } from "../profiles/profile-schema.ts";
|
|
@@ -146,8 +152,10 @@ export function selectNestedTemplate(
|
|
|
146
152
|
return fallback;
|
|
147
153
|
}
|
|
148
154
|
|
|
149
|
-
// Resolve relative to profiles/ directory (where profile YAMLs live)
|
|
150
|
-
|
|
155
|
+
// Resolve relative to profiles/ directory (where profile YAMLs live).
|
|
156
|
+
// import.meta.dirname points at dist/src/onboarding/ in the compiled package —
|
|
157
|
+
// resolve the package root so profiles/ is found in both src and dist layouts.
|
|
158
|
+
const forgeRoot = resolveForgePackageRoot(import.meta.dirname);
|
|
151
159
|
const profilesDir = path.join(forgeRoot, "profiles");
|
|
152
160
|
const templatePath = path.resolve(profilesDir, templateRel);
|
|
153
161
|
|
|
@@ -9,7 +9,12 @@
|
|
|
9
9
|
<CHANGE_SUMMARY>
|
|
10
10
|
<item>RFC-0392: initial forge.scaffold handler.</item>
|
|
11
11
|
<item>RFC-0542: populate nextSteps in forge.scaffold result.</item>
|
|
12
|
-
<item>
|
|
12
|
+
<item>RFC-1097: step 6 — compass.migrate codemod run
|
|
13
|
+
|
|
14
|
+
Mechanical v1 to v2 header migration across the workspace: 942 files rewritten — CHANGE_SUMMARY windows collapsed into history, forbidden v1 blocks stripped, KEY_DECISIONS seeded from @ai-invariant comments (5 files) or TODO placeholders (103 files), blocks reordered to canonical order.</item>
|
|
15
|
+
<item>RFC-1097: sweep — werkstatt-engine clean
|
|
16
|
+
|
|
17
|
+
Sweep batch 4: 73 Compass headers on headerless engine files (certification, component-runtime, isolation, evolution, testing), real KEY_DECISIONS on 75 files (kernel, cache, dht, swim, gitmesh, runtime), ~80 purpose expansions (CONTRACT-02/PURPOSE-02), non-goals on 13 CONTRACT-03 files, CS-07 history literal fix repo-wide (253 files). Policy: .template.ts/.template.astro excludedPaths. werkstatt-engine now 0 diagnostics.</item>
|
|
13
18
|
</CHANGE_SUMMARY>
|
|
14
19
|
*/
|
|
15
20
|
|