@warpgogol/forge 1.2.2 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +1 -0
- package/README.md +33 -19
- package/README.uk.md +33 -19
- package/package.json +1 -1
- package/profiles/astro-typescript-turborepo.yaml +147 -0
- package/profiles/forge-shell.yaml +120 -1
- package/profiles/godot-csharp.yaml +280 -6
- package/profiles/phaser-turborepo.yaml +134 -0
- package/skills/_shared/fo-pipeline-conventions.md +55 -0
- package/skills/fo/fo-doc-audit/SKILL.md +2 -2
- package/skills/fo/fo-idea-i-just-want-to-see-the-plan/SKILL.md +2 -0
- package/skills/fo/fo-idea-i-just-want-to-see-the-result/SKILL.md +7 -3
- package/skills/fo/fo-idea-implement/SKILL.md +50 -46
- package/skills/fo/fo-session-retro/SKILL.md +2 -2
- package/dist/bin/cli.d.ts +0 -3
- package/dist/bin/cli.d.ts.map +0 -1
- package/dist/bin/cli.js +0 -292
- package/dist/bin/cli.js.map +0 -1
- package/dist/os/adr/adr.module.d.ts +0 -3
- package/dist/os/adr/adr.module.d.ts.map +0 -1
- package/dist/os/adr/adr.module.js +0 -145
- package/dist/os/adr/adr.module.js.map +0 -1
- package/dist/os/adr/frontmatter-io.d.ts +0 -12
- package/dist/os/adr/frontmatter-io.d.ts.map +0 -1
- package/dist/os/adr/frontmatter-io.js +0 -67
- package/dist/os/adr/frontmatter-io.js.map +0 -1
- package/dist/os/adr/handlers/archive.d.ts +0 -24
- package/dist/os/adr/handlers/archive.d.ts.map +0 -1
- package/dist/os/adr/handlers/archive.js +0 -194
- package/dist/os/adr/handlers/archive.js.map +0 -1
- package/dist/os/adr/handlers/implement-stamp.d.ts +0 -4
- package/dist/os/adr/handlers/implement-stamp.d.ts.map +0 -1
- package/dist/os/adr/handlers/implement-stamp.js +0 -258
- package/dist/os/adr/handlers/implement-stamp.js.map +0 -1
- package/dist/os/adr/handlers/list-create.d.ts +0 -5
- package/dist/os/adr/handlers/list-create.d.ts.map +0 -1
- package/dist/os/adr/handlers/list-create.js +0 -165
- package/dist/os/adr/handlers/list-create.js.map +0 -1
- package/dist/os/adr/handlers/validate.d.ts +0 -4
- package/dist/os/adr/handlers/validate.d.ts.map +0 -1
- package/dist/os/adr/handlers/validate.js +0 -265
- package/dist/os/adr/handlers/validate.js.map +0 -1
- package/dist/os/adr/index.d.ts +0 -8
- package/dist/os/adr/index.d.ts.map +0 -1
- package/dist/os/adr/index.js +0 -18
- package/dist/os/adr/index.js.map +0 -1
- package/dist/os/adr/types.d.ts +0 -75
- package/dist/os/adr/types.d.ts.map +0 -1
- package/dist/os/adr/types.js +0 -55
- package/dist/os/adr/types.js.map +0 -1
- package/dist/os/audit/audit.module.d.ts +0 -3
- package/dist/os/audit/audit.module.d.ts.map +0 -1
- package/dist/os/audit/audit.module.js +0 -44
- package/dist/os/audit/audit.module.js.map +0 -1
- package/dist/os/audit/frontmatter-io.d.ts +0 -12
- package/dist/os/audit/frontmatter-io.d.ts.map +0 -1
- package/dist/os/audit/frontmatter-io.js +0 -71
- package/dist/os/audit/frontmatter-io.js.map +0 -1
- package/dist/os/audit/handlers/archive.d.ts +0 -4
- package/dist/os/audit/handlers/archive.d.ts.map +0 -1
- package/dist/os/audit/handlers/archive.js +0 -207
- package/dist/os/audit/handlers/archive.js.map +0 -1
- package/dist/os/audit/index.d.ts +0 -6
- package/dist/os/audit/index.d.ts.map +0 -1
- package/dist/os/audit/index.js +0 -16
- package/dist/os/audit/index.js.map +0 -1
- package/dist/os/audit/types.d.ts +0 -12
- package/dist/os/audit/types.d.ts.map +0 -1
- package/dist/os/audit/types.js +0 -17
- package/dist/os/audit/types.js.map +0 -1
- package/dist/os/compass/compass.module.d.ts +0 -3
- package/dist/os/compass/compass.module.d.ts.map +0 -1
- package/dist/os/compass/compass.module.js +0 -166
- package/dist/os/compass/compass.module.js.map +0 -1
- package/dist/os/compass/handlers/compass-audit-handler.d.ts +0 -36
- package/dist/os/compass/handlers/compass-audit-handler.d.ts.map +0 -1
- package/dist/os/compass/handlers/compass-audit-handler.js +0 -238
- package/dist/os/compass/handlers/compass-audit-handler.js.map +0 -1
- package/dist/os/compass/handlers/compass-change-summary-handler.d.ts +0 -19
- package/dist/os/compass/handlers/compass-change-summary-handler.d.ts.map +0 -1
- package/dist/os/compass/handlers/compass-change-summary-handler.js +0 -205
- package/dist/os/compass/handlers/compass-change-summary-handler.js.map +0 -1
- package/dist/os/compass/handlers/compass-inventory-handler.d.ts +0 -28
- package/dist/os/compass/handlers/compass-inventory-handler.d.ts.map +0 -1
- package/dist/os/compass/handlers/compass-inventory-handler.js +0 -213
- package/dist/os/compass/handlers/compass-inventory-handler.js.map +0 -1
- package/dist/os/compass/handlers/compass-inventory.d.ts +0 -30
- package/dist/os/compass/handlers/compass-inventory.d.ts.map +0 -1
- package/dist/os/compass/handlers/compass-inventory.js +0 -418
- package/dist/os/compass/handlers/compass-inventory.js.map +0 -1
- package/dist/os/compass/handlers/git-revision.d.ts +0 -8
- package/dist/os/compass/handlers/git-revision.d.ts.map +0 -1
- package/dist/os/compass/handlers/git-revision.js +0 -99
- package/dist/os/compass/handlers/git-revision.js.map +0 -1
- package/dist/os/compass/handlers/resolve-scan-root.d.ts +0 -3
- package/dist/os/compass/handlers/resolve-scan-root.d.ts.map +0 -1
- package/dist/os/compass/handlers/resolve-scan-root.js +0 -57
- package/dist/os/compass/handlers/resolve-scan-root.js.map +0 -1
- package/dist/os/compass/index.d.ts +0 -8
- package/dist/os/compass/index.d.ts.map +0 -1
- package/dist/os/compass/index.js +0 -19
- package/dist/os/compass/index.js.map +0 -1
- package/dist/os/core/core.module.d.ts +0 -3
- package/dist/os/core/core.module.d.ts.map +0 -1
- package/dist/os/core/core.module.js +0 -758
- package/dist/os/core/core.module.js.map +0 -1
- package/dist/os/core/handlers/assets-check.d.ts +0 -19
- package/dist/os/core/handlers/assets-check.d.ts.map +0 -1
- package/dist/os/core/handlers/assets-check.js +0 -89
- package/dist/os/core/handlers/assets-check.js.map +0 -1
- package/dist/os/core/handlers/assets-helpers.d.ts +0 -28
- package/dist/os/core/handlers/assets-helpers.d.ts.map +0 -1
- package/dist/os/core/handlers/assets-helpers.js +0 -128
- package/dist/os/core/handlers/assets-helpers.js.map +0 -1
- package/dist/os/core/handlers/assets-list.d.ts +0 -9
- package/dist/os/core/handlers/assets-list.d.ts.map +0 -1
- package/dist/os/core/handlers/assets-list.js +0 -72
- package/dist/os/core/handlers/assets-list.js.map +0 -1
- package/dist/os/core/handlers/build.d.ts +0 -16
- package/dist/os/core/handlers/build.d.ts.map +0 -1
- package/dist/os/core/handlers/build.js +0 -123
- package/dist/os/core/handlers/build.js.map +0 -1
- package/dist/os/core/handlers/determinism-check.d.ts +0 -20
- package/dist/os/core/handlers/determinism-check.d.ts.map +0 -1
- package/dist/os/core/handlers/determinism-check.js +0 -289
- package/dist/os/core/handlers/determinism-check.js.map +0 -1
- package/dist/os/core/handlers/dev.d.ts +0 -10
- package/dist/os/core/handlers/dev.d.ts.map +0 -1
- package/dist/os/core/handlers/dev.js +0 -102
- package/dist/os/core/handlers/dev.js.map +0 -1
- package/dist/os/core/handlers/knowledge-compact.d.ts +0 -4
- package/dist/os/core/handlers/knowledge-compact.d.ts.map +0 -1
- package/dist/os/core/handlers/knowledge-compact.js +0 -198
- package/dist/os/core/handlers/knowledge-compact.js.map +0 -1
- package/dist/os/core/handlers/pinned-check.d.ts +0 -49
- package/dist/os/core/handlers/pinned-check.d.ts.map +0 -1
- package/dist/os/core/handlers/pinned-check.js +0 -159
- package/dist/os/core/handlers/pinned-check.js.map +0 -1
- package/dist/os/core/handlers/pinned-init.d.ts +0 -19
- package/dist/os/core/handlers/pinned-init.d.ts.map +0 -1
- package/dist/os/core/handlers/pinned-init.js +0 -283
- package/dist/os/core/handlers/pinned-init.js.map +0 -1
- package/dist/os/core/handlers/pinned-types.d.ts +0 -29
- package/dist/os/core/handlers/pinned-types.d.ts.map +0 -1
- package/dist/os/core/handlers/pinned-types.js +0 -16
- package/dist/os/core/handlers/pinned-types.js.map +0 -1
- package/dist/os/core/handlers/pinned-validate.d.ts +0 -4
- package/dist/os/core/handlers/pinned-validate.d.ts.map +0 -1
- package/dist/os/core/handlers/pinned-validate.js +0 -248
- package/dist/os/core/handlers/pinned-validate.js.map +0 -1
- package/dist/os/core/handlers/profile-resolve.d.ts +0 -13
- package/dist/os/core/handlers/profile-resolve.d.ts.map +0 -1
- package/dist/os/core/handlers/profile-resolve.js +0 -65
- package/dist/os/core/handlers/profile-resolve.js.map +0 -1
- package/dist/os/core/handlers/release-prepare.d.ts +0 -25
- package/dist/os/core/handlers/release-prepare.d.ts.map +0 -1
- package/dist/os/core/handlers/release-prepare.js +0 -228
- package/dist/os/core/handlers/release-prepare.js.map +0 -1
- package/dist/os/core/handlers/release-publish.d.ts +0 -13
- package/dist/os/core/handlers/release-publish.d.ts.map +0 -1
- package/dist/os/core/handlers/release-publish.js +0 -173
- package/dist/os/core/handlers/release-publish.js.map +0 -1
- package/dist/os/core/handlers/validate.d.ts +0 -26
- package/dist/os/core/handlers/validate.d.ts.map +0 -1
- package/dist/os/core/handlers/validate.js +0 -208
- package/dist/os/core/handlers/validate.js.map +0 -1
- package/dist/os/core/handlers/workspace-deps.d.ts +0 -12
- package/dist/os/core/handlers/workspace-deps.d.ts.map +0 -1
- package/dist/os/core/handlers/workspace-deps.js +0 -39
- package/dist/os/core/handlers/workspace-deps.js.map +0 -1
- package/dist/os/core/index.d.ts +0 -2
- package/dist/os/core/index.d.ts.map +0 -1
- package/dist/os/core/index.js +0 -13
- package/dist/os/core/index.js.map +0 -1
- package/dist/os/exploration/exploration.module.d.ts +0 -3
- package/dist/os/exploration/exploration.module.d.ts.map +0 -1
- package/dist/os/exploration/exploration.module.js +0 -82
- package/dist/os/exploration/exploration.module.js.map +0 -1
- package/dist/os/exploration/frontmatter-io.d.ts +0 -13
- package/dist/os/exploration/frontmatter-io.d.ts.map +0 -1
- package/dist/os/exploration/frontmatter-io.js +0 -61
- package/dist/os/exploration/frontmatter-io.js.map +0 -1
- package/dist/os/exploration/handlers/archive.d.ts +0 -4
- package/dist/os/exploration/handlers/archive.d.ts.map +0 -1
- package/dist/os/exploration/handlers/archive.js +0 -135
- package/dist/os/exploration/handlers/archive.js.map +0 -1
- package/dist/os/exploration/handlers/list.d.ts +0 -4
- package/dist/os/exploration/handlers/list.d.ts.map +0 -1
- package/dist/os/exploration/handlers/list.js +0 -56
- package/dist/os/exploration/handlers/list.js.map +0 -1
- package/dist/os/exploration/handlers/show.d.ts +0 -4
- package/dist/os/exploration/handlers/show.d.ts.map +0 -1
- package/dist/os/exploration/handlers/show.js +0 -91
- package/dist/os/exploration/handlers/show.js.map +0 -1
- package/dist/os/exploration/index.d.ts +0 -7
- package/dist/os/exploration/index.d.ts.map +0 -1
- package/dist/os/exploration/index.js +0 -17
- package/dist/os/exploration/index.js.map +0 -1
- package/dist/os/exploration/types.d.ts +0 -38
- package/dist/os/exploration/types.d.ts.map +0 -1
- package/dist/os/exploration/types.js +0 -23
- package/dist/os/exploration/types.js.map +0 -1
- package/dist/os/mission/handlers/archive.d.ts +0 -4
- package/dist/os/mission/handlers/archive.d.ts.map +0 -1
- package/dist/os/mission/handlers/archive.js +0 -356
- package/dist/os/mission/handlers/archive.js.map +0 -1
- package/dist/os/mission/index.d.ts +0 -2
- package/dist/os/mission/index.d.ts.map +0 -1
- package/dist/os/mission/index.js +0 -2
- package/dist/os/mission/index.js.map +0 -1
- package/dist/os/mission/mission.module.d.ts +0 -3
- package/dist/os/mission/mission.module.d.ts.map +0 -1
- package/dist/os/mission/mission.module.js +0 -44
- package/dist/os/mission/mission.module.js.map +0 -1
- package/dist/os/mission/types.d.ts +0 -23
- package/dist/os/mission/types.d.ts.map +0 -1
- package/dist/os/mission/types.js +0 -18
- package/dist/os/mission/types.js.map +0 -1
- package/dist/os/naming/index.d.ts +0 -3
- package/dist/os/naming/index.d.ts.map +0 -1
- package/dist/os/naming/index.js +0 -14
- package/dist/os/naming/index.js.map +0 -1
- package/dist/os/naming/naming-convention.d.ts +0 -25
- package/dist/os/naming/naming-convention.d.ts.map +0 -1
- package/dist/os/naming/naming-convention.js +0 -324
- package/dist/os/naming/naming-convention.js.map +0 -1
- package/dist/os/naming/naming.module.d.ts +0 -3
- package/dist/os/naming/naming.module.d.ts.map +0 -1
- package/dist/os/naming/naming.module.js +0 -33
- package/dist/os/naming/naming.module.js.map +0 -1
- package/dist/os/notes/index.d.ts +0 -2
- package/dist/os/notes/index.d.ts.map +0 -1
- package/dist/os/notes/index.js +0 -10
- package/dist/os/notes/index.js.map +0 -1
- package/dist/os/notes/notes.module.d.ts +0 -3
- package/dist/os/notes/notes.module.d.ts.map +0 -1
- package/dist/os/notes/notes.module.js +0 -83
- package/dist/os/notes/notes.module.js.map +0 -1
- package/dist/os/plan/frontmatter-io.d.ts +0 -12
- package/dist/os/plan/frontmatter-io.d.ts.map +0 -1
- package/dist/os/plan/frontmatter-io.js +0 -69
- package/dist/os/plan/frontmatter-io.js.map +0 -1
- package/dist/os/plan/handlers/archive.d.ts +0 -4
- package/dist/os/plan/handlers/archive.d.ts.map +0 -1
- package/dist/os/plan/handlers/archive.js +0 -206
- package/dist/os/plan/handlers/archive.js.map +0 -1
- package/dist/os/plan/index.d.ts +0 -6
- package/dist/os/plan/index.d.ts.map +0 -1
- package/dist/os/plan/index.js +0 -16
- package/dist/os/plan/index.js.map +0 -1
- package/dist/os/plan/plan.module.d.ts +0 -3
- package/dist/os/plan/plan.module.d.ts.map +0 -1
- package/dist/os/plan/plan.module.js +0 -44
- package/dist/os/plan/plan.module.js.map +0 -1
- package/dist/os/plan/types.d.ts +0 -12
- package/dist/os/plan/types.d.ts.map +0 -1
- package/dist/os/plan/types.js +0 -17
- package/dist/os/plan/types.js.map +0 -1
- package/dist/os/program/discovery.d.ts +0 -61
- package/dist/os/program/discovery.d.ts.map +0 -1
- package/dist/os/program/discovery.js +0 -236
- package/dist/os/program/discovery.js.map +0 -1
- package/dist/os/program/handlers/complete.d.ts +0 -12
- package/dist/os/program/handlers/complete.d.ts.map +0 -1
- package/dist/os/program/handlers/complete.js +0 -344
- package/dist/os/program/handlers/complete.js.map +0 -1
- package/dist/os/program/handlers/lease.d.ts +0 -13
- package/dist/os/program/handlers/lease.d.ts.map +0 -1
- package/dist/os/program/handlers/lease.js +0 -322
- package/dist/os/program/handlers/lease.js.map +0 -1
- package/dist/os/program/handlers/seal.d.ts +0 -12
- package/dist/os/program/handlers/seal.d.ts.map +0 -1
- package/dist/os/program/handlers/seal.js +0 -265
- package/dist/os/program/handlers/seal.js.map +0 -1
- package/dist/os/program/handlers/validate.d.ts +0 -14
- package/dist/os/program/handlers/validate.d.ts.map +0 -1
- package/dist/os/program/handlers/validate.js +0 -164
- package/dist/os/program/handlers/validate.js.map +0 -1
- package/dist/os/program/lease.d.ts +0 -39
- package/dist/os/program/lease.d.ts.map +0 -1
- package/dist/os/program/lease.js +0 -129
- package/dist/os/program/lease.js.map +0 -1
- package/dist/os/program/program.module.d.ts +0 -3
- package/dist/os/program/program.module.d.ts.map +0 -1
- package/dist/os/program/program.module.js +0 -201
- package/dist/os/program/program.module.js.map +0 -1
- package/dist/os/program/schemas.d.ts +0 -225
- package/dist/os/program/schemas.d.ts.map +0 -1
- package/dist/os/program/schemas.js +0 -174
- package/dist/os/program/schemas.js.map +0 -1
- package/dist/os/program/state.d.ts +0 -38
- package/dist/os/program/state.d.ts.map +0 -1
- package/dist/os/program/state.js +0 -189
- package/dist/os/program/state.js.map +0 -1
- package/dist/os/rfc/acceptance.d.ts +0 -15
- package/dist/os/rfc/acceptance.d.ts.map +0 -1
- package/dist/os/rfc/acceptance.js +0 -310
- package/dist/os/rfc/acceptance.js.map +0 -1
- package/dist/os/rfc/decision-log.d.ts +0 -6
- package/dist/os/rfc/decision-log.d.ts.map +0 -1
- package/dist/os/rfc/decision-log.js +0 -269
- package/dist/os/rfc/decision-log.js.map +0 -1
- package/dist/os/rfc/dna-trace.d.ts +0 -27
- package/dist/os/rfc/dna-trace.d.ts.map +0 -1
- package/dist/os/rfc/dna-trace.js +0 -214
- package/dist/os/rfc/dna-trace.js.map +0 -1
- package/dist/os/rfc/frontmatter-io.d.ts +0 -18
- package/dist/os/rfc/frontmatter-io.d.ts.map +0 -1
- package/dist/os/rfc/frontmatter-io.js +0 -110
- package/dist/os/rfc/frontmatter-io.js.map +0 -1
- package/dist/os/rfc/handlers/archive.d.ts +0 -25
- package/dist/os/rfc/handlers/archive.d.ts.map +0 -1
- package/dist/os/rfc/handlers/archive.js +0 -247
- package/dist/os/rfc/handlers/archive.js.map +0 -1
- package/dist/os/rfc/handlers/check.d.ts +0 -4
- package/dist/os/rfc/handlers/check.d.ts.map +0 -1
- package/dist/os/rfc/handlers/check.js +0 -195
- package/dist/os/rfc/handlers/check.js.map +0 -1
- package/dist/os/rfc/handlers/implement-stamp.d.ts +0 -4
- package/dist/os/rfc/handlers/implement-stamp.d.ts.map +0 -1
- package/dist/os/rfc/handlers/implement-stamp.js +0 -420
- package/dist/os/rfc/handlers/implement-stamp.js.map +0 -1
- package/dist/os/rfc/handlers/index-graph.d.ts +0 -13
- package/dist/os/rfc/handlers/index-graph.d.ts.map +0 -1
- package/dist/os/rfc/handlers/index-graph.js +0 -192
- package/dist/os/rfc/handlers/index-graph.js.map +0 -1
- package/dist/os/rfc/handlers/lifecycle.d.ts +0 -13
- package/dist/os/rfc/handlers/lifecycle.d.ts.map +0 -1
- package/dist/os/rfc/handlers/lifecycle.js +0 -155
- package/dist/os/rfc/handlers/lifecycle.js.map +0 -1
- package/dist/os/rfc/handlers/list-create.d.ts +0 -6
- package/dist/os/rfc/handlers/list-create.d.ts.map +0 -1
- package/dist/os/rfc/handlers/list-create.js +0 -240
- package/dist/os/rfc/handlers/list-create.js.map +0 -1
- package/dist/os/rfc/handlers/pipeline-status.d.ts +0 -26
- package/dist/os/rfc/handlers/pipeline-status.d.ts.map +0 -1
- package/dist/os/rfc/handlers/pipeline-status.js +0 -124
- package/dist/os/rfc/handlers/pipeline-status.js.map +0 -1
- package/dist/os/rfc/handlers/shared.d.ts +0 -22
- package/dist/os/rfc/handlers/shared.d.ts.map +0 -1
- package/dist/os/rfc/handlers/shared.js +0 -105
- package/dist/os/rfc/handlers/shared.js.map +0 -1
- package/dist/os/rfc/handlers/supersede-propose.d.ts +0 -4
- package/dist/os/rfc/handlers/supersede-propose.d.ts.map +0 -1
- package/dist/os/rfc/handlers/supersede-propose.js +0 -203
- package/dist/os/rfc/handlers/supersede-propose.js.map +0 -1
- package/dist/os/rfc/handlers/validate-rules.d.ts +0 -32
- package/dist/os/rfc/handlers/validate-rules.d.ts.map +0 -1
- package/dist/os/rfc/handlers/validate-rules.js +0 -590
- package/dist/os/rfc/handlers/validate-rules.js.map +0 -1
- package/dist/os/rfc/handlers/validate.d.ts +0 -4
- package/dist/os/rfc/handlers/validate.d.ts.map +0 -1
- package/dist/os/rfc/handlers/validate.js +0 -108
- package/dist/os/rfc/handlers/validate.js.map +0 -1
- package/dist/os/rfc/handlers.d.ts +0 -7
- package/dist/os/rfc/handlers.d.ts.map +0 -1
- package/dist/os/rfc/handlers.js +0 -19
- package/dist/os/rfc/handlers.js.map +0 -1
- package/dist/os/rfc/index.d.ts +0 -18
- package/dist/os/rfc/index.d.ts.map +0 -1
- package/dist/os/rfc/index.js +0 -24
- package/dist/os/rfc/index.js.map +0 -1
- package/dist/os/rfc/rfc.module.d.ts +0 -3
- package/dist/os/rfc/rfc.module.d.ts.map +0 -1
- package/dist/os/rfc/rfc.module.js +0 -366
- package/dist/os/rfc/rfc.module.js.map +0 -1
- package/dist/os/rfc/types.d.ts +0 -483
- package/dist/os/rfc/types.d.ts.map +0 -1
- package/dist/os/rfc/types.js +0 -100
- package/dist/os/rfc/types.js.map +0 -1
- package/dist/os/rfc/verification-evidence.d.ts +0 -8
- package/dist/os/rfc/verification-evidence.d.ts.map +0 -1
- package/dist/os/rfc/verification-evidence.js +0 -184
- package/dist/os/rfc/verification-evidence.js.map +0 -1
- package/dist/os/session/atif-parser.d.ts +0 -29
- package/dist/os/session/atif-parser.d.ts.map +0 -1
- package/dist/os/session/atif-parser.js +0 -140
- package/dist/os/session/atif-parser.js.map +0 -1
- package/dist/os/session/frontmatter-io.d.ts +0 -31
- package/dist/os/session/frontmatter-io.d.ts.map +0 -1
- package/dist/os/session/frontmatter-io.js +0 -146
- package/dist/os/session/frontmatter-io.js.map +0 -1
- package/dist/os/session/handlers/archive.d.ts +0 -4
- package/dist/os/session/handlers/archive.d.ts.map +0 -1
- package/dist/os/session/handlers/archive.js +0 -241
- package/dist/os/session/handlers/archive.js.map +0 -1
- package/dist/os/session/handlers/list.d.ts +0 -4
- package/dist/os/session/handlers/list.d.ts.map +0 -1
- package/dist/os/session/handlers/list.js +0 -147
- package/dist/os/session/handlers/list.js.map +0 -1
- package/dist/os/session/handlers/save.d.ts +0 -6
- package/dist/os/session/handlers/save.d.ts.map +0 -1
- package/dist/os/session/handlers/save.js +0 -297
- package/dist/os/session/handlers/save.js.map +0 -1
- package/dist/os/session/handlers/validate.d.ts +0 -4
- package/dist/os/session/handlers/validate.d.ts.map +0 -1
- package/dist/os/session/handlers/validate.js +0 -188
- package/dist/os/session/handlers/validate.js.map +0 -1
- package/dist/os/session/index.d.ts +0 -9
- package/dist/os/session/index.d.ts.map +0 -1
- package/dist/os/session/index.js +0 -20
- package/dist/os/session/index.js.map +0 -1
- package/dist/os/session/session.module.d.ts +0 -3
- package/dist/os/session/session.module.d.ts.map +0 -1
- package/dist/os/session/session.module.js +0 -115
- package/dist/os/session/session.module.js.map +0 -1
- package/dist/os/session/types.d.ts +0 -101
- package/dist/os/session/types.d.ts.map +0 -1
- package/dist/os/session/types.js +0 -52
- package/dist/os/session/types.js.map +0 -1
- package/dist/os/spec/live-spec-list.d.ts +0 -4
- package/dist/os/spec/live-spec-list.d.ts.map +0 -1
- package/dist/os/spec/live-spec-list.js +0 -64
- package/dist/os/spec/live-spec-list.js.map +0 -1
- package/dist/os/spec/live-spec-merge.d.ts +0 -4
- package/dist/os/spec/live-spec-merge.d.ts.map +0 -1
- package/dist/os/spec/live-spec-merge.js +0 -345
- package/dist/os/spec/live-spec-merge.js.map +0 -1
- package/dist/os/spec/live-spec-show.d.ts +0 -4
- package/dist/os/spec/live-spec-show.d.ts.map +0 -1
- package/dist/os/spec/live-spec-show.js +0 -99
- package/dist/os/spec/live-spec-show.js.map +0 -1
- package/dist/os/spec/live-spec-types.d.ts +0 -71
- package/dist/os/spec/live-spec-types.d.ts.map +0 -1
- package/dist/os/spec/live-spec-types.js +0 -14
- package/dist/os/spec/live-spec-types.js.map +0 -1
- package/dist/os/spec/live-spec-validate.d.ts +0 -4
- package/dist/os/spec/live-spec-validate.d.ts.map +0 -1
- package/dist/os/spec/live-spec-validate.js +0 -140
- package/dist/os/spec/live-spec-validate.js.map +0 -1
- package/dist/os/spec/spec-materialize.d.ts +0 -21
- package/dist/os/spec/spec-materialize.d.ts.map +0 -1
- package/dist/os/spec/spec-materialize.js +0 -336
- package/dist/os/spec/spec-materialize.js.map +0 -1
- package/dist/os/spec/spec-schema.d.ts +0 -126
- package/dist/os/spec/spec-schema.d.ts.map +0 -1
- package/dist/os/spec/spec-schema.js +0 -118
- package/dist/os/spec/spec-schema.js.map +0 -1
- package/dist/os/spec/spec-status.d.ts +0 -33
- package/dist/os/spec/spec-status.d.ts.map +0 -1
- package/dist/os/spec/spec-status.js +0 -222
- package/dist/os/spec/spec-status.js.map +0 -1
- package/dist/os/spec/spec-validate.d.ts +0 -4
- package/dist/os/spec/spec-validate.d.ts.map +0 -1
- package/dist/os/spec/spec-validate.js +0 -435
- package/dist/os/spec/spec-validate.js.map +0 -1
- package/dist/os/spec/spec.module.d.ts +0 -3
- package/dist/os/spec/spec.module.d.ts.map +0 -1
- package/dist/os/spec/spec.module.js +0 -119
- package/dist/os/spec/spec.module.js.map +0 -1
- package/dist/os/werkstatt/handlers/lock.d.ts +0 -10
- package/dist/os/werkstatt/handlers/lock.d.ts.map +0 -1
- package/dist/os/werkstatt/handlers/lock.js +0 -153
- package/dist/os/werkstatt/handlers/lock.js.map +0 -1
- package/dist/os/werkstatt/handlers/schema.d.ts +0 -33
- package/dist/os/werkstatt/handlers/schema.d.ts.map +0 -1
- package/dist/os/werkstatt/handlers/schema.js +0 -42
- package/dist/os/werkstatt/handlers/schema.js.map +0 -1
- package/dist/os/werkstatt/handlers/werkstatt-lock-recover.d.ts +0 -15
- package/dist/os/werkstatt/handlers/werkstatt-lock-recover.d.ts.map +0 -1
- package/dist/os/werkstatt/handlers/werkstatt-lock-recover.js +0 -144
- package/dist/os/werkstatt/handlers/werkstatt-lock-recover.js.map +0 -1
- package/dist/os/werkstatt/handlers/werkstatt-lock-status.d.ts +0 -18
- package/dist/os/werkstatt/handlers/werkstatt-lock-status.d.ts.map +0 -1
- package/dist/os/werkstatt/handlers/werkstatt-lock-status.js +0 -43
- package/dist/os/werkstatt/handlers/werkstatt-lock-status.js.map +0 -1
- package/dist/os/werkstatt/handlers/werkstatt-operation-validate.d.ts +0 -11
- package/dist/os/werkstatt/handlers/werkstatt-operation-validate.d.ts.map +0 -1
- package/dist/os/werkstatt/handlers/werkstatt-operation-validate.js +0 -79
- package/dist/os/werkstatt/handlers/werkstatt-operation-validate.js.map +0 -1
- package/dist/os/werkstatt/index.d.ts +0 -7
- package/dist/os/werkstatt/index.d.ts.map +0 -1
- package/dist/os/werkstatt/index.js +0 -18
- package/dist/os/werkstatt/index.js.map +0 -1
- package/dist/os/werkstatt/werkstatt.module.d.ts +0 -3
- package/dist/os/werkstatt/werkstatt.module.d.ts.map +0 -1
- package/dist/os/werkstatt/werkstatt.module.js +0 -58
- package/dist/os/werkstatt/werkstatt.module.js.map +0 -1
- package/dist/os/workflow/handlers.d.ts +0 -12
- package/dist/os/workflow/handlers.d.ts.map +0 -1
- package/dist/os/workflow/handlers.js +0 -254
- package/dist/os/workflow/handlers.js.map +0 -1
- package/dist/os/workflow/index.d.ts +0 -4
- package/dist/os/workflow/index.d.ts.map +0 -1
- package/dist/os/workflow/index.js +0 -18
- package/dist/os/workflow/index.js.map +0 -1
- package/dist/os/workflow/types.d.ts +0 -69
- package/dist/os/workflow/types.d.ts.map +0 -1
- package/dist/os/workflow/types.js +0 -23
- package/dist/os/workflow/types.js.map +0 -1
- package/dist/os/workflow/workflow.module.d.ts +0 -3
- package/dist/os/workflow/workflow.module.d.ts.map +0 -1
- package/dist/os/workflow/workflow.module.js +0 -48
- package/dist/os/workflow/workflow.module.js.map +0 -1
- package/dist/src/cli-output.d.ts +0 -5
- package/dist/src/cli-output.d.ts.map +0 -1
- package/dist/src/cli-output.js +0 -53
- package/dist/src/cli-output.js.map +0 -1
- package/dist/src/config/forge-config.d.ts +0 -242
- package/dist/src/config/forge-config.d.ts.map +0 -1
- package/dist/src/config/forge-config.js +0 -359
- package/dist/src/config/forge-config.js.map +0 -1
- package/dist/src/forge-module.d.ts +0 -16
- package/dist/src/forge-module.d.ts.map +0 -1
- package/dist/src/forge-module.js +0 -15
- package/dist/src/forge-module.js.map +0 -1
- package/dist/src/index.d.ts +0 -36
- package/dist/src/index.d.ts.map +0 -1
- package/dist/src/index.js +0 -56
- package/dist/src/index.js.map +0 -1
- package/dist/src/knowledge/budgets.d.ts +0 -38
- package/dist/src/knowledge/budgets.d.ts.map +0 -1
- package/dist/src/knowledge/budgets.js +0 -157
- package/dist/src/knowledge/budgets.js.map +0 -1
- package/dist/src/knowledge/compact.d.ts +0 -47
- package/dist/src/knowledge/compact.d.ts.map +0 -1
- package/dist/src/knowledge/compact.js +0 -320
- package/dist/src/knowledge/compact.js.map +0 -1
- package/dist/src/knowledge/index.d.ts +0 -7
- package/dist/src/knowledge/index.d.ts.map +0 -1
- package/dist/src/knowledge/index.js +0 -19
- package/dist/src/knowledge/index.js.map +0 -1
- package/dist/src/knowledge/parse.d.ts +0 -3
- package/dist/src/knowledge/parse.d.ts.map +0 -1
- package/dist/src/knowledge/parse.js +0 -205
- package/dist/src/knowledge/parse.js.map +0 -1
- package/dist/src/knowledge/promote.d.ts +0 -37
- package/dist/src/knowledge/promote.d.ts.map +0 -1
- package/dist/src/knowledge/promote.js +0 -120
- package/dist/src/knowledge/promote.js.map +0 -1
- package/dist/src/knowledge/schema.d.ts +0 -61
- package/dist/src/knowledge/schema.d.ts.map +0 -1
- package/dist/src/knowledge/schema.js +0 -64
- package/dist/src/knowledge/schema.js.map +0 -1
- package/dist/src/knowledge/serialize.d.ts +0 -3
- package/dist/src/knowledge/serialize.d.ts.map +0 -1
- package/dist/src/knowledge/serialize.js +0 -67
- package/dist/src/knowledge/serialize.js.map +0 -1
- package/dist/src/migration-adapters/git-utils.d.ts +0 -3
- package/dist/src/migration-adapters/git-utils.d.ts.map +0 -1
- package/dist/src/migration-adapters/git-utils.js +0 -56
- package/dist/src/migration-adapters/git-utils.js.map +0 -1
- package/dist/src/migration-adapters/ignored-files.d.ts +0 -12
- package/dist/src/migration-adapters/ignored-files.d.ts.map +0 -1
- package/dist/src/migration-adapters/ignored-files.js +0 -190
- package/dist/src/migration-adapters/ignored-files.js.map +0 -1
- package/dist/src/migration-adapters/index.d.ts +0 -8
- package/dist/src/migration-adapters/index.d.ts.map +0 -1
- package/dist/src/migration-adapters/index.js +0 -17
- package/dist/src/migration-adapters/index.js.map +0 -1
- package/dist/src/migration-adapters/node-typescript-pnpm/index.d.ts +0 -3
- package/dist/src/migration-adapters/node-typescript-pnpm/index.d.ts.map +0 -1
- package/dist/src/migration-adapters/node-typescript-pnpm/index.js +0 -141
- package/dist/src/migration-adapters/node-typescript-pnpm/index.js.map +0 -1
- package/dist/src/migration-adapters/phaser-pnpm/index.d.ts +0 -3
- package/dist/src/migration-adapters/phaser-pnpm/index.d.ts.map +0 -1
- package/dist/src/migration-adapters/phaser-pnpm/index.js +0 -142
- package/dist/src/migration-adapters/phaser-pnpm/index.js.map +0 -1
- package/dist/src/migration-adapters/registry.d.ts +0 -6
- package/dist/src/migration-adapters/registry.d.ts.map +0 -1
- package/dist/src/migration-adapters/registry.js +0 -55
- package/dist/src/migration-adapters/registry.js.map +0 -1
- package/dist/src/migration-adapters/types.d.ts +0 -35
- package/dist/src/migration-adapters/types.d.ts.map +0 -1
- package/dist/src/migration-adapters/types.js +0 -31
- package/dist/src/migration-adapters/types.js.map +0 -1
- package/dist/src/onboarding/agents-generate.d.ts +0 -30
- package/dist/src/onboarding/agents-generate.d.ts.map +0 -1
- package/dist/src/onboarding/agents-generate.js +0 -352
- package/dist/src/onboarding/agents-generate.js.map +0 -1
- package/dist/src/onboarding/create.d.ts +0 -12
- package/dist/src/onboarding/create.d.ts.map +0 -1
- package/dist/src/onboarding/create.js +0 -318
- package/dist/src/onboarding/create.js.map +0 -1
- package/dist/src/onboarding/doctor.d.ts +0 -45
- package/dist/src/onboarding/doctor.d.ts.map +0 -1
- package/dist/src/onboarding/doctor.js +0 -1108
- package/dist/src/onboarding/doctor.js.map +0 -1
- package/dist/src/onboarding/init.d.ts +0 -32
- package/dist/src/onboarding/init.d.ts.map +0 -1
- package/dist/src/onboarding/init.js +0 -291
- package/dist/src/onboarding/init.js.map +0 -1
- package/dist/src/onboarding/invariant-engine.d.ts +0 -17
- package/dist/src/onboarding/invariant-engine.d.ts.map +0 -1
- package/dist/src/onboarding/invariant-engine.js +0 -416
- package/dist/src/onboarding/invariant-engine.js.map +0 -1
- package/dist/src/onboarding/memory-scaffold.d.ts +0 -18
- package/dist/src/onboarding/memory-scaffold.d.ts.map +0 -1
- package/dist/src/onboarding/memory-scaffold.js +0 -151
- package/dist/src/onboarding/memory-scaffold.js.map +0 -1
- package/dist/src/onboarding/nested-agents-generate.d.ts +0 -18
- package/dist/src/onboarding/nested-agents-generate.d.ts.map +0 -1
- package/dist/src/onboarding/nested-agents-generate.js +0 -69
- package/dist/src/onboarding/nested-agents-generate.js.map +0 -1
- package/dist/src/onboarding/nested-agents-templates.d.ts +0 -26
- package/dist/src/onboarding/nested-agents-templates.d.ts.map +0 -1
- package/dist/src/onboarding/nested-agents-templates.js +0 -178
- package/dist/src/onboarding/nested-agents-templates.js.map +0 -1
- package/dist/src/onboarding/profile-validate.d.ts +0 -13
- package/dist/src/onboarding/profile-validate.d.ts.map +0 -1
- package/dist/src/onboarding/profile-validate.js +0 -109
- package/dist/src/onboarding/profile-validate.js.map +0 -1
- package/dist/src/onboarding/scaffold-project.d.ts +0 -12
- package/dist/src/onboarding/scaffold-project.d.ts.map +0 -1
- package/dist/src/onboarding/scaffold-project.js +0 -248
- package/dist/src/onboarding/scaffold-project.js.map +0 -1
- package/dist/src/onboarding/scaffold.d.ts +0 -15
- package/dist/src/onboarding/scaffold.d.ts.map +0 -1
- package/dist/src/onboarding/scaffold.js +0 -120
- package/dist/src/onboarding/scaffold.js.map +0 -1
- package/dist/src/onboarding/upgrade.d.ts +0 -25
- package/dist/src/onboarding/upgrade.d.ts.map +0 -1
- package/dist/src/onboarding/upgrade.js +0 -391
- package/dist/src/onboarding/upgrade.js.map +0 -1
- package/dist/src/onboarding/workspace-discovery.d.ts +0 -11
- package/dist/src/onboarding/workspace-discovery.d.ts.map +0 -1
- package/dist/src/onboarding/workspace-discovery.js +0 -138
- package/dist/src/onboarding/workspace-discovery.js.map +0 -1
- package/dist/src/profiles/profile-schema.d.ts +0 -351
- package/dist/src/profiles/profile-schema.d.ts.map +0 -1
- package/dist/src/profiles/profile-schema.js +0 -201
- package/dist/src/profiles/profile-schema.js.map +0 -1
- package/dist/src/profiles/stack-profile.d.ts +0 -168
- package/dist/src/profiles/stack-profile.d.ts.map +0 -1
- package/dist/src/profiles/stack-profile.js +0 -144
- package/dist/src/profiles/stack-profile.js.map +0 -1
- package/dist/src/profiles/terminology-utils.d.ts +0 -8
- package/dist/src/profiles/terminology-utils.d.ts.map +0 -1
- package/dist/src/profiles/terminology-utils.js +0 -31
- package/dist/src/profiles/terminology-utils.js.map +0 -1
- package/dist/src/registry.d.ts +0 -38
- package/dist/src/registry.d.ts.map +0 -1
- package/dist/src/registry.js +0 -135
- package/dist/src/registry.js.map +0 -1
- package/dist/src/skill-schema.d.ts +0 -30
- package/dist/src/skill-schema.d.ts.map +0 -1
- package/dist/src/skill-schema.js +0 -34
- package/dist/src/skill-schema.js.map +0 -1
- package/dist/src/types.d.ts +0 -152
- package/dist/src/types.d.ts.map +0 -1
- package/dist/src/types.js +0 -17
- package/dist/src/types.js.map +0 -1
- package/dist/src/utils/fs-atomic.d.ts +0 -7
- package/dist/src/utils/fs-atomic.d.ts.map +0 -1
- package/dist/src/utils/fs-atomic.js +0 -81
- package/dist/src/utils/fs-atomic.js.map +0 -1
- package/dist/src/utils/fs-idempotent.d.ts +0 -2
- package/dist/src/utils/fs-idempotent.d.ts.map +0 -1
- package/dist/src/utils/fs-idempotent.js +0 -39
- package/dist/src/utils/fs-idempotent.js.map +0 -1
- package/dist/src/utils/fs-trash-sync.d.ts +0 -2
- package/dist/src/utils/fs-trash-sync.d.ts.map +0 -1
- package/dist/src/utils/fs-trash-sync.js +0 -34
- package/dist/src/utils/fs-trash-sync.js.map +0 -1
- package/dist/src/utils/fs-trash.d.ts +0 -2
- package/dist/src/utils/fs-trash.d.ts.map +0 -1
- package/dist/src/utils/fs-trash.js +0 -24
- package/dist/src/utils/fs-trash.js.map +0 -1
- package/dist/src/utils/fs.d.ts +0 -8
- package/dist/src/utils/fs.d.ts.map +0 -1
- package/dist/src/utils/fs.js +0 -60
- package/dist/src/utils/fs.js.map +0 -1
- package/dist/src/utils/generated-marker.d.ts +0 -21
- package/dist/src/utils/generated-marker.d.ts.map +0 -1
- package/dist/src/utils/generated-marker.js +0 -128
- package/dist/src/utils/generated-marker.js.map +0 -1
- package/dist/src/utils/hash.d.ts +0 -2
- package/dist/src/utils/hash.d.ts.map +0 -1
- package/dist/src/utils/hash.js +0 -18
- package/dist/src/utils/hash.js.map +0 -1
- package/dist/src/utils/index.d.ts +0 -9
- package/dist/src/utils/index.d.ts.map +0 -1
- package/dist/src/utils/index.js +0 -21
- package/dist/src/utils/index.js.map +0 -1
- package/dist/src/utils/string-utils.d.ts +0 -2
- package/dist/src/utils/string-utils.d.ts.map +0 -1
- package/dist/src/utils/string-utils.js +0 -19
- package/dist/src/utils/string-utils.js.map +0 -1
- package/dist/src/validators/note-frontmatter-validate.d.ts +0 -20
- package/dist/src/validators/note-frontmatter-validate.d.ts.map +0 -1
- package/dist/src/validators/note-frontmatter-validate.js +0 -117
- package/dist/src/validators/note-frontmatter-validate.js.map +0 -1
- package/dist/src/validators/note-link-validate.d.ts +0 -21
- package/dist/src/validators/note-link-validate.d.ts.map +0 -1
- package/dist/src/validators/note-link-validate.js +0 -121
- package/dist/src/validators/note-link-validate.js.map +0 -1
- package/dist/src/validators/note-orphan-detect.d.ts +0 -19
- package/dist/src/validators/note-orphan-detect.d.ts.map +0 -1
- package/dist/src/validators/note-orphan-detect.js +0 -123
- package/dist/src/validators/note-orphan-detect.js.map +0 -1
- package/dist/src/validators/port-validate.d.ts +0 -12
- package/dist/src/validators/port-validate.d.ts.map +0 -1
- package/dist/src/validators/port-validate.js +0 -78
- package/dist/src/validators/port-validate.js.map +0 -1
- package/dist/src/validators/skill-validate.d.ts +0 -29
- package/dist/src/validators/skill-validate.d.ts.map +0 -1
- package/dist/src/validators/skill-validate.js +0 -689
- package/dist/src/validators/skill-validate.js.map +0 -1
|
@@ -1,324 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
<MODULE_CONTRACT>
|
|
3
|
-
<purpose>naming.convention.lint — validates that every filename in registered repo roots
|
|
4
|
-
uses kebab-case (lowercase letters, digits, hyphens only), with documented exemptions.</purpose>
|
|
5
|
-
<non-goals>
|
|
6
|
-
<item>Do not introduce app-specific runtime composition or deployment behavior into this reusable package source file.</item>
|
|
7
|
-
</non-goals>
|
|
8
|
-
</MODULE_CONTRACT>
|
|
9
|
-
<CHANGE_SUMMARY>
|
|
10
|
-
<item>RFC-0303: split out of structure.ts (Phase 3 file-size split).</item>
|
|
11
|
-
<item>RFC-0360: extend scan roots from apps/ and packages/ to the whole repo.</item>
|
|
12
|
-
</CHANGE_SUMMARY>
|
|
13
|
-
*/
|
|
14
|
-
import { basename, join, relative } from "node:path";
|
|
15
|
-
import { readFile } from "node:fs/promises";
|
|
16
|
-
import { readdirSync } from "node:fs";
|
|
17
|
-
import { collectFiles } from "../../src/utils/fs.js";
|
|
18
|
-
// @ai-invariant The exception rules below are the canonical source for naming.convention.lint.
|
|
19
|
-
// Update naming-conventions.md (packages/site-kernel/docs/) when these rules change.
|
|
20
|
-
// RFC-0360: Registered recursive roots — scanned recursively for filename violations.
|
|
21
|
-
const NAMING_CONVENTION_RECURSIVE_ROOTS = [
|
|
22
|
-
"apps",
|
|
23
|
-
"packages",
|
|
24
|
-
"services",
|
|
25
|
-
"docs",
|
|
26
|
-
"integrations",
|
|
27
|
-
"onboarding",
|
|
28
|
-
"fleet",
|
|
29
|
-
"hooks",
|
|
30
|
-
"tools",
|
|
31
|
-
"scripts",
|
|
32
|
-
"systems",
|
|
33
|
-
"tsconfig",
|
|
34
|
-
];
|
|
35
|
-
// RFC-0360: Registered ephemeral roots — root name validated, contents skipped unless --include-ignored.
|
|
36
|
-
const NAMING_CONVENTION_EPHEMERAL_ROOTS = ["missions", "releases", "agents", ".werkstatt"];
|
|
37
|
-
// RFC-0360: Tool/cache directories that are never scanned at any level.
|
|
38
|
-
const NAMING_CONVENTION_IGNORED_TOP_LEVEL = new Set([
|
|
39
|
-
"node_modules",
|
|
40
|
-
".git",
|
|
41
|
-
".turbo",
|
|
42
|
-
".astro",
|
|
43
|
-
".wrangler",
|
|
44
|
-
".vscode",
|
|
45
|
-
".idea",
|
|
46
|
-
"coverage",
|
|
47
|
-
".changelog-system",
|
|
48
|
-
".codex-runlogs",
|
|
49
|
-
".agents",
|
|
50
|
-
".claude",
|
|
51
|
-
".github",
|
|
52
|
-
".opencode",
|
|
53
|
-
".windsurf",
|
|
54
|
-
".cache",
|
|
55
|
-
"tmp",
|
|
56
|
-
]);
|
|
57
|
-
// Tool-mandated filenames exempt from kebab-case (Docker, Caddy use these exact names).
|
|
58
|
-
const NAMING_CONVENTION_TOOL_MANDATED = new Set(["Dockerfile", "Caddyfile"]);
|
|
59
|
-
const NAMING_CONVENTION_IGNORED_DIRS = new Set([
|
|
60
|
-
"node_modules",
|
|
61
|
-
"dist",
|
|
62
|
-
".git",
|
|
63
|
-
".turbo",
|
|
64
|
-
".astro",
|
|
65
|
-
".wrangler",
|
|
66
|
-
".vscode",
|
|
67
|
-
".idea",
|
|
68
|
-
"coverage",
|
|
69
|
-
"spec",
|
|
70
|
-
"todo",
|
|
71
|
-
// Generated, gitignored media-artifact dirs under public/ — their filenames are owned by the
|
|
72
|
-
// generators, not authored: RFC-0204 responsive image variants (_img) and RFC-0210 video
|
|
73
|
-
// variants / HLS segments (_video, e.g. "1080p_000.ts", where ".ts" is MPEG-TS, not TypeScript).
|
|
74
|
-
"_img",
|
|
75
|
-
"_video",
|
|
76
|
-
// DB migration dirs follow the ordered tool convention "NNN_name.sql" (Supabase/Postgres,
|
|
77
|
-
// RFC-0186) — the numeric-underscore prefix is required for ordering and is not authored prose.
|
|
78
|
-
"migrations",
|
|
79
|
-
]);
|
|
80
|
-
const NAMING_CONVENTION_EXEMPT_KEYWORDS = ["config", "module"];
|
|
81
|
-
// Set of directory paths that are exempt from naming convention (generated files)
|
|
82
|
-
const NAMING_CONVENTION_EXEMPT_DIRS = new Set([
|
|
83
|
-
"components/icons/gen", // Generated icon components — naming controlled by generator
|
|
84
|
-
]);
|
|
85
|
-
/**
|
|
86
|
-
* Returns true when a filename is exempt from kebab-case enforcement.
|
|
87
|
-
*
|
|
88
|
-
* Exemptions (see naming-conventions.md for the canonical description):
|
|
89
|
-
* 1. File name starts with a dot (.env, .gitignore, ...).
|
|
90
|
-
* 2. File name starts with an underscore (_shared.ts, _headers, etc.).
|
|
91
|
-
* 3. File name is ALLCAPS (AGENTS.md, README.md, LICENSE, etc.).
|
|
92
|
-
* 4. File name (full, including extension) contains "config" or "module".
|
|
93
|
-
* 5. File is in an exempt directory (components/icons/gen — generated files).
|
|
94
|
-
* 6. Base icon component (LordIconBase.astro) — used by generated icon components.
|
|
95
|
-
*/
|
|
96
|
-
function isNamingExempt(fileName, filePath) {
|
|
97
|
-
if (fileName.startsWith("."))
|
|
98
|
-
return true;
|
|
99
|
-
if (fileName.startsWith("_"))
|
|
100
|
-
return true;
|
|
101
|
-
if (NAMING_CONVENTION_TOOL_MANDATED.has(fileName))
|
|
102
|
-
return true;
|
|
103
|
-
// SHOUTY_SNAKE_CASE files are exempt (AGENTS.md, README.md, LICENSE,
|
|
104
|
-
// ICONS_GENERATE.md, etc.). RFC-0132 extension: the check uses the FIRST
|
|
105
|
-
// stem segment so multi-segment names like AGENTS.template.md and
|
|
106
|
-
// SCHEMA.draft.md inherit the exemption from their canonical first segment
|
|
107
|
-
// — this is intentional for template files whose generated artifact carries
|
|
108
|
-
// the canonical name (AGENTS.template.md → AGENTS.md after agents.generate).
|
|
109
|
-
const firstDotIndex = fileName.indexOf(".");
|
|
110
|
-
const firstStem = firstDotIndex > 0 ? fileName.slice(0, firstDotIndex) : fileName;
|
|
111
|
-
if (firstStem.length > 0 && /^[A-Z]+(_[A-Z]+)*$/.test(firstStem))
|
|
112
|
-
return true;
|
|
113
|
-
for (const keyword of NAMING_CONVENTION_EXEMPT_KEYWORDS) {
|
|
114
|
-
if (fileName.includes(keyword))
|
|
115
|
-
return true;
|
|
116
|
-
}
|
|
117
|
-
// Check if file is in an exempt directory
|
|
118
|
-
if (filePath) {
|
|
119
|
-
for (const exemptDir of NAMING_CONVENTION_EXEMPT_DIRS) {
|
|
120
|
-
if (filePath.includes(exemptDir))
|
|
121
|
-
return true;
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
return false;
|
|
125
|
-
}
|
|
126
|
-
/**
|
|
127
|
-
* Returns true when a filename violates the kebab-case convention.
|
|
128
|
-
* Violations: underscores OR mixed-case (PascalCase, camelCase).
|
|
129
|
-
* Note: ALLCAPS files are exempt, not violations.
|
|
130
|
-
* Only called when the file is not already exempt.
|
|
131
|
-
*/
|
|
132
|
-
function hasNamingViolation(fileName) {
|
|
133
|
-
const dotIndex = fileName.lastIndexOf(".");
|
|
134
|
-
const stem = dotIndex > 0 ? fileName.slice(0, dotIndex) : fileName;
|
|
135
|
-
// kebab-case allows only lowercase letters, digits, and hyphens
|
|
136
|
-
// Violations: underscores OR mixed-case (contains both upper and lower)
|
|
137
|
-
if (stem.includes("_"))
|
|
138
|
-
return true;
|
|
139
|
-
// Mixed case: has at least one uppercase AND at least one lowercase
|
|
140
|
-
const hasUpper = /[A-Z]/.test(stem);
|
|
141
|
-
const hasLower = /[a-z]/.test(stem);
|
|
142
|
-
return hasUpper && hasLower;
|
|
143
|
-
}
|
|
144
|
-
/**
|
|
145
|
-
* Reads a gitignore-style file and returns a set of simple (no-wildcard) patterns.
|
|
146
|
-
* Patterns containing `*` or `?` are skipped — too complex without a full gitignore engine.
|
|
147
|
-
*/
|
|
148
|
-
async function readSimpleIgnorePatterns(filePath) {
|
|
149
|
-
const patterns = new Set();
|
|
150
|
-
try {
|
|
151
|
-
const content = await readFile(filePath, "utf8");
|
|
152
|
-
for (const rawLine of content.split("\n")) {
|
|
153
|
-
const line = rawLine.trim();
|
|
154
|
-
if (!line || line.startsWith("#"))
|
|
155
|
-
continue;
|
|
156
|
-
if (line.includes("*") || line.includes("?"))
|
|
157
|
-
continue;
|
|
158
|
-
patterns.add(line.replace(/^\//, "").replace(/\/$/, ""));
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
catch {
|
|
162
|
-
// File absent — silently skip
|
|
163
|
-
}
|
|
164
|
-
return patterns;
|
|
165
|
-
}
|
|
166
|
-
function isSegmentIgnored(relPath, ignorePatterns) {
|
|
167
|
-
for (const segment of relPath.split("/")) {
|
|
168
|
-
if (ignorePatterns.has(segment))
|
|
169
|
-
return true;
|
|
170
|
-
}
|
|
171
|
-
return false;
|
|
172
|
-
}
|
|
173
|
-
async function collectAllFilesForNaming(dirPath, ignorePatterns) {
|
|
174
|
-
return collectFiles(dirPath, {
|
|
175
|
-
ignore: (name) => name.startsWith(".") ||
|
|
176
|
-
NAMING_CONVENTION_IGNORED_DIRS.has(name) ||
|
|
177
|
-
ignorePatterns.has(name) ||
|
|
178
|
-
ignorePatterns.has(`${name}/`),
|
|
179
|
-
});
|
|
180
|
-
}
|
|
181
|
-
function isRegisteredOrIgnoredTopLevel(name) {
|
|
182
|
-
return (NAMING_CONVENTION_RECURSIVE_ROOTS.includes(name) ||
|
|
183
|
-
NAMING_CONVENTION_EPHEMERAL_ROOTS.includes(name) ||
|
|
184
|
-
NAMING_CONVENTION_IGNORED_TOP_LEVEL.has(name));
|
|
185
|
-
}
|
|
186
|
-
function resolveScanPlan(repoRoot) {
|
|
187
|
-
let entries;
|
|
188
|
-
try {
|
|
189
|
-
entries = readdirSync(repoRoot, { withFileTypes: true });
|
|
190
|
-
}
|
|
191
|
-
catch {
|
|
192
|
-
return {
|
|
193
|
-
recursiveRoots: [...NAMING_CONVENTION_RECURSIVE_ROOTS],
|
|
194
|
-
ephemeralRoots: [...NAMING_CONVENTION_EPHEMERAL_ROOTS],
|
|
195
|
-
unknown: [],
|
|
196
|
-
};
|
|
197
|
-
}
|
|
198
|
-
const topLevelDirs = entries
|
|
199
|
-
.filter((e) => e.isDirectory() && !e.isSymbolicLink())
|
|
200
|
-
.map((e) => e.name);
|
|
201
|
-
const unknown = topLevelDirs.filter((name) => !isRegisteredOrIgnoredTopLevel(name));
|
|
202
|
-
const recursiveRoots = NAMING_CONVENTION_RECURSIVE_ROOTS.filter((name) => topLevelDirs.includes(name));
|
|
203
|
-
const ephemeralRoots = NAMING_CONVENTION_EPHEMERAL_ROOTS.filter((name) => topLevelDirs.includes(name));
|
|
204
|
-
return { recursiveRoots, ephemeralRoots, unknown };
|
|
205
|
-
}
|
|
206
|
-
/**
|
|
207
|
-
* Validates that all filenames in registered repo roots use kebab-case.
|
|
208
|
-
*
|
|
209
|
-
* Rule: filenames must use only lowercase letters, digits, and hyphens.
|
|
210
|
-
* Violations: underscores, uppercase letters (PascalCase, camelCase, ALLCAPS).
|
|
211
|
-
*
|
|
212
|
-
* Exceptions (not flagged):
|
|
213
|
-
* - Files starting with a dot (.env, .gitignore)
|
|
214
|
-
* - Files starting with an underscore (_shared.ts, _headers, _redirects, _routes.json)
|
|
215
|
-
* - Tool-mandated filenames (Dockerfile, Caddyfile)
|
|
216
|
-
* - Files containing "config" or "module" in their name (astro.config.mjs, check.module.ts)
|
|
217
|
-
* - Files in directories starting with a dot (.git, .astro, .vscode)
|
|
218
|
-
* - Files excluded by .gitignore or .windsurfignore (simple non-wildcard patterns only)
|
|
219
|
-
*
|
|
220
|
-
* See packages/site-kernel/docs/naming-conventions.md — "Global Rule" section.
|
|
221
|
-
*/
|
|
222
|
-
export async function runNamingConventionLint(input, context) {
|
|
223
|
-
const workspaceRoot = context.workspaceRoot;
|
|
224
|
-
const includeIgnored = input.flags["include-ignored"] === true;
|
|
225
|
-
const gitignorePatterns = await readSimpleIgnorePatterns(join(workspaceRoot, ".gitignore"));
|
|
226
|
-
const windsurfignorePatterns = await readSimpleIgnorePatterns(join(workspaceRoot, ".windsurfignore"));
|
|
227
|
-
const ignorePatterns = new Set([...gitignorePatterns, ...windsurfignorePatterns]);
|
|
228
|
-
let violations = 0;
|
|
229
|
-
let checkedFiles = 0;
|
|
230
|
-
// App-scoped mode: scan only the app directory
|
|
231
|
-
if (context.site) {
|
|
232
|
-
const files = await collectAllFilesForNaming(context.site.directory, ignorePatterns);
|
|
233
|
-
for (const filePath of files) {
|
|
234
|
-
const fileName = basename(filePath);
|
|
235
|
-
const relPath = relative(workspaceRoot, filePath).replace(/\\/g, "/");
|
|
236
|
-
if (isNamingExempt(fileName, relPath))
|
|
237
|
-
continue;
|
|
238
|
-
if (isSegmentIgnored(relPath, ignorePatterns))
|
|
239
|
-
continue;
|
|
240
|
-
checkedFiles += 1;
|
|
241
|
-
if (hasNamingViolation(fileName)) {
|
|
242
|
-
context.logger.error(`${relPath}: "${fileName}" violates kebab-case — use only lowercase letters, digits, and hyphens`);
|
|
243
|
-
violations += 1;
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
return {
|
|
247
|
-
data: { violations, checkedFiles },
|
|
248
|
-
exitCode: violations > 0 ? 1 : 0,
|
|
249
|
-
summary: violations > 0
|
|
250
|
-
? undefined
|
|
251
|
-
: `[naming.convention] OK (${checkedFiles} non-exempt files checked)`,
|
|
252
|
-
};
|
|
253
|
-
}
|
|
254
|
-
// Workspace-scoped mode: resolve scan plan from filesystem
|
|
255
|
-
const scanPlan = resolveScanPlan(workspaceRoot);
|
|
256
|
-
// Report unknown top-level directories
|
|
257
|
-
for (const unknownDir of scanPlan.unknown) {
|
|
258
|
-
context.logger.error(`[naming.convention.lint] unknown top-level directory '${unknownDir}'; register it or remove it`);
|
|
259
|
-
violations += 1;
|
|
260
|
-
}
|
|
261
|
-
// Validate ephemeral root names (kebab-case check on the root name itself)
|
|
262
|
-
for (const ephemeral of scanPlan.ephemeralRoots) {
|
|
263
|
-
const name = ephemeral.startsWith(".") ? ephemeral.slice(1) : ephemeral;
|
|
264
|
-
if (name && !name.includes("_") && !(/[A-Z]/.test(name) && /[a-z]/.test(name))) {
|
|
265
|
-
// ok
|
|
266
|
-
}
|
|
267
|
-
else if (name && (name.includes("_") || (/[A-Z]/.test(name) && /[a-z]/.test(name)))) {
|
|
268
|
-
context.logger.error(`[naming.convention.lint] top-level directory '${ephemeral}' violates naming convention`);
|
|
269
|
-
violations += 1;
|
|
270
|
-
}
|
|
271
|
-
}
|
|
272
|
-
// Scan recursive roots
|
|
273
|
-
for (const rootName of scanPlan.recursiveRoots) {
|
|
274
|
-
const scanDir = join(workspaceRoot, rootName);
|
|
275
|
-
const files = await collectAllFilesForNaming(scanDir, ignorePatterns);
|
|
276
|
-
for (const filePath of files) {
|
|
277
|
-
const fileName = basename(filePath);
|
|
278
|
-
const relPath = relative(workspaceRoot, filePath).replace(/\\/g, "/");
|
|
279
|
-
if (isNamingExempt(fileName, relPath))
|
|
280
|
-
continue;
|
|
281
|
-
if (isSegmentIgnored(relPath, ignorePatterns))
|
|
282
|
-
continue;
|
|
283
|
-
checkedFiles += 1;
|
|
284
|
-
if (hasNamingViolation(fileName)) {
|
|
285
|
-
context.logger.error(`${relPath}: "${fileName}" violates kebab-case — use only lowercase letters, digits, and hyphens`);
|
|
286
|
-
violations += 1;
|
|
287
|
-
}
|
|
288
|
-
}
|
|
289
|
-
}
|
|
290
|
-
// Scan ephemeral root contents only when --include-ignored is passed
|
|
291
|
-
if (includeIgnored) {
|
|
292
|
-
for (const rootName of scanPlan.ephemeralRoots) {
|
|
293
|
-
const scanDir = join(workspaceRoot, rootName);
|
|
294
|
-
const files = await collectAllFilesForNaming(scanDir, ignorePatterns);
|
|
295
|
-
for (const filePath of files) {
|
|
296
|
-
const fileName = basename(filePath);
|
|
297
|
-
const relPath = relative(workspaceRoot, filePath).replace(/\\/g, "/");
|
|
298
|
-
if (isNamingExempt(fileName, relPath))
|
|
299
|
-
continue;
|
|
300
|
-
if (isSegmentIgnored(relPath, ignorePatterns))
|
|
301
|
-
continue;
|
|
302
|
-
checkedFiles += 1;
|
|
303
|
-
if (hasNamingViolation(fileName)) {
|
|
304
|
-
context.logger.error(`${relPath}: "${fileName}" violates kebab-case — use only lowercase letters, digits, and hyphens`);
|
|
305
|
-
violations += 1;
|
|
306
|
-
}
|
|
307
|
-
}
|
|
308
|
-
}
|
|
309
|
-
}
|
|
310
|
-
return {
|
|
311
|
-
data: {
|
|
312
|
-
violations,
|
|
313
|
-
checkedFiles,
|
|
314
|
-
scannedRoots: scanPlan.recursiveRoots,
|
|
315
|
-
ephemeralRootsSkipped: includeIgnored ? [] : scanPlan.ephemeralRoots,
|
|
316
|
-
unknownTopLevelDirs: scanPlan.unknown,
|
|
317
|
-
},
|
|
318
|
-
exitCode: violations > 0 ? 1 : 0,
|
|
319
|
-
summary: violations > 0
|
|
320
|
-
? undefined
|
|
321
|
-
: `[naming.convention] OK (${checkedFiles} non-exempt files checked)`,
|
|
322
|
-
};
|
|
323
|
-
}
|
|
324
|
-
//# sourceMappingURL=naming-convention.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"naming-convention.js","sourceRoot":"","sources":["../../../os/naming/naming-convention.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"naming.module.d.ts","sourceRoot":"","sources":["../../../os/naming/naming.module.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAE7D,eAAO,MAAM,iBAAiB,EAAE,WAqB/B,CAAC"}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
<MODULE_CONTRACT>
|
|
3
|
-
<purpose>Register the forge naming convention lint command with the Site OS kernel registry.</purpose>
|
|
4
|
-
<non-goals>
|
|
5
|
-
<item>Do not register project-specific naming commands (naming.pages.lint, etc.) — those stay in site-kernel-checks.</item>
|
|
6
|
-
</non-goals>
|
|
7
|
-
</MODULE_CONTRACT>
|
|
8
|
-
<CHANGE_SUMMARY>
|
|
9
|
-
<item>RFC-0374: initial forgeNamingModule registering naming.convention.lint.</item>
|
|
10
|
-
</CHANGE_SUMMARY>
|
|
11
|
-
*/
|
|
12
|
-
export const forgeNamingModule = {
|
|
13
|
-
name: "forge-naming",
|
|
14
|
-
version: "0.1.0",
|
|
15
|
-
async register(registry) {
|
|
16
|
-
const { runNamingConventionLint } = await import("./naming-convention.js");
|
|
17
|
-
registry.registerCommand({
|
|
18
|
-
name: "naming.convention.lint",
|
|
19
|
-
description: "Validate all filenames use kebab-case (no underscores) across registered workspace roots.",
|
|
20
|
-
scope: "workspace",
|
|
21
|
-
supportsAllSites: true,
|
|
22
|
-
flags: {
|
|
23
|
-
"include-ignored": {
|
|
24
|
-
kind: "boolean",
|
|
25
|
-
description: "Also scan files ignored by .gitignore or .windsurfignore.",
|
|
26
|
-
},
|
|
27
|
-
},
|
|
28
|
-
reads: ["packages/**/*.{ts,tsx}", "apps/**/*.{ts,tsx}", "services/**/*.{ts,tsx}"],
|
|
29
|
-
execute: runNamingConventionLint,
|
|
30
|
-
});
|
|
31
|
-
},
|
|
32
|
-
};
|
|
33
|
-
//# sourceMappingURL=naming.module.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"naming.module.js","sourceRoot":"","sources":["../../../os/naming/naming.module.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;EAUE;AAIF,MAAM,CAAC,MAAM,iBAAiB,GAAgB;IAC5C,IAAI,EAAE,cAAc;IACpB,OAAO,EAAE,OAAO;IAChB,KAAK,CAAC,QAAQ,CAAC,QAAQ;QACrB,MAAM,EAAE,uBAAuB,EAAE,GAAG,MAAM,MAAM,CAAC,wBAAwB,CAAC,CAAC;QAC3E,QAAQ,CAAC,eAAe,CAAC;YACvB,IAAI,EAAE,wBAAwB;YAC9B,WAAW,EACT,2FAA2F;YAC7F,KAAK,EAAE,WAAW;YAClB,gBAAgB,EAAE,IAAI;YACtB,KAAK,EAAE;gBACL,iBAAiB,EAAE;oBACjB,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,2DAA2D;iBACzE;aACF;YACD,KAAK,EAAE,CAAC,wBAAwB,EAAE,oBAAoB,EAAE,wBAAwB,CAAC;YACjF,OAAO,EAAE,uBAAuB;SACjC,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
|
package/dist/os/notes/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../os/notes/index.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC"}
|
package/dist/os/notes/index.js
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
<MODULE_CONTRACT>
|
|
3
|
-
<purpose>Re-export forgeNotesModule and note validator handlers.</purpose>
|
|
4
|
-
</MODULE_CONTRACT>
|
|
5
|
-
<CHANGE_SUMMARY>
|
|
6
|
-
<item>RFC-0808: initial notes module index.</item>
|
|
7
|
-
</CHANGE_SUMMARY>
|
|
8
|
-
*/
|
|
9
|
-
export { forgeNotesModule } from "./notes.module.js";
|
|
10
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../os/notes/index.ts"],"names":[],"mappings":"AAAA;;;;;;;EAOE;AAEF,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"notes.module.d.ts","sourceRoot":"","sources":["../../../os/notes/notes.module.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAO7D,eAAO,MAAM,gBAAgB,EAAE,WA0F9B,CAAC"}
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
<MODULE_CONTRACT>
|
|
3
|
-
<purpose>Register note validation commands (note.link.validate, note.frontmatter.validate, note.orphan.detect) with the forge kernel registry.</purpose>
|
|
4
|
-
<non-goals>
|
|
5
|
-
<item>Do not implement handler logic here — delegate to src/validators/.</item>
|
|
6
|
-
</non-goals>
|
|
7
|
-
</MODULE_CONTRACT>
|
|
8
|
-
<CHANGE_SUMMARY>
|
|
9
|
-
<item>RFC-0808: initial forgeNotesModule registering 3 note validation commands.</item>
|
|
10
|
-
</CHANGE_SUMMARY>
|
|
11
|
-
*/
|
|
12
|
-
export const forgeNotesModule = {
|
|
13
|
-
name: "forge-notes",
|
|
14
|
-
version: "0.1.0",
|
|
15
|
-
async register(registry) {
|
|
16
|
-
const { runNoteLinkValidate } = await import("../../src/validators/note-link-validate.js");
|
|
17
|
-
const { runNoteFrontmatterValidate } = await import("../../src/validators/note-frontmatter-validate.js");
|
|
18
|
-
const { runNoteOrphanDetect } = await import("../../src/validators/note-orphan-detect.js");
|
|
19
|
-
const noteLinkValidateWrapper = async (input, context) => {
|
|
20
|
-
return runNoteLinkValidate(input, context);
|
|
21
|
-
};
|
|
22
|
-
const noteFrontmatterValidateWrapper = async (input, context) => {
|
|
23
|
-
return runNoteFrontmatterValidate(input, context);
|
|
24
|
-
};
|
|
25
|
-
const noteOrphanDetectWrapper = async (input, context) => {
|
|
26
|
-
return runNoteOrphanDetect(input, context);
|
|
27
|
-
};
|
|
28
|
-
registry.registerCommand({
|
|
29
|
-
name: "note.link.validate",
|
|
30
|
-
description: "Validate wikilink integrity across an Obsidian vault. Scans [[wikilinks]] and resolves each against the note graph.",
|
|
31
|
-
scope: "workspace",
|
|
32
|
-
supportsAllSites: false,
|
|
33
|
-
flags: {
|
|
34
|
-
"vault-dir": {
|
|
35
|
-
kind: "string",
|
|
36
|
-
description: "Vault directory relative to workspace root (default: vault).",
|
|
37
|
-
},
|
|
38
|
-
path: {
|
|
39
|
-
kind: "string",
|
|
40
|
-
description: "Subdirectory within the vault to scope the scan to.",
|
|
41
|
-
},
|
|
42
|
-
},
|
|
43
|
-
reads: ["vault/**/*.md"],
|
|
44
|
-
cacheable: false,
|
|
45
|
-
execute: noteLinkValidateWrapper,
|
|
46
|
-
});
|
|
47
|
-
registry.registerCommand({
|
|
48
|
-
name: "note.frontmatter.validate",
|
|
49
|
-
description: "Validate frontmatter consistency across an Obsidian vault. Checks for required fields in YAML frontmatter.",
|
|
50
|
-
scope: "workspace",
|
|
51
|
-
supportsAllSites: false,
|
|
52
|
-
flags: {
|
|
53
|
-
"vault-dir": {
|
|
54
|
-
kind: "string",
|
|
55
|
-
description: "Vault directory relative to workspace root (default: vault).",
|
|
56
|
-
},
|
|
57
|
-
fields: {
|
|
58
|
-
kind: "string",
|
|
59
|
-
description: "Comma-separated list of required fields (default: title).",
|
|
60
|
-
},
|
|
61
|
-
},
|
|
62
|
-
reads: ["vault/**/*.md"],
|
|
63
|
-
cacheable: false,
|
|
64
|
-
execute: noteFrontmatterValidateWrapper,
|
|
65
|
-
});
|
|
66
|
-
registry.registerCommand({
|
|
67
|
-
name: "note.orphan.detect",
|
|
68
|
-
description: "Detect orphan notes in an Obsidian vault — notes with zero inbound wikilinks. Always exits zero (warnings, not errors).",
|
|
69
|
-
scope: "workspace",
|
|
70
|
-
supportsAllSites: false,
|
|
71
|
-
flags: {
|
|
72
|
-
"vault-dir": {
|
|
73
|
-
kind: "string",
|
|
74
|
-
description: "Vault directory relative to workspace root (default: vault).",
|
|
75
|
-
},
|
|
76
|
-
},
|
|
77
|
-
reads: ["vault/**/*.md"],
|
|
78
|
-
cacheable: false,
|
|
79
|
-
execute: noteOrphanDetectWrapper,
|
|
80
|
-
});
|
|
81
|
-
},
|
|
82
|
-
};
|
|
83
|
-
//# sourceMappingURL=notes.module.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"notes.module.js","sourceRoot":"","sources":["../../../os/notes/notes.module.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;EAUE;AASF,MAAM,CAAC,MAAM,gBAAgB,GAAgB;IAC3C,IAAI,EAAE,aAAa;IACnB,OAAO,EAAE,OAAO;IAChB,KAAK,CAAC,QAAQ,CAAC,QAAQ;QACrB,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,MAAM,CAAC,4CAA4C,CAAC,CAAC;QAC3F,MAAM,EAAE,0BAA0B,EAAE,GAAG,MAAM,MAAM,CACjD,mDAAmD,CACpD,CAAC;QACF,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,MAAM,CAAC,4CAA4C,CAAC,CAAC;QAE3F,MAAM,uBAAuB,GAAG,KAAK,EACnC,KAAwB,EACxB,OAA4B,EACC,EAAE;YAC/B,OAAO,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC7C,CAAC,CAAC;QAEF,MAAM,8BAA8B,GAAG,KAAK,EAC1C,KAAwB,EACxB,OAA4B,EACC,EAAE;YAC/B,OAAO,0BAA0B,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACpD,CAAC,CAAC;QAEF,MAAM,uBAAuB,GAAG,KAAK,EACnC,KAAwB,EACxB,OAA4B,EACC,EAAE;YAC/B,OAAO,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC7C,CAAC,CAAC;QAEF,QAAQ,CAAC,eAAe,CAAC;YACvB,IAAI,EAAE,oBAAoB;YAC1B,WAAW,EACT,qHAAqH;YACvH,KAAK,EAAE,WAAW;YAClB,gBAAgB,EAAE,KAAK;YACvB,KAAK,EAAE;gBACL,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,8DAA8D;iBAC5E;gBACD,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,qDAAqD;iBACnE;aACF;YACD,KAAK,EAAE,CAAC,eAAe,CAAC;YACxB,SAAS,EAAE,KAAK;YAChB,OAAO,EAAE,uBAAuB;SACjC,CAAC,CAAC;QAEH,QAAQ,CAAC,eAAe,CAAC;YACvB,IAAI,EAAE,2BAA2B;YACjC,WAAW,EACT,4GAA4G;YAC9G,KAAK,EAAE,WAAW;YAClB,gBAAgB,EAAE,KAAK;YACvB,KAAK,EAAE;gBACL,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,8DAA8D;iBAC5E;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,2DAA2D;iBACzE;aACF;YACD,KAAK,EAAE,CAAC,eAAe,CAAC;YACxB,SAAS,EAAE,KAAK;YAChB,OAAO,EAAE,8BAA8B;SACxC,CAAC,CAAC;QAEH,QAAQ,CAAC,eAAe,CAAC;YACvB,IAAI,EAAE,oBAAoB;YAC1B,WAAW,EACT,yHAAyH;YAC3H,KAAK,EAAE,WAAW;YAClB,gBAAgB,EAAE,KAAK;YACvB,KAAK,EAAE;gBACL,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,8DAA8D;iBAC5E;aACF;YACD,KAAK,EAAE,CAAC,eAAe,CAAC;YACxB,SAAS,EAAE,KAAK;YAChB,OAAO,EAAE,uBAAuB;SACjC,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
export interface ParsedPlan {
|
|
2
|
-
frontmatter: Record<string, unknown>;
|
|
3
|
-
body: string;
|
|
4
|
-
}
|
|
5
|
-
export declare function parsePlanFile(source: string): ParsedPlan;
|
|
6
|
-
export declare function listPlanFiles(planDirPath: string): Promise<string[]>;
|
|
7
|
-
export declare function readAndParsePlan(planDirPath: string, fileName: string): Promise<{
|
|
8
|
-
fileName: string;
|
|
9
|
-
parsed: ParsedPlan;
|
|
10
|
-
} | undefined>;
|
|
11
|
-
export declare function extractRfcIdFromPlanFile(fileName: string): string | undefined;
|
|
12
|
-
//# sourceMappingURL=frontmatter-io.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"frontmatter-io.d.ts","sourceRoot":"","sources":["../../../os/plan/frontmatter-io.ts"],"names":[],"mappings":"AAoBA,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CASxD;AAED,wBAAsB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CA2B1E;AAED,wBAAsB,gBAAgB,CACpC,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,UAAU,CAAA;CAAE,GAAG,SAAS,CAAC,CAQ/D;AAED,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAG7E"}
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
<MODULE_CONTRACT>
|
|
3
|
-
<purpose>
|
|
4
|
-
Plan frontmatter file I/O — recursive file discovery and YAML frontmatter
|
|
5
|
-
parsing for plan files under docs/plans/.
|
|
6
|
-
</purpose>
|
|
7
|
-
<non-goals>
|
|
8
|
-
<item>Do not validate plan content — that is a future concern.</item>
|
|
9
|
-
</non-goals>
|
|
10
|
-
</MODULE_CONTRACT>
|
|
11
|
-
<CHANGE_SUMMARY>
|
|
12
|
-
<item>RFC-0521: initial plan frontmatter I/O.</item>
|
|
13
|
-
</CHANGE_SUMMARY>
|
|
14
|
-
*/
|
|
15
|
-
import fs from "node:fs/promises";
|
|
16
|
-
import path from "node:path";
|
|
17
|
-
import YAML from "yaml";
|
|
18
|
-
import { PLAN_FILE_PATTERN } from "./types.js";
|
|
19
|
-
export function parsePlanFile(source) {
|
|
20
|
-
const match = source.match(/^---\r?\n([\s\S]*?)\r?\n---\r?\n?([\s\S]*)$/);
|
|
21
|
-
if (!match) {
|
|
22
|
-
return { frontmatter: {}, body: source };
|
|
23
|
-
}
|
|
24
|
-
return {
|
|
25
|
-
frontmatter: (YAML.parse(match[1]) ?? {}),
|
|
26
|
-
body: match[2] ?? "",
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
export async function listPlanFiles(planDirPath) {
|
|
30
|
-
const results = [];
|
|
31
|
-
async function scanDir(dirPath, relativePrefix) {
|
|
32
|
-
try {
|
|
33
|
-
const entries = await fs.readdir(dirPath, { withFileTypes: true });
|
|
34
|
-
for (const entry of entries) {
|
|
35
|
-
const relativePath = relativePrefix ? `${relativePrefix}/${entry.name}` : entry.name;
|
|
36
|
-
if (entry.isDirectory()) {
|
|
37
|
-
await scanDir(path.join(dirPath, entry.name), relativePath);
|
|
38
|
-
}
|
|
39
|
-
else if (entry.isFile() &&
|
|
40
|
-
entry.name.endsWith(".md") &&
|
|
41
|
-
!entry.name.startsWith("plan-0000") &&
|
|
42
|
-
entry.name !== "README.md" &&
|
|
43
|
-
PLAN_FILE_PATTERN.test(entry.name)) {
|
|
44
|
-
results.push(relativePath);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
catch {
|
|
49
|
-
// Directory doesn't exist or is unreadable — return empty
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
await scanDir(planDirPath, "");
|
|
53
|
-
return results.sort();
|
|
54
|
-
}
|
|
55
|
-
export async function readAndParsePlan(planDirPath, fileName) {
|
|
56
|
-
try {
|
|
57
|
-
const filePath = path.join(planDirPath, fileName);
|
|
58
|
-
const content = await fs.readFile(filePath, "utf-8");
|
|
59
|
-
return { fileName, parsed: parsePlanFile(content) };
|
|
60
|
-
}
|
|
61
|
-
catch {
|
|
62
|
-
return undefined;
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
export function extractRfcIdFromPlanFile(fileName) {
|
|
66
|
-
const match = path.basename(fileName).match(/^plan-(rfc-\d{4})-/i);
|
|
67
|
-
return match ? match[1].toUpperCase() : undefined;
|
|
68
|
-
}
|
|
69
|
-
//# sourceMappingURL=frontmatter-io.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"frontmatter-io.js","sourceRoot":"","sources":["../../../os/plan/frontmatter-io.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;EAaE;AAEF,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAO/C,MAAM,UAAU,aAAa,CAAC,MAAc;IAC1C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;IAC1E,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC3C,CAAC;IACD,OAAO;QACL,WAAW,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,CAA4B;QACrE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE;KACrB,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,WAAmB;IACrD,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,KAAK,UAAU,OAAO,CAAC,OAAe,EAAE,cAAsB;QAC5D,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;YACnE,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC5B,MAAM,YAAY,GAAG,cAAc,CAAC,CAAC,CAAC,GAAG,cAAc,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;gBACrF,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;oBACxB,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,YAAY,CAAC,CAAC;gBAC9D,CAAC;qBAAM,IACL,KAAK,CAAC,MAAM,EAAE;oBACd,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;oBAC1B,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;oBACnC,KAAK,CAAC,IAAI,KAAK,WAAW;oBAC1B,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAClC,CAAC;oBACD,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBAC7B,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,0DAA0D;QAC5D,CAAC;IACH,CAAC;IAED,MAAM,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IAC/B,OAAO,OAAO,CAAC,IAAI,EAAE,CAAC;AACxB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,WAAmB,EACnB,QAAgB;IAEhB,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAClD,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;IACtD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,QAAgB;IACvD,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACnE,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AACrD,CAAC"}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import type { ForgeCommandInput, ForgeCommandResult, ForgeRuntimeContext } from "../../../src/types.ts";
|
|
2
|
-
import type { PlanArchiveResult } from "../types.ts";
|
|
3
|
-
export declare function runPlanArchive(input: ForgeCommandInput, context: ForgeRuntimeContext): Promise<ForgeCommandResult<PlanArchiveResult>>;
|
|
4
|
-
//# sourceMappingURL=archive.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"archive.d.ts","sourceRoot":"","sources":["../../../../os/plan/handlers/archive.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EACV,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAKrD,wBAAsB,cAAc,CAClC,KAAK,EAAE,iBAAiB,EACxB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,CAAC,CAwMhD"}
|