@warpgogol/forge 5.2.4 → 5.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/README.uk.md +8 -8
- package/bin/cli.ts +25 -33
- package/dist/bin/cli.js +21 -32
- package/dist/bin/cli.js.map +1 -1
- package/dist/os/adr/adr.module.d.ts.map +1 -1
- package/dist/os/adr/adr.module.js +8 -3
- package/dist/os/adr/adr.module.js.map +1 -1
- package/dist/os/adr/frontmatter-io.js +5 -5
- package/dist/os/adr/frontmatter-io.js.map +1 -1
- package/dist/os/adr/handlers/archive.d.ts.map +1 -1
- package/dist/os/adr/handlers/archive.js +10 -4
- package/dist/os/adr/handlers/archive.js.map +1 -1
- package/dist/os/adr/handlers/implement-stamp.d.ts.map +1 -1
- package/dist/os/adr/handlers/implement-stamp.js +10 -10
- package/dist/os/adr/handlers/implement-stamp.js.map +1 -1
- package/dist/os/adr/handlers/list-create.js +5 -5
- package/dist/os/adr/handlers/list-create.js.map +1 -1
- package/dist/os/adr/handlers/validate.js +1 -1
- package/dist/os/adr/handlers/validate.js.map +1 -1
- package/dist/os/audit/audit.module.js +3 -3
- package/dist/os/audit/audit.module.js.map +1 -1
- package/dist/os/audit/frontmatter-io.js +5 -5
- package/dist/os/audit/frontmatter-io.js.map +1 -1
- package/dist/os/audit/handlers/archive.d.ts.map +1 -1
- package/dist/os/audit/handlers/archive.js +10 -4
- package/dist/os/audit/handlers/archive.js.map +1 -1
- package/dist/os/compass/compass.module.d.ts.map +1 -1
- package/dist/os/compass/compass.module.js +17 -1
- 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 +12 -5
- package/dist/os/compass/handlers/compass-audit-handler.js.map +1 -1
- package/dist/os/compass/handlers/compass-change-summary-handler.d.ts.map +1 -1
- package/dist/os/compass/handlers/compass-change-summary-handler.js +3 -2
- package/dist/os/compass/handlers/compass-change-summary-handler.js.map +1 -1
- package/dist/os/compass/handlers/compass-inventory-handler.d.ts.map +1 -1
- package/dist/os/compass/handlers/compass-inventory-handler.js +6 -4
- package/dist/os/compass/handlers/compass-inventory-handler.js.map +1 -1
- package/dist/os/compass/handlers/compass-inventory.d.ts.map +1 -1
- package/dist/os/compass/handlers/compass-inventory.js +10 -8
- package/dist/os/compass/handlers/compass-inventory.js.map +1 -1
- package/dist/os/compass/handlers/compass-migrate-handler.js +1 -1
- package/dist/os/compass/handlers/compass-migrate-handler.js.map +1 -1
- package/dist/os/compass/handlers/compass-migrate.d.ts.map +1 -1
- package/dist/os/compass/handlers/compass-migrate.js +6 -3
- package/dist/os/compass/handlers/compass-migrate.js.map +1 -1
- package/dist/os/compass/handlers/git-revision.d.ts.map +1 -1
- package/dist/os/compass/handlers/git-revision.js +9 -6
- package/dist/os/compass/handlers/git-revision.js.map +1 -1
- package/dist/os/compass/handlers/resolve-scan-root.js +1 -1
- package/dist/os/compass/handlers/resolve-scan-root.js.map +1 -1
- package/dist/os/compass/handlers/summary-record.d.ts.map +1 -1
- package/dist/os/compass/handlers/summary-record.js +8 -4
- package/dist/os/compass/handlers/summary-record.js.map +1 -1
- package/dist/os/core/core.module.d.ts.map +1 -1
- package/dist/os/core/core.module.js +43 -4
- package/dist/os/core/core.module.js.map +1 -1
- package/dist/os/core/handlers/assets-helpers.d.ts.map +1 -1
- package/dist/os/core/handlers/assets-helpers.js +6 -3
- package/dist/os/core/handlers/assets-helpers.js.map +1 -1
- package/dist/os/core/handlers/build.js +1 -1
- package/dist/os/core/handlers/build.js.map +1 -1
- package/dist/os/core/handlers/determinism-check.d.ts.map +1 -1
- package/dist/os/core/handlers/determinism-check.js +10 -6
- package/dist/os/core/handlers/determinism-check.js.map +1 -1
- package/dist/os/core/handlers/dev.js +1 -1
- package/dist/os/core/handlers/dev.js.map +1 -1
- package/dist/os/core/handlers/file-size-lint.d.ts.map +1 -1
- package/dist/os/core/handlers/file-size-lint.js +11 -7
- package/dist/os/core/handlers/file-size-lint.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 +9 -5
- package/dist/os/core/handlers/forge-autonomy-validate.js.map +1 -1
- package/dist/os/core/handlers/knowledge-compact.js +1 -1
- package/dist/os/core/handlers/knowledge-compact.js.map +1 -1
- package/dist/os/core/handlers/package-health.js +1 -1
- package/dist/os/core/handlers/package-health.js.map +1 -1
- package/dist/os/core/handlers/pinned-check.js +2 -2
- package/dist/os/core/handlers/pinned-check.js.map +1 -1
- package/dist/os/core/handlers/pinned-init.d.ts.map +1 -1
- package/dist/os/core/handlers/pinned-init.js +9 -8
- package/dist/os/core/handlers/pinned-init.js.map +1 -1
- package/dist/os/core/handlers/pinned-validate.js +3 -3
- package/dist/os/core/handlers/pinned-validate.js.map +1 -1
- package/dist/os/core/handlers/profile-resolve.js +1 -1
- package/dist/os/core/handlers/profile-resolve.js.map +1 -1
- package/dist/os/core/handlers/public-surface.js +1 -1
- package/dist/os/core/handlers/public-surface.js.map +1 -1
- package/dist/os/core/handlers/release-prepare.d.ts.map +1 -1
- package/dist/os/core/handlers/release-prepare.js +10 -6
- package/dist/os/core/handlers/release-prepare.js.map +1 -1
- package/dist/os/core/handlers/release-publish.js +6 -6
- package/dist/os/core/handlers/release-publish.js.map +1 -1
- package/dist/os/core/handlers/validate.js +1 -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 +1 -0
- package/dist/os/exploration/exploration.module.js.map +1 -1
- package/dist/os/exploration/frontmatter-io.js +4 -4
- package/dist/os/exploration/frontmatter-io.js.map +1 -1
- package/dist/os/exploration/handlers/archive.js +3 -3
- package/dist/os/exploration/handlers/archive.js.map +1 -1
- package/dist/os/mission/handlers/archive.d.ts.map +1 -1
- package/dist/os/mission/handlers/archive.js +44 -23
- package/dist/os/mission/handlers/archive.js.map +1 -1
- package/dist/os/mission/mission.module.js +3 -3
- package/dist/os/mission/mission.module.js.map +1 -1
- package/dist/os/naming/naming-convention.d.ts.map +1 -1
- package/dist/os/naming/naming-convention.js +7 -3
- package/dist/os/naming/naming-convention.js.map +1 -1
- package/dist/os/naming/naming.module.d.ts.map +1 -1
- package/dist/os/naming/naming.module.js +4 -3
- package/dist/os/naming/naming.module.js.map +1 -1
- package/dist/os/notes/notes.module.d.ts.map +1 -1
- package/dist/os/notes/notes.module.js +6 -3
- package/dist/os/notes/notes.module.js.map +1 -1
- package/dist/os/plan/frontmatter-io.js +5 -5
- package/dist/os/plan/frontmatter-io.js.map +1 -1
- package/dist/os/plan/handlers/archive.d.ts.map +1 -1
- package/dist/os/plan/handlers/archive.js +10 -4
- package/dist/os/plan/handlers/archive.js.map +1 -1
- package/dist/os/plan/plan.module.js +3 -3
- package/dist/os/plan/plan.module.js.map +1 -1
- package/dist/os/plugin/plugin.module.d.ts.map +1 -1
- package/dist/os/plugin/plugin.module.js +6 -3
- package/dist/os/plugin/plugin.module.js.map +1 -1
- package/dist/os/program/discovery.js +2 -2
- package/dist/os/program/discovery.js.map +1 -1
- package/dist/os/program/handlers/complete.js +1 -1
- package/dist/os/program/handlers/complete.js.map +1 -1
- package/dist/os/program/handlers/lease.js +1 -1
- package/dist/os/program/handlers/lease.js.map +1 -1
- package/dist/os/program/handlers/seal.js +1 -1
- package/dist/os/program/handlers/seal.js.map +1 -1
- package/dist/os/program/lease.js +1 -1
- package/dist/os/program/lease.js.map +1 -1
- package/dist/os/program/program.module.d.ts.map +1 -1
- package/dist/os/program/program.module.js +9 -3
- package/dist/os/program/program.module.js.map +1 -1
- package/dist/os/queue/index.js +1 -1
- package/dist/os/queue/manifest.d.ts.map +1 -1
- package/dist/os/queue/manifest.js +4 -8
- package/dist/os/queue/manifest.js.map +1 -1
- package/dist/os/rfc/acceptance.d.ts.map +1 -1
- package/dist/os/rfc/acceptance.js +10 -6
- package/dist/os/rfc/acceptance.js.map +1 -1
- package/dist/os/rfc/decision-log.d.ts.map +1 -1
- package/dist/os/rfc/decision-log.js +4 -3
- package/dist/os/rfc/decision-log.js.map +1 -1
- package/dist/os/rfc/dna-trace.d.ts.map +1 -1
- package/dist/os/rfc/dna-trace.js +7 -2
- package/dist/os/rfc/dna-trace.js.map +1 -1
- package/dist/os/rfc/frontmatter-io.js +5 -5
- 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 +11 -5
- package/dist/os/rfc/handlers/archive.js.map +1 -1
- package/dist/os/rfc/handlers/check.d.ts.map +1 -1
- package/dist/os/rfc/handlers/check.js +6 -3
- package/dist/os/rfc/handlers/check.js.map +1 -1
- package/dist/os/rfc/handlers/implement-stamp.d.ts.map +1 -1
- package/dist/os/rfc/handlers/implement-stamp.js +11 -10
- package/dist/os/rfc/handlers/implement-stamp.js.map +1 -1
- package/dist/os/rfc/handlers/index-graph.js +3 -3
- 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 -2
- 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 +7 -6
- package/dist/os/rfc/handlers/list-create.js.map +1 -1
- package/dist/os/rfc/handlers/shared.js +3 -3
- package/dist/os/rfc/handlers/shared.js.map +1 -1
- package/dist/os/rfc/handlers/supersede-propose.d.ts.map +1 -1
- package/dist/os/rfc/handlers/supersede-propose.js +7 -3
- 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 +8 -5
- 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/rfc.module.d.ts.map +1 -1
- package/dist/os/rfc/rfc.module.js +44 -4
- package/dist/os/rfc/rfc.module.js.map +1 -1
- package/dist/os/rfc/verification-evidence.d.ts.map +1 -1
- package/dist/os/rfc/verification-evidence.js +9 -5
- package/dist/os/rfc/verification-evidence.js.map +1 -1
- package/dist/os/rfc/verification-refresh.d.ts.map +1 -1
- package/dist/os/rfc/verification-refresh.js +4 -3
- package/dist/os/rfc/verification-refresh.js.map +1 -1
- package/dist/os/session/frontmatter-io.js +12 -12
- package/dist/os/session/frontmatter-io.js.map +1 -1
- package/dist/os/session/handlers/archive.d.ts.map +1 -1
- package/dist/os/session/handlers/archive.js +10 -4
- package/dist/os/session/handlers/archive.js.map +1 -1
- package/dist/os/session/handlers/metrics-aggregate.d.ts.map +1 -1
- package/dist/os/session/handlers/metrics-aggregate.js +9 -5
- package/dist/os/session/handlers/metrics-aggregate.js.map +1 -1
- package/dist/os/session/handlers/metrics-rfc.d.ts.map +1 -1
- package/dist/os/session/handlers/metrics-rfc.js +11 -8
- package/dist/os/session/handlers/metrics-rfc.js.map +1 -1
- package/dist/os/session/handlers/metrics-session.d.ts.map +1 -1
- package/dist/os/session/handlers/metrics-session.js +6 -3
- package/dist/os/session/handlers/metrics-session.js.map +1 -1
- package/dist/os/session/handlers/save.d.ts.map +1 -1
- package/dist/os/session/handlers/save.js +14 -8
- package/dist/os/session/handlers/save.js.map +1 -1
- package/dist/os/session/session.module.d.ts.map +1 -1
- package/dist/os/session/session.module.js +6 -0
- package/dist/os/session/session.module.js.map +1 -1
- package/dist/os/spec/live-spec-list.js +4 -4
- package/dist/os/spec/live-spec-list.js.map +1 -1
- package/dist/os/spec/live-spec-merge.js +5 -5
- package/dist/os/spec/live-spec-merge.js.map +1 -1
- package/dist/os/spec/live-spec-show.js +3 -3
- package/dist/os/spec/live-spec-show.js.map +1 -1
- package/dist/os/spec/live-spec-validate.js +4 -4
- package/dist/os/spec/live-spec-validate.js.map +1 -1
- package/dist/os/spec/spec-materialize.js +9 -9
- package/dist/os/spec/spec-materialize.js.map +1 -1
- package/dist/os/spec/spec-status.js +9 -9
- package/dist/os/spec/spec-status.js.map +1 -1
- package/dist/os/spec/spec-validate.js +7 -7
- package/dist/os/spec/spec-validate.js.map +1 -1
- package/dist/os/spec/spec.module.d.ts.map +1 -1
- package/dist/os/spec/spec.module.js +8 -0
- package/dist/os/spec/spec.module.js.map +1 -1
- package/dist/os/werkstatt/handlers/lock.js +16 -16
- package/dist/os/werkstatt/handlers/lock.js.map +1 -1
- package/dist/os/werkstatt/handlers/werkstatt-lock-recover.js +3 -3
- package/dist/os/werkstatt/handlers/werkstatt-lock-recover.js.map +1 -1
- package/dist/os/werkstatt/handlers/werkstatt-operation-validate.d.ts.map +1 -1
- package/dist/os/werkstatt/handlers/werkstatt-operation-validate.js +3 -2
- package/dist/os/werkstatt/handlers/werkstatt-operation-validate.js.map +1 -1
- package/dist/os/werkstatt/handlers/workspace-deps.d.ts.map +1 -1
- package/dist/os/werkstatt/handlers/workspace-deps.js +0 -1
- package/dist/os/werkstatt/handlers/workspace-deps.js.map +1 -1
- package/dist/os/werkstatt/werkstatt.module.d.ts.map +1 -1
- package/dist/os/werkstatt/werkstatt.module.js +6 -2
- package/dist/os/werkstatt/werkstatt.module.js.map +1 -1
- package/dist/os/workflow/handlers.d.ts.map +1 -1
- package/dist/os/workflow/handlers.js +8 -5
- package/dist/os/workflow/handlers.js.map +1 -1
- package/dist/os/workflow/workflow.module.d.ts.map +1 -1
- package/dist/os/workflow/workflow.module.js +6 -3
- package/dist/os/workflow/workflow.module.js.map +1 -1
- package/dist/src/cli-flags.d.ts +28 -0
- package/dist/src/cli-flags.d.ts.map +1 -0
- package/dist/src/cli-flags.js +232 -0
- package/dist/src/cli-flags.js.map +1 -0
- package/dist/src/compass/contract-registry.js +1 -1
- package/dist/src/compass/contract-registry.js.map +1 -1
- package/dist/src/config/forge-config.d.ts +1 -1
- package/dist/src/config/forge-config.js +1 -1
- package/dist/src/config/forge-config.js.map +1 -1
- package/dist/src/knowledge/budgets.js +1 -1
- package/dist/src/knowledge/budgets.js.map +1 -1
- package/dist/src/knowledge/compact.js +1 -1
- package/dist/src/knowledge/compact.js.map +1 -1
- package/dist/src/knowledge/parse.js +1 -1
- package/dist/src/knowledge/parse.js.map +1 -1
- package/dist/src/knowledge/sync.d.ts.map +1 -1
- package/dist/src/knowledge/sync.js +3 -5
- package/dist/src/knowledge/sync.js.map +1 -1
- package/dist/src/migration-adapters/git-utils.js +2 -2
- package/dist/src/migration-adapters/git-utils.js.map +1 -1
- package/dist/src/migration-adapters/ignored-files.js +2 -2
- package/dist/src/migration-adapters/ignored-files.js.map +1 -1
- package/dist/src/migration-adapters/node-typescript-pnpm/index.js +1 -1
- package/dist/src/migration-adapters/node-typescript-pnpm/index.js.map +1 -1
- package/dist/src/migration-adapters/phaser-pnpm/index.js +1 -1
- package/dist/src/migration-adapters/phaser-pnpm/index.js.map +1 -1
- package/dist/src/onboarding/agents-generate.d.ts.map +1 -1
- package/dist/src/onboarding/agents-generate.js +76 -34
- 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 +10 -10
- 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 +68 -59
- 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 +30 -1
- package/dist/src/onboarding/init.js.map +1 -1
- package/dist/src/onboarding/invariant-engine.js +1 -1
- package/dist/src/onboarding/invariant-engine.js.map +1 -1
- package/dist/src/onboarding/memory-compact.d.ts.map +1 -1
- package/dist/src/onboarding/memory-compact.js +5 -4
- package/dist/src/onboarding/memory-compact.js.map +1 -1
- package/dist/src/onboarding/memory-scaffold.js +1 -1
- package/dist/src/onboarding/memory-scaffold.js.map +1 -1
- package/dist/src/onboarding/nested-agents-generate.d.ts +4 -1
- package/dist/src/onboarding/nested-agents-generate.d.ts.map +1 -1
- package/dist/src/onboarding/nested-agents-generate.js +34 -5
- 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 +8 -12
- package/dist/src/onboarding/nested-agents-templates.js.map +1 -1
- package/dist/src/onboarding/npm-token-check.js +2 -2
- package/dist/src/onboarding/npm-token-check.js.map +1 -1
- package/dist/src/onboarding/prettierignore.d.ts +29 -0
- package/dist/src/onboarding/prettierignore.d.ts.map +1 -0
- package/dist/src/onboarding/prettierignore.js +231 -0
- package/dist/src/onboarding/prettierignore.js.map +1 -0
- package/dist/src/onboarding/profile-validate.d.ts.map +1 -1
- package/dist/src/onboarding/profile-validate.js +5 -4
- package/dist/src/onboarding/profile-validate.js.map +1 -1
- package/dist/src/onboarding/scaffold-project.d.ts.map +1 -1
- package/dist/src/onboarding/scaffold-project.js +35 -27
- package/dist/src/onboarding/scaffold-project.js.map +1 -1
- package/dist/src/onboarding/scaffold.js +1 -1
- package/dist/src/onboarding/scaffold.js.map +1 -1
- package/dist/src/onboarding/skill-markers.d.ts +27 -0
- package/dist/src/onboarding/skill-markers.d.ts.map +1 -0
- package/dist/src/onboarding/skill-markers.js +131 -0
- package/dist/src/onboarding/skill-markers.js.map +1 -0
- package/dist/src/onboarding/upgrade.d.ts +10 -0
- package/dist/src/onboarding/upgrade.d.ts.map +1 -1
- package/dist/src/onboarding/upgrade.js +215 -74
- package/dist/src/onboarding/upgrade.js.map +1 -1
- package/dist/src/onboarding/workspace-discovery.js +1 -1
- package/dist/src/onboarding/workspace-discovery.js.map +1 -1
- package/dist/src/pipeline-status.d.ts +6 -5
- package/dist/src/pipeline-status.d.ts.map +1 -1
- package/dist/src/pipeline-status.js +24 -19
- package/dist/src/pipeline-status.js.map +1 -1
- package/dist/src/profiles/stack-profile.js +1 -1
- package/dist/src/profiles/stack-profile.js.map +1 -1
- package/dist/src/registry.d.ts +1 -1
- package/dist/src/registry.d.ts.map +1 -1
- package/dist/src/registry.js +3 -3
- package/dist/src/registry.js.map +1 -1
- package/dist/src/skill-schema.d.ts +1 -1
- package/dist/src/skill-schema.d.ts.map +1 -1
- package/dist/src/skill-schema.js +4 -1
- package/dist/src/skill-schema.js.map +1 -1
- package/dist/src/types.d.ts +116 -0
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/utils/editable-region.d.ts +46 -0
- package/dist/src/utils/editable-region.d.ts.map +1 -0
- package/dist/src/utils/editable-region.js +125 -0
- package/dist/src/utils/editable-region.js.map +1 -0
- package/dist/src/utils/fs-idempotent.d.ts +2 -1
- package/dist/src/utils/fs-idempotent.d.ts.map +1 -1
- package/dist/src/utils/fs-idempotent.js +11 -7
- package/dist/src/utils/fs-idempotent.js.map +1 -1
- package/dist/src/utils/generated-marker.d.ts +17 -0
- package/dist/src/utils/generated-marker.d.ts.map +1 -1
- package/dist/src/utils/generated-marker.js +29 -1
- package/dist/src/utils/generated-marker.js.map +1 -1
- package/dist/src/utils/index.d.ts +3 -1
- package/dist/src/utils/index.d.ts.map +1 -1
- package/dist/src/utils/index.js +3 -1
- package/dist/src/utils/index.js.map +1 -1
- package/dist/src/utils/io.d.ts +9 -0
- package/dist/src/utils/io.d.ts.map +1 -0
- package/dist/src/utils/io.js +130 -0
- package/dist/src/utils/io.js.map +1 -0
- package/dist/src/utils/markdown-table.d.ts +21 -0
- package/dist/src/utils/markdown-table.d.ts.map +1 -0
- package/dist/src/utils/markdown-table.js +116 -0
- package/dist/src/utils/markdown-table.js.map +1 -0
- package/dist/src/utils/sync-fs.d.ts +5 -0
- package/dist/src/utils/sync-fs.d.ts.map +1 -0
- package/dist/src/utils/sync-fs.js +26 -0
- package/dist/src/utils/sync-fs.js.map +1 -0
- package/dist/src/validators/note-frontmatter-validate.js +1 -1
- package/dist/src/validators/note-frontmatter-validate.js.map +1 -1
- package/dist/src/validators/note-link-validate.js +1 -1
- package/dist/src/validators/note-link-validate.js.map +1 -1
- package/dist/src/validators/note-orphan-detect.js +1 -1
- package/dist/src/validators/note-orphan-detect.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 +34 -13
- package/dist/src/validators/skill-validate.js.map +1 -1
- package/os/adr/adr.module.ts +136 -132
- package/os/adr/frontmatter-io.ts +5 -5
- package/os/adr/handlers/archive.ts +8 -4
- package/os/adr/handlers/implement-stamp.ts +14 -10
- package/os/adr/handlers/list-create.ts +5 -5
- package/os/adr/handlers/validate.ts +1 -1
- package/os/audit/audit.module.ts +33 -34
- package/os/audit/frontmatter-io.ts +5 -5
- package/os/audit/handlers/archive.ts +8 -4
- package/os/compass/compass.module.ts +17 -1
- package/os/compass/handlers/compass-audit-handler.ts +13 -5
- package/os/compass/handlers/compass-change-summary-handler.ts +4 -2
- package/os/compass/handlers/compass-inventory-handler.ts +7 -4
- package/os/compass/handlers/compass-inventory.ts +11 -8
- package/os/compass/handlers/compass-migrate-handler.ts +1 -1
- package/os/compass/handlers/compass-migrate.ts +7 -3
- package/os/compass/handlers/git-revision.ts +11 -6
- package/os/compass/handlers/resolve-scan-root.ts +1 -1
- package/os/compass/handlers/summary-record.ts +10 -4
- package/os/compass/handlers/tests/compass-audit-plan.test.ts +2 -1
- package/os/core/core.module.ts +43 -4
- package/os/core/handlers/assets-helpers.ts +7 -3
- package/os/core/handlers/build.ts +1 -1
- package/os/core/handlers/determinism-check.ts +12 -6
- package/os/core/handlers/dev.ts +1 -1
- package/os/core/handlers/file-size-lint.ts +16 -9
- package/os/core/handlers/forge-autonomy-validate.ts +10 -5
- package/os/core/handlers/knowledge-compact.ts +1 -1
- package/os/core/handlers/package-health.ts +1 -1
- package/os/core/handlers/pinned-check.ts +2 -2
- package/os/core/handlers/pinned-init.ts +9 -8
- package/os/core/handlers/pinned-validate.ts +3 -3
- package/os/core/handlers/profile-resolve.ts +1 -1
- package/os/core/handlers/public-surface.ts +1 -1
- package/os/core/handlers/release-prepare.ts +11 -6
- package/os/core/handlers/release-publish.ts +6 -6
- package/os/core/handlers/validate.ts +1 -1
- package/os/exploration/exploration.module.ts +1 -0
- package/os/exploration/frontmatter-io.ts +4 -4
- package/os/exploration/handlers/archive.ts +3 -3
- package/os/mission/handlers/archive.test.ts +38 -1
- package/os/mission/handlers/archive.ts +54 -23
- package/os/mission/mission.module.ts +38 -39
- package/os/naming/naming-convention.ts +9 -3
- package/os/naming/naming.module.ts +25 -25
- package/os/notes/notes.module.ts +87 -85
- package/os/plan/frontmatter-io.ts +5 -5
- package/os/plan/handlers/archive.ts +8 -4
- package/os/plan/plan.module.ts +33 -34
- package/os/plugin/plugin.module.ts +8 -6
- package/os/program/discovery.ts +2 -2
- package/os/program/handlers/complete.ts +1 -1
- package/os/program/handlers/lease.ts +1 -1
- package/os/program/handlers/seal.ts +1 -1
- package/os/program/lease.ts +1 -1
- package/os/program/program.module.ts +198 -193
- package/os/queue/index.ts +1 -1
- package/os/queue/manifest.ts +10 -9
- package/os/queue/queue-validate.test.ts +6 -15
- package/os/rfc/acceptance.ts +12 -6
- package/os/rfc/decision-log.ts +4 -3
- package/os/rfc/dna-trace.ts +8 -2
- package/os/rfc/frontmatter-io.ts +5 -5
- package/os/rfc/handlers/archive.ts +9 -5
- package/os/rfc/handlers/check.ts +5 -3
- package/os/rfc/handlers/implement-stamp.ts +15 -10
- package/os/rfc/handlers/index-graph.ts +3 -3
- package/os/rfc/handlers/lifecycle.ts +7 -2
- package/os/rfc/handlers/list-create.ts +7 -6
- package/os/rfc/handlers/shared.ts +3 -3
- package/os/rfc/handlers/supersede-propose.ts +8 -3
- package/os/rfc/handlers/validate-rules-rfc1006.test.ts +18 -6
- package/os/rfc/handlers/validate-rules.ts +10 -5
- package/os/rfc/handlers/validate.test.ts +71 -0
- package/os/rfc/handlers/validate.ts +6 -1
- package/os/rfc/rfc-create-concurrent.test.ts +11 -3
- package/os/rfc/rfc.module.ts +413 -374
- package/os/rfc/verification-evidence.ts +11 -5
- package/os/rfc/verification-refresh.ts +4 -3
- package/os/session/frontmatter-io.ts +14 -14
- package/os/session/handlers/archive.ts +8 -4
- package/os/session/handlers/metrics-aggregate.ts +34 -13
- package/os/session/handlers/metrics-rfc.ts +13 -8
- package/os/session/handlers/metrics-session.ts +7 -3
- package/os/session/handlers/save.ts +12 -8
- package/os/session/session.module.ts +6 -0
- package/os/spec/live-spec-list.ts +4 -4
- package/os/spec/live-spec-merge.ts +5 -5
- package/os/spec/live-spec-show.ts +3 -3
- package/os/spec/live-spec-validate.ts +4 -4
- package/os/spec/spec-materialize.ts +9 -9
- package/os/spec/spec-status.ts +9 -9
- package/os/spec/spec-validate.ts +7 -7
- package/os/spec/spec.module.ts +8 -0
- package/os/werkstatt/handlers/lock.ts +16 -16
- package/os/werkstatt/handlers/werkstatt-lock-recover.ts +3 -3
- package/os/werkstatt/handlers/werkstatt-operation-validate.ts +4 -2
- package/os/werkstatt/handlers/workspace-deps.ts +0 -1
- package/os/werkstatt/werkstatt.module.ts +8 -5
- package/os/workflow/handlers.ts +7 -5
- package/os/workflow/workflow.module.ts +45 -44
- package/package.json +1 -1
- package/profiles/forge-shell.yaml +1 -1
- package/profiles/godot-game.yaml +1 -1
- package/profiles/knowledge.yaml +1 -1
- package/profiles/phaser-game.yaml +1 -1
- package/profiles/site-workshop.yaml +1 -1
- package/profiles/typescript.yaml +1 -1
- package/skills/fo/fo-add-tests/SKILL.md +2 -2
- package/skills/fo/fo-architecture/SKILL.md +2 -2
- package/skills/fo/fo-compass-annotate/SKILL.md +2 -2
- package/skills/fo/fo-design-summit/SKILL.md +2 -2
- package/skills/fo/fo-doc-audit/SKILL.md +2 -2
- package/skills/fo/fo-explore/SKILL.md +2 -2
- package/skills/fo/fo-extract-dna/SKILL.md +2 -2
- package/skills/fo/fo-fix/SKILL.md +2 -2
- package/skills/fo/fo-handoff/SKILL.md +2 -2
- package/skills/fo/fo-harvest/SKILL.md +2 -2
- package/skills/fo/fo-idea/SKILL.md +2 -2
- package/skills/fo/fo-idea-audit/SKILL.md +2 -2
- package/skills/fo/fo-idea-create-adr/SKILL.md +3 -3
- package/skills/fo/fo-idea-create-rfc/SKILL.md +3 -3
- package/skills/fo/fo-idea-enhance/SKILL.md +2 -2
- package/skills/fo/fo-idea-i-just-want-to-see-the-plan/SKILL.md +2 -2
- package/skills/fo/fo-idea-i-just-want-to-see-the-result/SKILL.md +1 -1
- package/skills/fo/fo-idea-implement/SKILL.md +2 -2
- package/skills/fo/fo-idea-plan/SKILL.md +2 -2
- package/skills/fo/fo-idea-status/SKILL.md +2 -2
- package/skills/fo/fo-knowledge-distill/SKILL.md +2 -2
- package/skills/fo/fo-memory-sync/SKILL.md +2 -2
- package/skills/fo/fo-qa/SKILL.md +2 -2
- package/skills/fo/fo-review/SKILL.md +2 -2
- package/skills/fo/fo-session-retro/SKILL.md +2 -2
- package/skills/fo/fo-session-save/SKILL.md +2 -2
- package/skills/fo/fo-spec-ingest/SKILL.md +2 -2
- package/skills/fo/fo-step-commit/SKILL.md +1 -1
- package/skills/fo/fo-triage/SKILL.md +2 -2
- package/skills/meta/forge-bootstrap/SKILL.md +1 -1
- package/skills/meta/port-to-forge/SKILL.md +1 -1
- package/skills/meta/skill-create/SKILL.md +1 -1
- package/skills/shared/grilling/SKILL.md +1 -1
- package/skills/shared/grilling/learned-principles.archive.md +17 -0
- package/skills/shared/grilling/learned-principles.md +0 -1
- package/skills/shared/knowledge/learned-principles.md +6 -0
- package/skills/shared/my-preferences/SKILL.md +1 -1
- package/skills/shared/windows-ai-tooling/SKILL.md +1 -1
- package/skills/shared/writing-great-skills/SKILL.md +1 -1
- package/src/cli-flags.ts +285 -0
- package/src/compass/contract-registry.ts +1 -1
- package/src/config/forge-config.ts +1 -1
- package/src/knowledge/__tests__/sync.test.ts +2 -7
- package/src/knowledge/budgets.ts +1 -1
- package/src/knowledge/compact.ts +1 -1
- package/src/knowledge/parse.ts +1 -1
- package/src/knowledge/sync.ts +3 -5
- package/src/migration-adapters/git-utils.ts +2 -2
- package/src/migration-adapters/ignored-files.ts +2 -2
- package/src/migration-adapters/node-typescript-pnpm/index.ts +1 -1
- package/src/migration-adapters/phaser-pnpm/index.ts +1 -1
- package/src/onboarding/agents-generate.ts +92 -36
- package/src/onboarding/create.ts +10 -10
- package/src/onboarding/doctor.ts +70 -55
- package/src/onboarding/init.ts +38 -1
- package/src/onboarding/invariant-engine.ts +1 -1
- package/src/onboarding/memory-compact.ts +5 -4
- package/src/onboarding/memory-scaffold.ts +1 -1
- package/src/onboarding/nested-agents-generate.ts +45 -4
- package/src/onboarding/nested-agents-templates.ts +19 -13
- package/src/onboarding/npm-token-check.ts +2 -2
- package/src/onboarding/prettierignore.ts +263 -0
- package/src/onboarding/profile-validate.ts +5 -4
- package/src/onboarding/scaffold-project.ts +38 -27
- package/src/onboarding/scaffold.ts +1 -1
- package/src/onboarding/skill-markers.ts +162 -0
- package/src/onboarding/templates/behavioral-layer-core.md +2 -4
- package/src/onboarding/upgrade.ts +285 -89
- package/src/onboarding/workspace-discovery.ts +1 -1
- package/src/pipeline-status.test.ts +1 -4
- package/src/pipeline-status.ts +30 -13
- package/src/profiles/stack-profile.ts +1 -1
- package/src/registry.ts +4 -4
- package/src/skill-schema.ts +4 -1
- package/src/tests/acceptance-probe-kinds.test.ts +5 -15
- package/src/tests/agents-generate.test.ts +28 -5
- package/src/tests/cli-flags.test.ts +169 -0
- package/src/tests/contract-registry.test.ts +12 -6
- package/src/tests/doctor-fix.test.ts +1 -4
- package/src/tests/doctor-nested-agents.test.ts +53 -1
- package/src/tests/editable-generated-region.test.ts +231 -0
- package/src/tests/file-size-lint.test.ts +8 -12
- package/src/tests/fixtures/agents-generate-business-before.txt +85 -56
- package/src/tests/markdown-table.test.ts +107 -0
- package/src/tests/prettierignore-manage.test.ts +134 -0
- package/src/tests/skill-agents-sync.test.ts +168 -0
- package/src/tests/skill-sync-marker.test.ts +134 -0
- package/src/tests/skill-validate.test.ts +12 -5
- package/src/tests/upgrade.test.ts +87 -41
- package/src/types.ts +123 -0
- package/src/utils/editable-region.ts +156 -0
- package/src/utils/fs-idempotent.ts +12 -6
- package/src/utils/generated-marker.ts +36 -2
- package/src/utils/index.ts +17 -0
- package/src/utils/io.ts +143 -0
- package/src/utils/markdown-table.ts +121 -0
- package/src/utils/sync-fs.ts +43 -0
- package/src/validators/note-frontmatter-validate.ts +1 -1
- package/src/validators/note-link-validate.ts +1 -1
- package/src/validators/note-orphan-detect.ts +1 -1
- package/src/validators/port-validate.ts +1 -1
- package/src/validators/skill-validate.ts +38 -13
- package/AGENTS.md +0 -502
|
@@ -10,6 +10,7 @@ knowledge:
|
|
|
10
10
|
- qa-log.md
|
|
11
11
|
- learned-principles.md
|
|
12
12
|
---
|
|
13
|
+
|
|
13
14
|
<!--
|
|
14
15
|
<MODULE_CONTRACT>
|
|
15
16
|
<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>
|
|
@@ -24,7 +25,6 @@ Sweep batch 1: add Compass v2 headers to 45 SKILL.md files (purpose derived from
|
|
|
24
25
|
</CHANGE_SUMMARY>
|
|
25
26
|
-->
|
|
26
27
|
|
|
27
|
-
|
|
28
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.
|
|
29
29
|
|
|
30
30
|
Read `learned-principles.md` (L2) at the start of each session to improve recommended answers. Apply only entries with `status: active`; skip entries with `status: stale`, `superseded`, or `archived`. Principles with `confirmations >= 3` may be applied autonomously — but re-evaluate if context changes.
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
<!-- knowledge-layer: L2 -->
|
|
2
|
+
|
|
2
3
|
# learned-principles.md (archive)
|
|
3
4
|
|
|
4
5
|
Archived entries from learned-principles.md. Generated by forge.skill.knowledge.compact (RFC-0662).
|
|
6
|
+
|
|
5
7
|
### K-0001: Extend infrastructure before feature logic
|
|
6
8
|
|
|
7
9
|
```knowledge-entry
|
|
@@ -15,6 +17,7 @@ status: superseded
|
|
|
15
17
|
```
|
|
16
18
|
|
|
17
19
|
Promoted to shared layer as shared/K-0003.
|
|
20
|
+
|
|
18
21
|
### K-0002: Unknown is not green
|
|
19
22
|
|
|
20
23
|
```knowledge-entry
|
|
@@ -28,6 +31,7 @@ status: superseded
|
|
|
28
31
|
```
|
|
29
32
|
|
|
30
33
|
Promoted to shared layer as shared/K-0001.
|
|
34
|
+
|
|
31
35
|
### K-0003: Quality claims bind to immutable identity
|
|
32
36
|
|
|
33
37
|
```knowledge-entry
|
|
@@ -41,6 +45,7 @@ status: superseded
|
|
|
41
45
|
```
|
|
42
46
|
|
|
43
47
|
Promoted to shared layer as shared/K-0001.
|
|
48
|
+
|
|
44
49
|
### K-0004: Evaluation must not mutate its subject
|
|
45
50
|
|
|
46
51
|
```knowledge-entry
|
|
@@ -54,6 +59,7 @@ status: superseded
|
|
|
54
59
|
```
|
|
55
60
|
|
|
56
61
|
Promoted to shared layer as shared/K-0004.
|
|
62
|
+
|
|
57
63
|
### K-0005: Immutable history and current health are separate
|
|
58
64
|
|
|
59
65
|
```knowledge-entry
|
|
@@ -67,6 +73,7 @@ status: superseded
|
|
|
67
73
|
```
|
|
68
74
|
|
|
69
75
|
Promoted to shared layer as shared/K-0001.
|
|
76
|
+
|
|
70
77
|
### K-0006: Migration complexity follows the real estate
|
|
71
78
|
|
|
72
79
|
```knowledge-entry
|
|
@@ -80,6 +87,7 @@ status: superseded
|
|
|
80
87
|
```
|
|
81
88
|
|
|
82
89
|
Promoted to shared layer as shared/K-0003.
|
|
90
|
+
|
|
83
91
|
### K-0007: Integrity requires an independent authority
|
|
84
92
|
|
|
85
93
|
```knowledge-entry
|
|
@@ -93,6 +101,7 @@ status: superseded
|
|
|
93
101
|
```
|
|
94
102
|
|
|
95
103
|
Promoted to shared layer as shared/K-0002.
|
|
104
|
+
|
|
96
105
|
### K-0008: Historical verification preserves policy bytes
|
|
97
106
|
|
|
98
107
|
```knowledge-entry
|
|
@@ -106,6 +115,7 @@ status: superseded
|
|
|
106
115
|
```
|
|
107
116
|
|
|
108
117
|
Promoted to shared layer as shared/K-0001.
|
|
118
|
+
|
|
109
119
|
### K-0009: Distributed evidence uses authority order and immutable cuts
|
|
110
120
|
|
|
111
121
|
```knowledge-entry
|
|
@@ -119,6 +129,7 @@ status: superseded
|
|
|
119
129
|
```
|
|
120
130
|
|
|
121
131
|
Promoted to shared layer as shared/K-0002.
|
|
132
|
+
|
|
122
133
|
### K-0010: Bootstrap safety does not create legacy authority
|
|
123
134
|
|
|
124
135
|
```knowledge-entry
|
|
@@ -132,6 +143,7 @@ status: superseded
|
|
|
132
143
|
```
|
|
133
144
|
|
|
134
145
|
Promoted to shared layer as shared/K-0003.
|
|
146
|
+
|
|
135
147
|
### K-0011: Documents are execution boundaries
|
|
136
148
|
|
|
137
149
|
```knowledge-entry
|
|
@@ -145,6 +157,7 @@ status: superseded
|
|
|
145
157
|
```
|
|
146
158
|
|
|
147
159
|
Promoted to shared layer as shared/K-0005.
|
|
160
|
+
|
|
148
161
|
### K-0012: Supersede decision authority, preserve useful mechanisms deliberately
|
|
149
162
|
|
|
150
163
|
```knowledge-entry
|
|
@@ -158,6 +171,7 @@ status: superseded
|
|
|
158
171
|
```
|
|
159
172
|
|
|
160
173
|
Promoted to shared layer as shared/K-0003.
|
|
174
|
+
|
|
161
175
|
### K-0013: Deterministic aggregators need scale contracts
|
|
162
176
|
|
|
163
177
|
```knowledge-entry
|
|
@@ -171,6 +185,7 @@ status: superseded
|
|
|
171
185
|
```
|
|
172
186
|
|
|
173
187
|
Promoted to shared layer as shared/K-0006.
|
|
188
|
+
|
|
174
189
|
### K-0014: Canonical identities require a closed snapshot boundary
|
|
175
190
|
|
|
176
191
|
```knowledge-entry
|
|
@@ -184,6 +199,7 @@ status: superseded
|
|
|
184
199
|
```
|
|
185
200
|
|
|
186
201
|
Promoted to shared layer as shared/K-0007.
|
|
202
|
+
|
|
187
203
|
### K-0015: Permanent formats profile standards instead of imitating them
|
|
188
204
|
|
|
189
205
|
```knowledge-entry
|
|
@@ -197,6 +213,7 @@ status: superseded
|
|
|
197
213
|
```
|
|
198
214
|
|
|
199
215
|
Promoted to shared layer as shared/K-0007.
|
|
216
|
+
|
|
200
217
|
### K-0016: Cutover enforcement starts after executor bootstrap
|
|
201
218
|
|
|
202
219
|
```knowledge-entry
|
|
@@ -18,6 +18,7 @@ status: active
|
|
|
18
18
|
|
|
19
19
|
- **Condition:** A consequential durable decision depends on evidence, policy, or artifact state that may later change or become unavailable.
|
|
20
20
|
- **Recommended answer:** Represent missing, stale, malformed, or unavailable evidence explicitly and fail closed. Bind the decision to immutable subject and policy bytes, preserve its evidence as append-only history, and calculate current health separately rather than rewriting the historical result.
|
|
21
|
+
|
|
21
22
|
### K-0002: Integrity requires authority ordering
|
|
22
23
|
|
|
23
24
|
```knowledge-entry
|
|
@@ -32,6 +33,7 @@ status: active
|
|
|
32
33
|
|
|
33
34
|
- **Condition:** Evidence or events may be produced concurrently, retried, submitted by the artifact author, delivered out of order, or received after a decision closes.
|
|
34
35
|
- **Recommended answer:** Admit evidence through a separate least-privilege authority that assigns a monotonic sequence and freezes every decision at an explicit evaluation cut. Producer timestamps never determine precedence, self-authored consistency is not authority, and late results create a new decision or incident instead of rewriting history.
|
|
36
|
+
|
|
35
37
|
### K-0003: Forward-only cutovers preserve recovery, not legacy authority
|
|
36
38
|
|
|
37
39
|
```knowledge-entry
|
|
@@ -46,6 +48,7 @@ status: active
|
|
|
46
48
|
|
|
47
49
|
- **Condition:** A forward-only transition replaces an authority model, runtime, toolchain, or deployment contract while still requiring prerequisites and a recoverable first cutover.
|
|
48
50
|
- **Recommended answer:** Provision and verify the required executor and infrastructure before activating enforcement. Then supersede the old authority through the smallest complete cutover that fits the real estate. Preserve useful old mechanisms only as explicitly non-authorizing infrastructure; permit a narrow, one-time rollback target with explicit closure conditions, never an indefinite compatibility path.
|
|
51
|
+
|
|
49
52
|
### K-0004: Evaluation must not mutate its subject
|
|
50
53
|
|
|
51
54
|
```knowledge-entry
|
|
@@ -60,6 +63,7 @@ status: active
|
|
|
60
63
|
|
|
61
64
|
- **Condition:** A gate, evaluator, audit, review, or certification process discovers a defect in the artifact it judges.
|
|
62
65
|
- **Recommended answer:** Keep evaluation read-only with respect to the judged artifact. Emit precise, anchored remediation tasks; apply fixes in a separate authoring flow that produces a new artifact identity and a new evidence chain.
|
|
66
|
+
|
|
63
67
|
### K-0005: Documents are executable boundaries
|
|
64
68
|
|
|
65
69
|
```knowledge-entry
|
|
@@ -74,6 +78,7 @@ status: active
|
|
|
74
78
|
|
|
75
79
|
- **Condition:** A specification or implementation document will be executed by another agent—possibly less capable—in an isolated session.
|
|
76
80
|
- **Recommended answer:** Decompose work into dependency-ordered documents that each define their inputs, outputs, forbidden shortcuts, acceptance evidence, and bounded validation. Every document must leave its affected scope internally consistent; use a final integration document for cross-module laws instead of relying on unstated context.
|
|
81
|
+
|
|
77
82
|
### K-0006: Deterministic mechanisms require scale contracts
|
|
78
83
|
|
|
79
84
|
```knowledge-entry
|
|
@@ -88,6 +93,7 @@ status: active
|
|
|
88
93
|
|
|
89
94
|
- **Condition:** A deterministic evaluator, selector, validator, or aggregator processes potentially growing collections and may gate a consequential transition.
|
|
90
95
|
- **Recommended answer:** Specify hard input limits, time and memory complexity, overflow behavior, and a deterministic stress fixture. Reject overflow explicitly without truncation or synthesized success, and forbid repeated full scans when an indexed or single-pass design is available.
|
|
96
|
+
|
|
91
97
|
### K-0007: Canonical identities use closed snapshots and named standards
|
|
92
98
|
|
|
93
99
|
```knowledge-entry
|
|
@@ -7,6 +7,7 @@ concerns: document-only
|
|
|
7
7
|
dependsOn: []
|
|
8
8
|
languagePolicy: ref(PREFERENCES.md)
|
|
9
9
|
---
|
|
10
|
+
|
|
10
11
|
<!--
|
|
11
12
|
<MODULE_CONTRACT>
|
|
12
13
|
<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>
|
|
@@ -21,7 +22,6 @@ Sweep batch 1: add Compass v2 headers to 45 SKILL.md files (purpose derived from
|
|
|
21
22
|
</CHANGE_SUMMARY>
|
|
22
23
|
-->
|
|
23
24
|
|
|
24
|
-
|
|
25
25
|
# my-preferences
|
|
26
26
|
|
|
27
27
|
Before starting, read `PREFERENCES.md` at the repository root. If the file is missing, create it using the semantics below.
|
|
@@ -7,6 +7,7 @@ concerns: code-mutation
|
|
|
7
7
|
dependsOn: []
|
|
8
8
|
languagePolicy: ref(PREFERENCES.md)
|
|
9
9
|
---
|
|
10
|
+
|
|
10
11
|
<!--
|
|
11
12
|
<MODULE_CONTRACT>
|
|
12
13
|
<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>
|
|
@@ -21,7 +22,6 @@ Sweep batch 1: add Compass v2 headers to 45 SKILL.md files (purpose derived from
|
|
|
21
22
|
</CHANGE_SUMMARY>
|
|
22
23
|
-->
|
|
23
24
|
|
|
24
|
-
|
|
25
25
|
# Windows AI Tooling
|
|
26
26
|
|
|
27
27
|
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.
|
|
@@ -7,6 +7,7 @@ concerns: read-only
|
|
|
7
7
|
dependsOn: []
|
|
8
8
|
languagePolicy: ref(PREFERENCES.md)
|
|
9
9
|
---
|
|
10
|
+
|
|
10
11
|
<!--
|
|
11
12
|
<MODULE_CONTRACT>
|
|
12
13
|
<purpose>writing-great-skills skill — Reference for writing and editing skills well — the vocabulary and principles that make a skill predictable.</purpose>
|
|
@@ -21,7 +22,6 @@ Sweep batch 1: add Compass v2 headers to 45 SKILL.md files (purpose derived from
|
|
|
21
22
|
</CHANGE_SUMMARY>
|
|
22
23
|
-->
|
|
23
24
|
|
|
24
|
-
|
|
25
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.
|
|
26
26
|
|
|
27
27
|
A skill exists to wrangle determinism out of a stochastic system. **Predictability** — the agent taking the same _process_ every run, not producing the same output — is the root virtue; every lever below serves it.
|
package/src/cli-flags.ts
ADDED
|
@@ -0,0 +1,285 @@
|
|
|
1
|
+
/*
|
|
2
|
+
<MODULE_CONTRACT>
|
|
3
|
+
<purpose>Argv-to-flags resolution for the standalone forge CLI — a standalone
|
|
4
|
+
port of the kernel's RFC-0260 semantics (resolveCommandFlags for schema-carrying
|
|
5
|
+
commands, the heuristic parser for schema-less ones). Ensures a declared string
|
|
6
|
+
flag never reaches a handler as `true`, which crashed `forge rfc.validate --id`
|
|
7
|
+
with `TypeError: targetId.toLowerCase is not a function`.</purpose>
|
|
8
|
+
<non-goals>
|
|
9
|
+
<item>Do not import from @warpgogol/* — forge is autonomous (FORGE-AUTONOMY-01); keep this a self-contained port.</item>
|
|
10
|
+
<item>Do not call console.* or process.exit — bin/cli.ts renders diagnostics and decides the exit code.</item>
|
|
11
|
+
</non-goals>
|
|
12
|
+
</MODULE_CONTRACT>
|
|
13
|
+
<CHANGE_SUMMARY>
|
|
14
|
+
<item>Standalone port of kernel argv resolution for the forge CLI: strict KERNEL-FLAG-01/02/03 + KERNEL-ARG-01 diagnostics for schema-carrying commands, legacy heuristic parse (with KERNEL-ARG-01) for schema-less commands; repeated single-value string flags diagnose instead of silently promoting to an array that crashes handlers.</item>
|
|
15
|
+
</CHANGE_SUMMARY>
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
import type {
|
|
19
|
+
Diagnostic,
|
|
20
|
+
ForgeCommandDefinition,
|
|
21
|
+
ForgeFlagSpec,
|
|
22
|
+
ForgeFlagValue,
|
|
23
|
+
} from "./types.ts";
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Flags every CLI command accepts regardless of its own declared schema —
|
|
27
|
+
* mirrors the kernel's KERNEL_UNIVERSAL_FLAGS so both entry points accept the
|
|
28
|
+
* same universal switches.
|
|
29
|
+
*/
|
|
30
|
+
export const CLI_UNIVERSAL_FLAGS: Record<string, ForgeFlagSpec> = {
|
|
31
|
+
site: { kind: "string", description: "Target a specific site by name." },
|
|
32
|
+
all: { kind: "boolean", description: "Run against every discovered app." },
|
|
33
|
+
json: { kind: "boolean", description: "Emit machine-readable JSON instead of pretty output." },
|
|
34
|
+
quiet: { kind: "boolean", description: "Suppress non-essential log output." },
|
|
35
|
+
verbose: { kind: "boolean", description: "Emit additional diagnostic log output." },
|
|
36
|
+
root: { kind: "string", description: "Override the resolved workspace root." },
|
|
37
|
+
"dry-run": { kind: "boolean", description: "Report intended mutations without writing them." },
|
|
38
|
+
force: { kind: "boolean", description: "Bypass a normally-blocking safety check." },
|
|
39
|
+
help: { kind: "boolean", description: "Print command help instead of executing." },
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Boolean switches for the legacy heuristic path (schema-less commands).
|
|
44
|
+
* Mirrors the kernel's KERNEL_BOOLEAN_FLAGS: a listed flag never consumes the
|
|
45
|
+
* following token as its value.
|
|
46
|
+
*/
|
|
47
|
+
const CLI_BOOLEAN_FLAGS = new Set<string>([
|
|
48
|
+
"all",
|
|
49
|
+
"all-apps",
|
|
50
|
+
"approve-all",
|
|
51
|
+
"dry-run",
|
|
52
|
+
"force",
|
|
53
|
+
"help",
|
|
54
|
+
"inplace",
|
|
55
|
+
"json",
|
|
56
|
+
"mini",
|
|
57
|
+
"packages",
|
|
58
|
+
"page",
|
|
59
|
+
"prod",
|
|
60
|
+
"quiet",
|
|
61
|
+
"regen",
|
|
62
|
+
"regenerate",
|
|
63
|
+
"report-only",
|
|
64
|
+
"show-versions",
|
|
65
|
+
"strict",
|
|
66
|
+
"verbose",
|
|
67
|
+
"version",
|
|
68
|
+
"write",
|
|
69
|
+
]);
|
|
70
|
+
|
|
71
|
+
function addFlagValue(
|
|
72
|
+
target: Record<string, ForgeFlagValue>,
|
|
73
|
+
key: string,
|
|
74
|
+
value: string | boolean,
|
|
75
|
+
): void {
|
|
76
|
+
const existing = target[key];
|
|
77
|
+
|
|
78
|
+
if (existing === undefined) {
|
|
79
|
+
target[key] = value;
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
if (Array.isArray(existing)) {
|
|
84
|
+
if (typeof value === "string") {
|
|
85
|
+
target[key] = [...existing, value];
|
|
86
|
+
}
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
if (typeof existing === "string") {
|
|
91
|
+
if (typeof value === "string") {
|
|
92
|
+
target[key] = [existing, value];
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
target[key] = existing;
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
target[key] = value;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
function positionalDiagnostic(entry: string, commandName?: string): Diagnostic {
|
|
104
|
+
const scope = commandName ? ` for command "${commandName}"` : "";
|
|
105
|
+
return {
|
|
106
|
+
ruleId: "KERNEL-ARG-01",
|
|
107
|
+
severity: "error",
|
|
108
|
+
message: `Unexpected positional argument "${entry}"${scope}. All arguments must be passed as flags.`,
|
|
109
|
+
fixHint: `Convert "${entry}" to a flag, e.g. --id ${entry}.`,
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* Legacy heuristic parse for commands without a `flags` schema — mirrors the
|
|
115
|
+
* kernel's parseKernelArgv: unknown flags are accepted, boolean-ness comes
|
|
116
|
+
* from CLI_BOOLEAN_FLAGS, and positional tokens produce KERNEL-ARG-01.
|
|
117
|
+
*/
|
|
118
|
+
export function parseCliArgs(argv: string[]): {
|
|
119
|
+
flags: Record<string, ForgeFlagValue>;
|
|
120
|
+
diagnostics: Diagnostic[];
|
|
121
|
+
} {
|
|
122
|
+
const flags: Record<string, ForgeFlagValue> = {};
|
|
123
|
+
const diagnostics: Diagnostic[] = [];
|
|
124
|
+
let passthrough = false;
|
|
125
|
+
|
|
126
|
+
for (let index = 0; index < argv.length; index += 1) {
|
|
127
|
+
const entry = argv[index]!;
|
|
128
|
+
|
|
129
|
+
if (passthrough) {
|
|
130
|
+
diagnostics.push(positionalDiagnostic(entry));
|
|
131
|
+
continue;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
if (entry === "--") {
|
|
135
|
+
passthrough = true;
|
|
136
|
+
continue;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
if (!entry.startsWith("--")) {
|
|
140
|
+
diagnostics.push(positionalDiagnostic(entry));
|
|
141
|
+
continue;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
const withoutPrefix = entry.slice(2);
|
|
145
|
+
const [flagName, inlineValue] = withoutPrefix.split("=", 2);
|
|
146
|
+
if (!flagName) continue;
|
|
147
|
+
|
|
148
|
+
if (inlineValue !== undefined) {
|
|
149
|
+
addFlagValue(flags, flagName, inlineValue);
|
|
150
|
+
continue;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
if (CLI_BOOLEAN_FLAGS.has(flagName)) {
|
|
154
|
+
addFlagValue(flags, flagName, true);
|
|
155
|
+
continue;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
const next = argv[index + 1];
|
|
159
|
+
if (typeof next === "string" && !next.startsWith("--")) {
|
|
160
|
+
addFlagValue(flags, flagName, next);
|
|
161
|
+
index += 1;
|
|
162
|
+
continue;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
addFlagValue(flags, flagName, true);
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
return { flags, diagnostics };
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
function resolveStrict(
|
|
172
|
+
rawArgv: string[],
|
|
173
|
+
command: ForgeCommandDefinition,
|
|
174
|
+
): { flags: Record<string, ForgeFlagValue>; diagnostics: Diagnostic[] } {
|
|
175
|
+
const schema: Record<string, ForgeFlagSpec> = {
|
|
176
|
+
...CLI_UNIVERSAL_FLAGS,
|
|
177
|
+
...(command.flags ?? {}),
|
|
178
|
+
};
|
|
179
|
+
const validFlagNames = Object.keys(schema).sort();
|
|
180
|
+
const flags: Record<string, ForgeFlagValue> = {};
|
|
181
|
+
const diagnostics: Diagnostic[] = [];
|
|
182
|
+
let passthrough = false;
|
|
183
|
+
|
|
184
|
+
for (let index = 0; index < rawArgv.length; index += 1) {
|
|
185
|
+
const entry = rawArgv[index]!;
|
|
186
|
+
|
|
187
|
+
if (passthrough) {
|
|
188
|
+
diagnostics.push(positionalDiagnostic(entry, command.name));
|
|
189
|
+
continue;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
if (entry === "--") {
|
|
193
|
+
passthrough = true;
|
|
194
|
+
continue;
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
if (!entry.startsWith("--")) {
|
|
198
|
+
diagnostics.push(positionalDiagnostic(entry, command.name));
|
|
199
|
+
continue;
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
const withoutPrefix = entry.slice(2);
|
|
203
|
+
const [flagName, inlineValue] = withoutPrefix.split("=", 2);
|
|
204
|
+
if (!flagName) continue;
|
|
205
|
+
|
|
206
|
+
const spec = schema[flagName];
|
|
207
|
+
if (!spec) {
|
|
208
|
+
diagnostics.push({
|
|
209
|
+
ruleId: "KERNEL-FLAG-01",
|
|
210
|
+
severity: "error",
|
|
211
|
+
message: `Unknown flag "--${flagName}" for command "${command.name}". Valid flags: ${validFlagNames.join(", ")}`,
|
|
212
|
+
fixHint: `Remove --${flagName}, fix the typo, or add it to the flags schema for ${command.name}.`,
|
|
213
|
+
});
|
|
214
|
+
continue;
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
if (inlineValue !== undefined) {
|
|
218
|
+
addFlagValue(
|
|
219
|
+
flags,
|
|
220
|
+
flagName,
|
|
221
|
+
spec.kind === "boolean" ? inlineValue !== "false" : inlineValue,
|
|
222
|
+
);
|
|
223
|
+
continue;
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
if (spec.kind === "boolean") {
|
|
227
|
+
addFlagValue(flags, flagName, true);
|
|
228
|
+
continue;
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
const next = rawArgv[index + 1];
|
|
232
|
+
if (typeof next === "string" && !next.startsWith("--")) {
|
|
233
|
+
addFlagValue(flags, flagName, next);
|
|
234
|
+
index += 1;
|
|
235
|
+
continue;
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
diagnostics.push({
|
|
239
|
+
ruleId: "KERNEL-FLAG-02",
|
|
240
|
+
severity: "error",
|
|
241
|
+
message: `Flag "--${flagName}" for command "${command.name}" requires a value but none was given.`,
|
|
242
|
+
fixHint: `Pass --${flagName} <value> or --${flagName}=<value>.`,
|
|
243
|
+
});
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
for (const [flagName, spec] of Object.entries(schema)) {
|
|
247
|
+
const value = flags[flagName];
|
|
248
|
+
if (spec.required && value === undefined) {
|
|
249
|
+
diagnostics.push({
|
|
250
|
+
ruleId: "KERNEL-FLAG-03",
|
|
251
|
+
severity: "error",
|
|
252
|
+
message: `Required flag "--${flagName}" is missing for command "${command.name}".`,
|
|
253
|
+
fixHint: `Pass --${flagName} <value>.`,
|
|
254
|
+
});
|
|
255
|
+
} else if (value === undefined && spec.default !== undefined) {
|
|
256
|
+
flags[flagName] = spec.default;
|
|
257
|
+
} else if (spec.kind === "string" && Array.isArray(value)) {
|
|
258
|
+
diagnostics.push({
|
|
259
|
+
ruleId: "KERNEL-FLAG-02",
|
|
260
|
+
severity: "error",
|
|
261
|
+
message: `Flag "--${flagName}" for command "${command.name}" accepts a single value but was given multiple.`,
|
|
262
|
+
fixHint: `Pass --${flagName} once, or declare the flag as kind "string[]" if multiple values are intended.`,
|
|
263
|
+
});
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
return { flags, diagnostics };
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
/**
|
|
271
|
+
* Resolve raw argv against a command's declared flag schema (merged with
|
|
272
|
+
* CLI_UNIVERSAL_FLAGS) — the standalone-CLI counterpart of the kernel's
|
|
273
|
+
* resolveCommandFlags. Schema-carrying commands (`command.flags` set,
|
|
274
|
+
* including `{}`) resolve strictly; schema-less commands keep the legacy
|
|
275
|
+
* heuristic parse. Either way, positional tokens produce KERNEL-ARG-01.
|
|
276
|
+
*/
|
|
277
|
+
export function resolveCliFlags(
|
|
278
|
+
argv: string[],
|
|
279
|
+
command: ForgeCommandDefinition,
|
|
280
|
+
): { flags: Record<string, ForgeFlagValue>; diagnostics: Diagnostic[] } {
|
|
281
|
+
if (command.flags) {
|
|
282
|
+
return resolveStrict(argv, command);
|
|
283
|
+
}
|
|
284
|
+
return parseCliArgs(argv);
|
|
285
|
+
}
|
|
@@ -19,7 +19,7 @@ Sweep batch 2: real KEY_DECISIONS on 10 files, expanded purposes (CONTRACT-02/PU
|
|
|
19
19
|
</CHANGE_SUMMARY>
|
|
20
20
|
*/
|
|
21
21
|
|
|
22
|
-
import fs from "
|
|
22
|
+
import * as fs from "../utils/sync-fs.ts";
|
|
23
23
|
import path from "node:path";
|
|
24
24
|
import { z } from "zod";
|
|
25
25
|
import { parse as parseYaml } from "yaml";
|
|
@@ -24,8 +24,7 @@ afterEach(() => {
|
|
|
24
24
|
});
|
|
25
25
|
|
|
26
26
|
function entry(id: string, title: string, body: string, layer = "L0"): string {
|
|
27
|
-
const confirmations =
|
|
28
|
-
layer === "L2" ? `lastConfirmedAt: 2026-08-03\nconfirmations: 1\n` : "";
|
|
27
|
+
const confirmations = layer === "L2" ? `lastConfirmedAt: 2026-08-03\nconfirmations: 1\n` : "";
|
|
29
28
|
return `### ${id}: ${title}\n\n\`\`\`knowledge-entry\nid: ${id}\nlayer: ${layer}\ncreated: 2026-08-03\n${confirmations}status: active\n\`\`\`\n\n${body}\n`;
|
|
30
29
|
}
|
|
31
30
|
|
|
@@ -99,11 +98,7 @@ test("merges: local entries preserved, new source entries appended", () => {
|
|
|
99
98
|
test("merge into empty template appends all source entries", () => {
|
|
100
99
|
const src = join(tempDir, "qa-log.md");
|
|
101
100
|
const dest = join(tempDir, "dest.md");
|
|
102
|
-
writeFileSync(
|
|
103
|
-
src,
|
|
104
|
-
knowledgeFile("L0", [entry("K-0001", "First", "Body one.")]),
|
|
105
|
-
"utf8",
|
|
106
|
-
);
|
|
101
|
+
writeFileSync(src, knowledgeFile("L0", [entry("K-0001", "First", "Body one.")]), "utf8");
|
|
107
102
|
// Destination is the shipped empty template (layer marker, no entries)
|
|
108
103
|
writeFileSync(dest, `<!-- knowledge-layer: L0 -->\n\n# Q&A Log (L0)\n`, "utf8");
|
|
109
104
|
|
package/src/knowledge/budgets.ts
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
*/
|
|
14
14
|
|
|
15
15
|
import path from "node:path";
|
|
16
|
-
import { readFileSync } from "
|
|
16
|
+
import { readFileSync } from "../utils/sync-fs.ts";
|
|
17
17
|
import { parse as parseYaml } from "yaml";
|
|
18
18
|
import type { ParsedKnowledgeFile, KnowledgeLayer } from "./schema.ts";
|
|
19
19
|
|
package/src/knowledge/compact.ts
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
</CHANGE_SUMMARY>
|
|
14
14
|
*/
|
|
15
15
|
|
|
16
|
-
import fs from "
|
|
16
|
+
import * as fs from "../utils/sync-fs.ts";
|
|
17
17
|
import path from "node:path";
|
|
18
18
|
import { parse as parseYaml } from "yaml";
|
|
19
19
|
import type { ParsedKnowledgeFile, KnowledgeEntry, KnowledgeEntryMeta } from "./schema.ts";
|
package/src/knowledge/parse.ts
CHANGED
package/src/knowledge/sync.ts
CHANGED
|
@@ -12,11 +12,11 @@ the synced copy with the package version.</purpose>
|
|
|
12
12
|
</non-goals>
|
|
13
13
|
</MODULE_CONTRACT>
|
|
14
14
|
<CHANGE_SUMMARY>
|
|
15
|
-
<item>
|
|
15
|
+
<item>RFC-0660: initial append-only knowledge sync — merge by entry-ID union, local wins conflicts, skip divergent non-cumulative files, recurse into declared directories.</item>
|
|
16
16
|
</CHANGE_SUMMARY>
|
|
17
17
|
*/
|
|
18
18
|
|
|
19
|
-
import fs from "
|
|
19
|
+
import * as fs from "../utils/sync-fs.ts";
|
|
20
20
|
import path from "node:path";
|
|
21
21
|
import { parseKnowledgeFile } from "./parse.ts";
|
|
22
22
|
import { serializeKnowledgeFile } from "./serialize.ts";
|
|
@@ -80,9 +80,7 @@ function planFileSync(srcPath: string, destPath: string): KnowledgeSyncPlan {
|
|
|
80
80
|
if (isCumulative(srcParsed) && isCumulative(destParsed)) {
|
|
81
81
|
const destIds = new Set(destParsed.entries.map((e) => e.meta.id));
|
|
82
82
|
const appendedEntries = srcParsed.entries.filter((e) => !destIds.has(e.meta.id));
|
|
83
|
-
const conflicts = srcParsed.entries
|
|
84
|
-
.filter((e) => destIds.has(e.meta.id))
|
|
85
|
-
.map((e) => e.meta.id);
|
|
83
|
+
const conflicts = srcParsed.entries.filter((e) => destIds.has(e.meta.id)).map((e) => e.meta.id);
|
|
86
84
|
|
|
87
85
|
const destLegacyTexts = new Set(destParsed.legacySections.map((l) => l.text.trim()));
|
|
88
86
|
const appendedLegacy = srcParsed.legacySections.filter(
|
|
@@ -17,9 +17,9 @@ Sweep batch 4: 73 Compass headers on headerless engine files (certification, com
|
|
|
17
17
|
</CHANGE_SUMMARY>
|
|
18
18
|
*/
|
|
19
19
|
|
|
20
|
-
import fs from "
|
|
20
|
+
import * as fs from "../utils/sync-fs.ts";
|
|
21
21
|
import path from "node:path";
|
|
22
|
-
import { execFileSync } from "
|
|
22
|
+
import { execFileSync } from "../utils/sync-fs.ts";
|
|
23
23
|
import { trashSync } from "../utils/fs-trash-sync.ts";
|
|
24
24
|
import type { AdapterAnalysis } from "./types.ts";
|
|
25
25
|
|
|
@@ -16,9 +16,9 @@ Sweep batch 4: 73 Compass headers on headerless engine files (certification, com
|
|
|
16
16
|
</CHANGE_SUMMARY>
|
|
17
17
|
*/
|
|
18
18
|
|
|
19
|
-
import fs from "
|
|
19
|
+
import * as fs from "../utils/sync-fs.ts";
|
|
20
20
|
import path from "node:path";
|
|
21
|
-
import { execFileSync } from "
|
|
21
|
+
import { execFileSync } from "../utils/sync-fs.ts";
|
|
22
22
|
|
|
23
23
|
export type IgnoredFileCategoryId = "config" | "data" | "runtime-state" | "cache" | "other";
|
|
24
24
|
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
</CHANGE_SUMMARY>
|
|
14
14
|
*/
|
|
15
15
|
|
|
16
|
-
import fs from "
|
|
16
|
+
import * as fs from "../../utils/sync-fs.ts";
|
|
17
17
|
import path from "node:path";
|
|
18
18
|
import type { MigrationAdapter, AdapterAnalysis, MigrationResult, Conflict } from "../types.ts";
|
|
19
19
|
import { FORGE_PROTECTED_PATHS, DEFAULT_EXCLUDE_PATTERNS } from "../types.ts";
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
</CHANGE_SUMMARY>
|
|
14
14
|
*/
|
|
15
15
|
|
|
16
|
-
import fs from "
|
|
16
|
+
import * as fs from "../../utils/sync-fs.ts";
|
|
17
17
|
import path from "node:path";
|
|
18
18
|
import type { MigrationAdapter, AdapterAnalysis, MigrationResult, Conflict } from "../types.ts";
|
|
19
19
|
import { FORGE_PROTECTED_PATHS, DEFAULT_EXCLUDE_PATTERNS } from "../types.ts";
|