@warpgogol/forge 4.1.6 → 4.2.2
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 +2 -1
- package/CHANGELOG.md +33 -0
- package/CONTRIBUTING.md +36 -0
- package/README.md +130 -534
- package/README.uk.md +146 -553
- package/SECURITY.md +17 -0
- package/dist/bin/cli.d.ts +3 -0
- package/dist/bin/cli.d.ts.map +1 -0
- package/dist/bin/cli.js +296 -0
- package/dist/bin/cli.js.map +1 -0
- package/dist/os/adr/adr.module.d.ts +3 -0
- package/dist/os/adr/adr.module.d.ts.map +1 -0
- package/dist/os/adr/adr.module.js +153 -0
- package/dist/os/adr/adr.module.js.map +1 -0
- package/dist/os/adr/frontmatter-io.d.ts +12 -0
- package/dist/os/adr/frontmatter-io.d.ts.map +1 -0
- package/dist/os/adr/frontmatter-io.js +67 -0
- package/dist/os/adr/frontmatter-io.js.map +1 -0
- package/dist/os/adr/handlers/archive.d.ts +24 -0
- package/dist/os/adr/handlers/archive.d.ts.map +1 -0
- package/dist/os/adr/handlers/archive.js +194 -0
- package/dist/os/adr/handlers/archive.js.map +1 -0
- package/dist/os/adr/handlers/implement-stamp.d.ts +4 -0
- package/dist/os/adr/handlers/implement-stamp.d.ts.map +1 -0
- package/dist/os/adr/handlers/implement-stamp.js +264 -0
- package/dist/os/adr/handlers/implement-stamp.js.map +1 -0
- package/dist/os/adr/handlers/list-create.d.ts +5 -0
- package/dist/os/adr/handlers/list-create.d.ts.map +1 -0
- package/dist/os/adr/handlers/list-create.js +201 -0
- package/dist/os/adr/handlers/list-create.js.map +1 -0
- package/dist/os/adr/handlers/validate.d.ts +4 -0
- package/dist/os/adr/handlers/validate.d.ts.map +1 -0
- package/dist/os/adr/handlers/validate.js +304 -0
- package/dist/os/adr/handlers/validate.js.map +1 -0
- package/dist/os/adr/index.d.ts +8 -0
- package/dist/os/adr/index.d.ts.map +1 -0
- package/dist/os/adr/index.js +18 -0
- package/dist/os/adr/index.js.map +1 -0
- package/dist/os/adr/types.d.ts +81 -0
- package/dist/os/adr/types.d.ts.map +1 -0
- package/dist/os/adr/types.js +62 -0
- package/dist/os/adr/types.js.map +1 -0
- package/dist/os/audit/audit.module.d.ts +3 -0
- package/dist/os/audit/audit.module.d.ts.map +1 -0
- package/dist/os/audit/audit.module.js +50 -0
- package/dist/os/audit/audit.module.js.map +1 -0
- package/dist/os/audit/frontmatter-io.d.ts +12 -0
- package/dist/os/audit/frontmatter-io.d.ts.map +1 -0
- package/dist/os/audit/frontmatter-io.js +71 -0
- package/dist/os/audit/frontmatter-io.js.map +1 -0
- package/dist/os/audit/handlers/archive.d.ts +4 -0
- package/dist/os/audit/handlers/archive.d.ts.map +1 -0
- package/dist/os/audit/handlers/archive.js +207 -0
- package/dist/os/audit/handlers/archive.js.map +1 -0
- package/dist/os/audit/index.d.ts +6 -0
- package/dist/os/audit/index.d.ts.map +1 -0
- package/dist/os/audit/index.js +16 -0
- package/dist/os/audit/index.js.map +1 -0
- package/dist/os/audit/types.d.ts +12 -0
- package/dist/os/audit/types.d.ts.map +1 -0
- package/dist/os/audit/types.js +17 -0
- package/dist/os/audit/types.js.map +1 -0
- package/dist/os/compass/compass.module.d.ts +3 -0
- package/dist/os/compass/compass.module.d.ts.map +1 -0
- package/dist/os/compass/compass.module.js +191 -0
- package/dist/os/compass/compass.module.js.map +1 -0
- package/dist/os/compass/handlers/compass-audit-handler.d.ts +36 -0
- package/dist/os/compass/handlers/compass-audit-handler.d.ts.map +1 -0
- package/dist/os/compass/handlers/compass-audit-handler.js +260 -0
- package/dist/os/compass/handlers/compass-audit-handler.js.map +1 -0
- package/dist/os/compass/handlers/compass-change-summary-handler.d.ts +19 -0
- package/dist/os/compass/handlers/compass-change-summary-handler.d.ts.map +1 -0
- package/dist/os/compass/handlers/compass-change-summary-handler.js +222 -0
- package/dist/os/compass/handlers/compass-change-summary-handler.js.map +1 -0
- package/dist/os/compass/handlers/compass-inventory-handler.d.ts +28 -0
- package/dist/os/compass/handlers/compass-inventory-handler.d.ts.map +1 -0
- package/dist/os/compass/handlers/compass-inventory-handler.js +387 -0
- package/dist/os/compass/handlers/compass-inventory-handler.js.map +1 -0
- package/dist/os/compass/handlers/compass-inventory.d.ts +30 -0
- package/dist/os/compass/handlers/compass-inventory.d.ts.map +1 -0
- package/dist/os/compass/handlers/compass-inventory.js +472 -0
- package/dist/os/compass/handlers/compass-inventory.js.map +1 -0
- package/dist/os/compass/handlers/git-revision.d.ts +8 -0
- package/dist/os/compass/handlers/git-revision.d.ts.map +1 -0
- package/dist/os/compass/handlers/git-revision.js +99 -0
- package/dist/os/compass/handlers/git-revision.js.map +1 -0
- package/dist/os/compass/handlers/resolve-scan-root.d.ts +3 -0
- package/dist/os/compass/handlers/resolve-scan-root.d.ts.map +1 -0
- package/dist/os/compass/handlers/resolve-scan-root.js +57 -0
- package/dist/os/compass/handlers/resolve-scan-root.js.map +1 -0
- package/dist/os/compass/index.d.ts +8 -0
- package/dist/os/compass/index.d.ts.map +1 -0
- package/dist/os/compass/index.js +19 -0
- package/dist/os/compass/index.js.map +1 -0
- package/dist/os/core/core.module.d.ts +3 -0
- package/dist/os/core/core.module.d.ts.map +1 -0
- package/dist/os/core/core.module.js +855 -0
- package/dist/os/core/core.module.js.map +1 -0
- package/dist/os/core/handlers/assets-check.d.ts +19 -0
- package/dist/os/core/handlers/assets-check.d.ts.map +1 -0
- package/dist/os/core/handlers/assets-check.js +89 -0
- package/dist/os/core/handlers/assets-check.js.map +1 -0
- package/dist/os/core/handlers/assets-helpers.d.ts +28 -0
- package/dist/os/core/handlers/assets-helpers.d.ts.map +1 -0
- package/dist/os/core/handlers/assets-helpers.js +128 -0
- package/dist/os/core/handlers/assets-helpers.js.map +1 -0
- package/dist/os/core/handlers/assets-list.d.ts +9 -0
- package/dist/os/core/handlers/assets-list.d.ts.map +1 -0
- package/dist/os/core/handlers/assets-list.js +72 -0
- package/dist/os/core/handlers/assets-list.js.map +1 -0
- package/dist/os/core/handlers/build.d.ts +16 -0
- package/dist/os/core/handlers/build.d.ts.map +1 -0
- package/dist/os/core/handlers/build.js +123 -0
- package/dist/os/core/handlers/build.js.map +1 -0
- package/dist/os/core/handlers/determinism-check.d.ts +20 -0
- package/dist/os/core/handlers/determinism-check.d.ts.map +1 -0
- package/dist/os/core/handlers/determinism-check.js +289 -0
- package/dist/os/core/handlers/determinism-check.js.map +1 -0
- package/dist/os/core/handlers/dev.d.ts +10 -0
- package/dist/os/core/handlers/dev.d.ts.map +1 -0
- package/dist/os/core/handlers/dev.js +102 -0
- package/dist/os/core/handlers/dev.js.map +1 -0
- package/dist/os/core/handlers/forge-autonomy-validate.d.ts +18 -0
- package/dist/os/core/handlers/forge-autonomy-validate.d.ts.map +1 -0
- package/dist/os/core/handlers/forge-autonomy-validate.js +115 -0
- package/dist/os/core/handlers/forge-autonomy-validate.js.map +1 -0
- package/dist/os/core/handlers/knowledge-compact.d.ts +4 -0
- package/dist/os/core/handlers/knowledge-compact.d.ts.map +1 -0
- package/dist/os/core/handlers/knowledge-compact.js +204 -0
- package/dist/os/core/handlers/knowledge-compact.js.map +1 -0
- package/dist/os/core/handlers/package-health.d.ts +17 -0
- package/dist/os/core/handlers/package-health.d.ts.map +1 -0
- package/dist/os/core/handlers/package-health.js +217 -0
- package/dist/os/core/handlers/package-health.js.map +1 -0
- package/dist/os/core/handlers/pinned-check.d.ts +49 -0
- package/dist/os/core/handlers/pinned-check.d.ts.map +1 -0
- package/dist/os/core/handlers/pinned-check.js +159 -0
- package/dist/os/core/handlers/pinned-check.js.map +1 -0
- package/dist/os/core/handlers/pinned-init.d.ts +19 -0
- package/dist/os/core/handlers/pinned-init.d.ts.map +1 -0
- package/dist/os/core/handlers/pinned-init.js +283 -0
- package/dist/os/core/handlers/pinned-init.js.map +1 -0
- package/dist/os/core/handlers/pinned-types.d.ts +29 -0
- package/dist/os/core/handlers/pinned-types.d.ts.map +1 -0
- package/dist/os/core/handlers/pinned-types.js +16 -0
- package/dist/os/core/handlers/pinned-types.js.map +1 -0
- package/dist/os/core/handlers/pinned-validate.d.ts +4 -0
- package/dist/os/core/handlers/pinned-validate.d.ts.map +1 -0
- package/dist/os/core/handlers/pinned-validate.js +248 -0
- package/dist/os/core/handlers/pinned-validate.js.map +1 -0
- package/dist/os/core/handlers/profile-resolve.d.ts +13 -0
- package/dist/os/core/handlers/profile-resolve.d.ts.map +1 -0
- package/dist/os/core/handlers/profile-resolve.js +65 -0
- package/dist/os/core/handlers/profile-resolve.js.map +1 -0
- package/dist/os/core/handlers/public-surface.d.ts +13 -0
- package/dist/os/core/handlers/public-surface.d.ts.map +1 -0
- package/dist/os/core/handlers/public-surface.js +148 -0
- package/dist/os/core/handlers/public-surface.js.map +1 -0
- package/dist/os/core/handlers/release-prepare.d.ts +25 -0
- package/dist/os/core/handlers/release-prepare.d.ts.map +1 -0
- package/dist/os/core/handlers/release-prepare.js +228 -0
- package/dist/os/core/handlers/release-prepare.js.map +1 -0
- package/dist/os/core/handlers/release-publish.d.ts +13 -0
- package/dist/os/core/handlers/release-publish.d.ts.map +1 -0
- package/dist/os/core/handlers/release-publish.js +173 -0
- package/dist/os/core/handlers/release-publish.js.map +1 -0
- package/dist/os/core/handlers/validate.d.ts +39 -0
- package/dist/os/core/handlers/validate.d.ts.map +1 -0
- package/dist/os/core/handlers/validate.js +241 -0
- package/dist/os/core/handlers/validate.js.map +1 -0
- package/dist/os/core/index.d.ts +2 -0
- package/dist/os/core/index.d.ts.map +1 -0
- package/dist/os/core/index.js +13 -0
- package/dist/os/core/index.js.map +1 -0
- package/dist/os/exploration/exploration.module.d.ts +3 -0
- package/dist/os/exploration/exploration.module.d.ts.map +1 -0
- package/dist/os/exploration/exploration.module.js +88 -0
- package/dist/os/exploration/exploration.module.js.map +1 -0
- package/dist/os/exploration/frontmatter-io.d.ts +13 -0
- package/dist/os/exploration/frontmatter-io.d.ts.map +1 -0
- package/dist/os/exploration/frontmatter-io.js +61 -0
- package/dist/os/exploration/frontmatter-io.js.map +1 -0
- package/dist/os/exploration/handlers/archive.d.ts +4 -0
- package/dist/os/exploration/handlers/archive.d.ts.map +1 -0
- package/dist/os/exploration/handlers/archive.js +141 -0
- package/dist/os/exploration/handlers/archive.js.map +1 -0
- package/dist/os/exploration/handlers/list.d.ts +4 -0
- package/dist/os/exploration/handlers/list.d.ts.map +1 -0
- package/dist/os/exploration/handlers/list.js +64 -0
- package/dist/os/exploration/handlers/list.js.map +1 -0
- package/dist/os/exploration/handlers/show.d.ts +4 -0
- package/dist/os/exploration/handlers/show.d.ts.map +1 -0
- package/dist/os/exploration/handlers/show.js +97 -0
- package/dist/os/exploration/handlers/show.js.map +1 -0
- package/dist/os/exploration/index.d.ts +7 -0
- package/dist/os/exploration/index.d.ts.map +1 -0
- package/dist/os/exploration/index.js +17 -0
- package/dist/os/exploration/index.js.map +1 -0
- package/dist/os/exploration/types.d.ts +38 -0
- package/dist/os/exploration/types.d.ts.map +1 -0
- package/dist/os/exploration/types.js +23 -0
- package/dist/os/exploration/types.js.map +1 -0
- package/dist/os/mission/handlers/archive.d.ts +4 -0
- package/dist/os/mission/handlers/archive.d.ts.map +1 -0
- package/dist/os/mission/handlers/archive.js +454 -0
- package/dist/os/mission/handlers/archive.js.map +1 -0
- package/dist/os/mission/index.d.ts +2 -0
- package/dist/os/mission/index.d.ts.map +1 -0
- package/dist/os/mission/index.js +2 -0
- package/dist/os/mission/index.js.map +1 -0
- package/dist/os/mission/mission.module.d.ts +3 -0
- package/dist/os/mission/mission.module.d.ts.map +1 -0
- package/dist/os/mission/mission.module.js +55 -0
- package/dist/os/mission/mission.module.js.map +1 -0
- package/dist/os/mission/types.d.ts +23 -0
- package/dist/os/mission/types.d.ts.map +1 -0
- package/dist/os/mission/types.js +19 -0
- package/dist/os/mission/types.js.map +1 -0
- package/dist/os/naming/index.d.ts +3 -0
- package/dist/os/naming/index.d.ts.map +1 -0
- package/dist/os/naming/index.js +14 -0
- package/dist/os/naming/index.js.map +1 -0
- package/dist/os/naming/naming-convention.d.ts +25 -0
- package/dist/os/naming/naming-convention.d.ts.map +1 -0
- package/dist/os/naming/naming-convention.js +334 -0
- package/dist/os/naming/naming-convention.js.map +1 -0
- package/dist/os/naming/naming.module.d.ts +3 -0
- package/dist/os/naming/naming.module.d.ts.map +1 -0
- package/dist/os/naming/naming.module.js +41 -0
- package/dist/os/naming/naming.module.js.map +1 -0
- package/dist/os/notes/index.d.ts +2 -0
- package/dist/os/notes/index.d.ts.map +1 -0
- package/dist/os/notes/index.js +10 -0
- package/dist/os/notes/index.js.map +1 -0
- package/dist/os/notes/notes.module.d.ts +3 -0
- package/dist/os/notes/notes.module.d.ts.map +1 -0
- package/dist/os/notes/notes.module.js +93 -0
- package/dist/os/notes/notes.module.js.map +1 -0
- package/dist/os/plan/frontmatter-io.d.ts +12 -0
- package/dist/os/plan/frontmatter-io.d.ts.map +1 -0
- package/dist/os/plan/frontmatter-io.js +69 -0
- package/dist/os/plan/frontmatter-io.js.map +1 -0
- package/dist/os/plan/handlers/archive.d.ts +4 -0
- package/dist/os/plan/handlers/archive.d.ts.map +1 -0
- package/dist/os/plan/handlers/archive.js +206 -0
- package/dist/os/plan/handlers/archive.js.map +1 -0
- package/dist/os/plan/index.d.ts +6 -0
- package/dist/os/plan/index.d.ts.map +1 -0
- package/dist/os/plan/index.js +16 -0
- package/dist/os/plan/index.js.map +1 -0
- package/dist/os/plan/plan.module.d.ts +3 -0
- package/dist/os/plan/plan.module.d.ts.map +1 -0
- package/dist/os/plan/plan.module.js +50 -0
- package/dist/os/plan/plan.module.js.map +1 -0
- package/dist/os/plan/types.d.ts +12 -0
- package/dist/os/plan/types.d.ts.map +1 -0
- package/dist/os/plan/types.js +17 -0
- package/dist/os/plan/types.js.map +1 -0
- package/dist/os/plugin/plugin.module.d.ts +25 -0
- package/dist/os/plugin/plugin.module.d.ts.map +1 -0
- package/dist/os/plugin/plugin.module.js +212 -0
- package/dist/os/plugin/plugin.module.js.map +1 -0
- package/dist/os/program/discovery.d.ts +61 -0
- package/dist/os/program/discovery.d.ts.map +1 -0
- package/dist/os/program/discovery.js +236 -0
- package/dist/os/program/discovery.js.map +1 -0
- package/dist/os/program/handlers/complete.d.ts +12 -0
- package/dist/os/program/handlers/complete.d.ts.map +1 -0
- package/dist/os/program/handlers/complete.js +362 -0
- package/dist/os/program/handlers/complete.js.map +1 -0
- package/dist/os/program/handlers/lease.d.ts +13 -0
- package/dist/os/program/handlers/lease.d.ts.map +1 -0
- package/dist/os/program/handlers/lease.js +328 -0
- package/dist/os/program/handlers/lease.js.map +1 -0
- package/dist/os/program/handlers/seal.d.ts +12 -0
- package/dist/os/program/handlers/seal.d.ts.map +1 -0
- package/dist/os/program/handlers/seal.js +277 -0
- package/dist/os/program/handlers/seal.js.map +1 -0
- package/dist/os/program/handlers/validate.d.ts +14 -0
- package/dist/os/program/handlers/validate.d.ts.map +1 -0
- package/dist/os/program/handlers/validate.js +170 -0
- package/dist/os/program/handlers/validate.js.map +1 -0
- package/dist/os/program/lease.d.ts +39 -0
- package/dist/os/program/lease.d.ts.map +1 -0
- package/dist/os/program/lease.js +129 -0
- package/dist/os/program/lease.js.map +1 -0
- package/dist/os/program/program.module.d.ts +3 -0
- package/dist/os/program/program.module.d.ts.map +1 -0
- package/dist/os/program/program.module.js +209 -0
- package/dist/os/program/program.module.js.map +1 -0
- package/dist/os/program/schemas.d.ts +225 -0
- package/dist/os/program/schemas.d.ts.map +1 -0
- package/dist/os/program/schemas.js +174 -0
- package/dist/os/program/schemas.js.map +1 -0
- package/dist/os/program/state.d.ts +38 -0
- package/dist/os/program/state.d.ts.map +1 -0
- package/dist/os/program/state.js +189 -0
- package/dist/os/program/state.js.map +1 -0
- package/dist/os/rfc/acceptance.d.ts +15 -0
- package/dist/os/rfc/acceptance.d.ts.map +1 -0
- package/dist/os/rfc/acceptance.js +438 -0
- package/dist/os/rfc/acceptance.js.map +1 -0
- package/dist/os/rfc/decision-log.d.ts +6 -0
- package/dist/os/rfc/decision-log.d.ts.map +1 -0
- package/dist/os/rfc/decision-log.js +269 -0
- package/dist/os/rfc/decision-log.js.map +1 -0
- package/dist/os/rfc/dna-trace.d.ts +27 -0
- package/dist/os/rfc/dna-trace.d.ts.map +1 -0
- package/dist/os/rfc/dna-trace.js +214 -0
- package/dist/os/rfc/dna-trace.js.map +1 -0
- package/dist/os/rfc/frontmatter-io.d.ts +18 -0
- package/dist/os/rfc/frontmatter-io.d.ts.map +1 -0
- package/dist/os/rfc/frontmatter-io.js +110 -0
- package/dist/os/rfc/frontmatter-io.js.map +1 -0
- package/dist/os/rfc/handlers/archive.d.ts +25 -0
- package/dist/os/rfc/handlers/archive.d.ts.map +1 -0
- package/dist/os/rfc/handlers/archive.js +247 -0
- package/dist/os/rfc/handlers/archive.js.map +1 -0
- package/dist/os/rfc/handlers/check.d.ts +4 -0
- package/dist/os/rfc/handlers/check.d.ts.map +1 -0
- package/dist/os/rfc/handlers/check.js +203 -0
- package/dist/os/rfc/handlers/check.js.map +1 -0
- package/dist/os/rfc/handlers/implement-stamp.d.ts +4 -0
- package/dist/os/rfc/handlers/implement-stamp.d.ts.map +1 -0
- package/dist/os/rfc/handlers/implement-stamp.js +452 -0
- package/dist/os/rfc/handlers/implement-stamp.js.map +1 -0
- package/dist/os/rfc/handlers/index-graph.d.ts +13 -0
- package/dist/os/rfc/handlers/index-graph.d.ts.map +1 -0
- package/dist/os/rfc/handlers/index-graph.js +192 -0
- package/dist/os/rfc/handlers/index-graph.js.map +1 -0
- package/dist/os/rfc/handlers/lifecycle.d.ts +13 -0
- package/dist/os/rfc/handlers/lifecycle.d.ts.map +1 -0
- package/dist/os/rfc/handlers/lifecycle.js +155 -0
- package/dist/os/rfc/handlers/lifecycle.js.map +1 -0
- package/dist/os/rfc/handlers/list-create.d.ts +6 -0
- package/dist/os/rfc/handlers/list-create.d.ts.map +1 -0
- package/dist/os/rfc/handlers/list-create.js +260 -0
- package/dist/os/rfc/handlers/list-create.js.map +1 -0
- package/dist/os/rfc/handlers/pipeline-status.d.ts +26 -0
- package/dist/os/rfc/handlers/pipeline-status.d.ts.map +1 -0
- package/dist/os/rfc/handlers/pipeline-status.js +124 -0
- package/dist/os/rfc/handlers/pipeline-status.js.map +1 -0
- package/dist/os/rfc/handlers/shared.d.ts +22 -0
- package/dist/os/rfc/handlers/shared.d.ts.map +1 -0
- package/dist/os/rfc/handlers/shared.js +105 -0
- package/dist/os/rfc/handlers/shared.js.map +1 -0
- package/dist/os/rfc/handlers/supersede-propose.d.ts +4 -0
- package/dist/os/rfc/handlers/supersede-propose.d.ts.map +1 -0
- package/dist/os/rfc/handlers/supersede-propose.js +203 -0
- package/dist/os/rfc/handlers/supersede-propose.js.map +1 -0
- package/dist/os/rfc/handlers/validate-rules.d.ts +80 -0
- package/dist/os/rfc/handlers/validate-rules.d.ts.map +1 -0
- package/dist/os/rfc/handlers/validate-rules.js +907 -0
- package/dist/os/rfc/handlers/validate-rules.js.map +1 -0
- package/dist/os/rfc/handlers/validate.d.ts +4 -0
- package/dist/os/rfc/handlers/validate.d.ts.map +1 -0
- package/dist/os/rfc/handlers/validate.js +134 -0
- package/dist/os/rfc/handlers/validate.js.map +1 -0
- package/dist/os/rfc/handlers.d.ts +7 -0
- package/dist/os/rfc/handlers.d.ts.map +1 -0
- package/dist/os/rfc/handlers.js +19 -0
- package/dist/os/rfc/handlers.js.map +1 -0
- package/dist/os/rfc/index.d.ts +18 -0
- package/dist/os/rfc/index.d.ts.map +1 -0
- package/dist/os/rfc/index.js +24 -0
- package/dist/os/rfc/index.js.map +1 -0
- package/dist/os/rfc/rfc.module.d.ts +3 -0
- package/dist/os/rfc/rfc.module.d.ts.map +1 -0
- package/dist/os/rfc/rfc.module.js +390 -0
- package/dist/os/rfc/rfc.module.js.map +1 -0
- package/dist/os/rfc/types.d.ts +559 -0
- package/dist/os/rfc/types.d.ts.map +1 -0
- package/dist/os/rfc/types.js +118 -0
- package/dist/os/rfc/types.js.map +1 -0
- package/dist/os/rfc/verification-evidence.d.ts +15 -0
- package/dist/os/rfc/verification-evidence.d.ts.map +1 -0
- package/dist/os/rfc/verification-evidence.js +185 -0
- package/dist/os/rfc/verification-evidence.js.map +1 -0
- package/dist/os/rfc/verification-refresh.d.ts +4 -0
- package/dist/os/rfc/verification-refresh.d.ts.map +1 -0
- package/dist/os/rfc/verification-refresh.js +160 -0
- package/dist/os/rfc/verification-refresh.js.map +1 -0
- package/dist/os/session/atif-parser.d.ts +29 -0
- package/dist/os/session/atif-parser.d.ts.map +1 -0
- package/dist/os/session/atif-parser.js +140 -0
- package/dist/os/session/atif-parser.js.map +1 -0
- package/dist/os/session/frontmatter-io.d.ts +31 -0
- package/dist/os/session/frontmatter-io.d.ts.map +1 -0
- package/dist/os/session/frontmatter-io.js +146 -0
- package/dist/os/session/frontmatter-io.js.map +1 -0
- package/dist/os/session/handlers/archive.d.ts +4 -0
- package/dist/os/session/handlers/archive.d.ts.map +1 -0
- package/dist/os/session/handlers/archive.js +241 -0
- package/dist/os/session/handlers/archive.js.map +1 -0
- package/dist/os/session/handlers/list.d.ts +4 -0
- package/dist/os/session/handlers/list.d.ts.map +1 -0
- package/dist/os/session/handlers/list.js +147 -0
- package/dist/os/session/handlers/list.js.map +1 -0
- package/dist/os/session/handlers/metrics-aggregate.d.ts +4 -0
- package/dist/os/session/handlers/metrics-aggregate.d.ts.map +1 -0
- package/dist/os/session/handlers/metrics-aggregate.js +183 -0
- package/dist/os/session/handlers/metrics-aggregate.js.map +1 -0
- package/dist/os/session/handlers/metrics-rfc.d.ts +4 -0
- package/dist/os/session/handlers/metrics-rfc.d.ts.map +1 -0
- package/dist/os/session/handlers/metrics-rfc.js +272 -0
- package/dist/os/session/handlers/metrics-rfc.js.map +1 -0
- package/dist/os/session/handlers/metrics-session.d.ts +9 -0
- package/dist/os/session/handlers/metrics-session.d.ts.map +1 -0
- package/dist/os/session/handlers/metrics-session.js +167 -0
- package/dist/os/session/handlers/metrics-session.js.map +1 -0
- package/dist/os/session/handlers/save.d.ts +6 -0
- package/dist/os/session/handlers/save.d.ts.map +1 -0
- package/dist/os/session/handlers/save.js +319 -0
- package/dist/os/session/handlers/save.js.map +1 -0
- package/dist/os/session/handlers/validate.d.ts +4 -0
- package/dist/os/session/handlers/validate.d.ts.map +1 -0
- package/dist/os/session/handlers/validate.js +224 -0
- package/dist/os/session/handlers/validate.js.map +1 -0
- package/dist/os/session/index.d.ts +9 -0
- package/dist/os/session/index.d.ts.map +1 -0
- package/dist/os/session/index.js +21 -0
- package/dist/os/session/index.js.map +1 -0
- package/dist/os/session/session.module.d.ts +3 -0
- package/dist/os/session/session.module.d.ts.map +1 -0
- package/dist/os/session/session.module.js +147 -0
- package/dist/os/session/session.module.js.map +1 -0
- package/dist/os/session/types.d.ts +214 -0
- package/dist/os/session/types.d.ts.map +1 -0
- package/dist/os/session/types.js +61 -0
- package/dist/os/session/types.js.map +1 -0
- package/dist/os/spec/live-spec-list.d.ts +4 -0
- package/dist/os/spec/live-spec-list.d.ts.map +1 -0
- package/dist/os/spec/live-spec-list.js +72 -0
- package/dist/os/spec/live-spec-list.js.map +1 -0
- package/dist/os/spec/live-spec-merge.d.ts +4 -0
- package/dist/os/spec/live-spec-merge.d.ts.map +1 -0
- package/dist/os/spec/live-spec-merge.js +316 -0
- package/dist/os/spec/live-spec-merge.js.map +1 -0
- package/dist/os/spec/live-spec-show.d.ts +4 -0
- package/dist/os/spec/live-spec-show.d.ts.map +1 -0
- package/dist/os/spec/live-spec-show.js +105 -0
- package/dist/os/spec/live-spec-show.js.map +1 -0
- package/dist/os/spec/live-spec-types.d.ts +71 -0
- package/dist/os/spec/live-spec-types.d.ts.map +1 -0
- package/dist/os/spec/live-spec-types.js +14 -0
- package/dist/os/spec/live-spec-types.js.map +1 -0
- package/dist/os/spec/live-spec-validate.d.ts +4 -0
- package/dist/os/spec/live-spec-validate.d.ts.map +1 -0
- package/dist/os/spec/live-spec-validate.js +140 -0
- package/dist/os/spec/live-spec-validate.js.map +1 -0
- package/dist/os/spec/spec-materialize.d.ts +21 -0
- package/dist/os/spec/spec-materialize.d.ts.map +1 -0
- package/dist/os/spec/spec-materialize.js +342 -0
- package/dist/os/spec/spec-materialize.js.map +1 -0
- package/dist/os/spec/spec-schema.d.ts +126 -0
- package/dist/os/spec/spec-schema.d.ts.map +1 -0
- package/dist/os/spec/spec-schema.js +118 -0
- package/dist/os/spec/spec-schema.js.map +1 -0
- package/dist/os/spec/spec-status.d.ts +33 -0
- package/dist/os/spec/spec-status.d.ts.map +1 -0
- package/dist/os/spec/spec-status.js +228 -0
- package/dist/os/spec/spec-status.js.map +1 -0
- package/dist/os/spec/spec-validate.d.ts +4 -0
- package/dist/os/spec/spec-validate.d.ts.map +1 -0
- package/dist/os/spec/spec-validate.js +438 -0
- package/dist/os/spec/spec-validate.js.map +1 -0
- package/dist/os/spec/spec.module.d.ts +3 -0
- package/dist/os/spec/spec.module.d.ts.map +1 -0
- package/dist/os/spec/spec.module.js +129 -0
- package/dist/os/spec/spec.module.js.map +1 -0
- package/dist/os/werkstatt/handlers/lock.d.ts +10 -0
- package/dist/os/werkstatt/handlers/lock.d.ts.map +1 -0
- package/dist/os/werkstatt/handlers/lock.js +153 -0
- package/dist/os/werkstatt/handlers/lock.js.map +1 -0
- package/dist/os/werkstatt/handlers/schema.d.ts +33 -0
- package/dist/os/werkstatt/handlers/schema.d.ts.map +1 -0
- package/dist/os/werkstatt/handlers/schema.js +42 -0
- package/dist/os/werkstatt/handlers/schema.js.map +1 -0
- package/dist/os/werkstatt/handlers/werkstatt-lock-recover.d.ts +15 -0
- package/dist/os/werkstatt/handlers/werkstatt-lock-recover.d.ts.map +1 -0
- package/dist/os/werkstatt/handlers/werkstatt-lock-recover.js +152 -0
- package/dist/os/werkstatt/handlers/werkstatt-lock-recover.js.map +1 -0
- package/dist/os/werkstatt/handlers/werkstatt-lock-status.d.ts +18 -0
- package/dist/os/werkstatt/handlers/werkstatt-lock-status.d.ts.map +1 -0
- package/dist/os/werkstatt/handlers/werkstatt-lock-status.js +51 -0
- package/dist/os/werkstatt/handlers/werkstatt-lock-status.js.map +1 -0
- package/dist/os/werkstatt/handlers/werkstatt-operation-validate.d.ts +11 -0
- package/dist/os/werkstatt/handlers/werkstatt-operation-validate.d.ts.map +1 -0
- package/dist/os/werkstatt/handlers/werkstatt-operation-validate.js +79 -0
- package/dist/os/werkstatt/handlers/werkstatt-operation-validate.js.map +1 -0
- package/dist/os/werkstatt/handlers/workspace-deps.d.ts +12 -0
- package/dist/os/werkstatt/handlers/workspace-deps.d.ts.map +1 -0
- package/dist/os/werkstatt/handlers/workspace-deps.js +42 -0
- package/dist/os/werkstatt/handlers/workspace-deps.js.map +1 -0
- package/dist/os/werkstatt/index.d.ts +7 -0
- package/dist/os/werkstatt/index.d.ts.map +1 -0
- package/dist/os/werkstatt/index.js +18 -0
- package/dist/os/werkstatt/index.js.map +1 -0
- package/dist/os/werkstatt/werkstatt.module.d.ts +3 -0
- package/dist/os/werkstatt/werkstatt.module.d.ts.map +1 -0
- package/dist/os/werkstatt/werkstatt.module.js +63 -0
- package/dist/os/werkstatt/werkstatt.module.js.map +1 -0
- package/dist/os/workflow/handlers.d.ts +12 -0
- package/dist/os/workflow/handlers.d.ts.map +1 -0
- package/dist/os/workflow/handlers.js +262 -0
- package/dist/os/workflow/handlers.js.map +1 -0
- package/dist/os/workflow/index.d.ts +4 -0
- package/dist/os/workflow/index.d.ts.map +1 -0
- package/dist/os/workflow/index.js +18 -0
- package/dist/os/workflow/index.js.map +1 -0
- package/dist/os/workflow/types.d.ts +69 -0
- package/dist/os/workflow/types.d.ts.map +1 -0
- package/dist/os/workflow/types.js +23 -0
- package/dist/os/workflow/types.js.map +1 -0
- package/dist/os/workflow/workflow.module.d.ts +3 -0
- package/dist/os/workflow/workflow.module.d.ts.map +1 -0
- package/dist/os/workflow/workflow.module.js +56 -0
- package/dist/os/workflow/workflow.module.js.map +1 -0
- package/dist/src/cli-output.d.ts +5 -0
- package/dist/src/cli-output.d.ts.map +1 -0
- package/dist/src/cli-output.js +53 -0
- package/dist/src/cli-output.js.map +1 -0
- package/dist/src/compass/contract-registry.d.ts +7 -0
- package/dist/src/compass/contract-registry.d.ts.map +1 -0
- package/dist/src/compass/contract-registry.js +112 -0
- package/dist/src/compass/contract-registry.js.map +1 -0
- package/dist/src/compass/types.d.ts +28 -0
- package/dist/src/compass/types.d.ts.map +1 -0
- package/dist/src/compass/types.js +14 -0
- package/dist/src/compass/types.js.map +1 -0
- package/dist/src/config/forge-config.d.ts +242 -0
- package/dist/src/config/forge-config.d.ts.map +1 -0
- package/dist/src/config/forge-config.js +363 -0
- package/dist/src/config/forge-config.js.map +1 -0
- package/dist/src/forge-module.d.ts +29 -0
- package/dist/src/forge-module.d.ts.map +1 -0
- package/dist/src/forge-module.js +16 -0
- package/dist/src/forge-module.js.map +1 -0
- package/dist/src/index.d.ts +39 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +59 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/knowledge/budgets.d.ts +38 -0
- package/dist/src/knowledge/budgets.d.ts.map +1 -0
- package/dist/src/knowledge/budgets.js +157 -0
- package/dist/src/knowledge/budgets.js.map +1 -0
- package/dist/src/knowledge/compact.d.ts +47 -0
- package/dist/src/knowledge/compact.d.ts.map +1 -0
- package/dist/src/knowledge/compact.js +320 -0
- package/dist/src/knowledge/compact.js.map +1 -0
- package/dist/src/knowledge/index.d.ts +7 -0
- package/dist/src/knowledge/index.d.ts.map +1 -0
- package/dist/src/knowledge/index.js +19 -0
- package/dist/src/knowledge/index.js.map +1 -0
- package/dist/src/knowledge/parse.d.ts +3 -0
- package/dist/src/knowledge/parse.d.ts.map +1 -0
- package/dist/src/knowledge/parse.js +205 -0
- package/dist/src/knowledge/parse.js.map +1 -0
- package/dist/src/knowledge/promote.d.ts +37 -0
- package/dist/src/knowledge/promote.d.ts.map +1 -0
- package/dist/src/knowledge/promote.js +120 -0
- package/dist/src/knowledge/promote.js.map +1 -0
- package/dist/src/knowledge/schema.d.ts +61 -0
- package/dist/src/knowledge/schema.d.ts.map +1 -0
- package/dist/src/knowledge/schema.js +64 -0
- package/dist/src/knowledge/schema.js.map +1 -0
- package/dist/src/knowledge/serialize.d.ts +3 -0
- package/dist/src/knowledge/serialize.d.ts.map +1 -0
- package/dist/src/knowledge/serialize.js +67 -0
- package/dist/src/knowledge/serialize.js.map +1 -0
- package/dist/src/migration-adapters/git-utils.d.ts +3 -0
- package/dist/src/migration-adapters/git-utils.d.ts.map +1 -0
- package/dist/src/migration-adapters/git-utils.js +65 -0
- package/dist/src/migration-adapters/git-utils.js.map +1 -0
- package/dist/src/migration-adapters/ignored-files.d.ts +12 -0
- package/dist/src/migration-adapters/ignored-files.d.ts.map +1 -0
- package/dist/src/migration-adapters/ignored-files.js +190 -0
- package/dist/src/migration-adapters/ignored-files.js.map +1 -0
- package/dist/src/migration-adapters/index.d.ts +8 -0
- package/dist/src/migration-adapters/index.d.ts.map +1 -0
- package/dist/src/migration-adapters/index.js +17 -0
- package/dist/src/migration-adapters/index.js.map +1 -0
- package/dist/src/migration-adapters/node-typescript-pnpm/index.d.ts +3 -0
- package/dist/src/migration-adapters/node-typescript-pnpm/index.d.ts.map +1 -0
- package/dist/src/migration-adapters/node-typescript-pnpm/index.js +141 -0
- package/dist/src/migration-adapters/node-typescript-pnpm/index.js.map +1 -0
- package/dist/src/migration-adapters/phaser-pnpm/index.d.ts +3 -0
- package/dist/src/migration-adapters/phaser-pnpm/index.d.ts.map +1 -0
- package/dist/src/migration-adapters/phaser-pnpm/index.js +142 -0
- package/dist/src/migration-adapters/phaser-pnpm/index.js.map +1 -0
- package/dist/src/migration-adapters/registry.d.ts +6 -0
- package/dist/src/migration-adapters/registry.d.ts.map +1 -0
- package/dist/src/migration-adapters/registry.js +55 -0
- package/dist/src/migration-adapters/registry.js.map +1 -0
- package/dist/src/migration-adapters/types.d.ts +35 -0
- package/dist/src/migration-adapters/types.d.ts.map +1 -0
- package/dist/src/migration-adapters/types.js +31 -0
- package/dist/src/migration-adapters/types.js.map +1 -0
- package/dist/src/onboarding/agents-generate.d.ts +31 -0
- package/dist/src/onboarding/agents-generate.d.ts.map +1 -0
- package/dist/src/onboarding/agents-generate.js +373 -0
- package/dist/src/onboarding/agents-generate.js.map +1 -0
- package/dist/src/onboarding/create.d.ts +12 -0
- package/dist/src/onboarding/create.d.ts.map +1 -0
- package/dist/src/onboarding/create.js +408 -0
- package/dist/src/onboarding/create.js.map +1 -0
- package/dist/src/onboarding/doctor.d.ts +45 -0
- package/dist/src/onboarding/doctor.d.ts.map +1 -0
- package/dist/src/onboarding/doctor.js +1222 -0
- package/dist/src/onboarding/doctor.js.map +1 -0
- package/dist/src/onboarding/init.d.ts +36 -0
- package/dist/src/onboarding/init.d.ts.map +1 -0
- package/dist/src/onboarding/init.js +412 -0
- package/dist/src/onboarding/init.js.map +1 -0
- package/dist/src/onboarding/invariant-engine.d.ts +17 -0
- package/dist/src/onboarding/invariant-engine.d.ts.map +1 -0
- package/dist/src/onboarding/invariant-engine.js +416 -0
- package/dist/src/onboarding/invariant-engine.js.map +1 -0
- package/dist/src/onboarding/memory-scaffold.d.ts +18 -0
- package/dist/src/onboarding/memory-scaffold.d.ts.map +1 -0
- package/dist/src/onboarding/memory-scaffold.js +151 -0
- package/dist/src/onboarding/memory-scaffold.js.map +1 -0
- package/dist/src/onboarding/nested-agents-generate.d.ts +18 -0
- package/dist/src/onboarding/nested-agents-generate.d.ts.map +1 -0
- package/dist/src/onboarding/nested-agents-generate.js +69 -0
- package/dist/src/onboarding/nested-agents-generate.js.map +1 -0
- package/dist/src/onboarding/nested-agents-templates.d.ts +26 -0
- package/dist/src/onboarding/nested-agents-templates.d.ts.map +1 -0
- package/dist/src/onboarding/nested-agents-templates.js +179 -0
- package/dist/src/onboarding/nested-agents-templates.js.map +1 -0
- package/dist/src/onboarding/profile-validate.d.ts +13 -0
- package/dist/src/onboarding/profile-validate.d.ts.map +1 -0
- package/dist/src/onboarding/profile-validate.js +109 -0
- package/dist/src/onboarding/profile-validate.js.map +1 -0
- package/dist/src/onboarding/scaffold-project.d.ts +12 -0
- package/dist/src/onboarding/scaffold-project.d.ts.map +1 -0
- package/dist/src/onboarding/scaffold-project.js +264 -0
- package/dist/src/onboarding/scaffold-project.js.map +1 -0
- package/dist/src/onboarding/scaffold.d.ts +15 -0
- package/dist/src/onboarding/scaffold.d.ts.map +1 -0
- package/dist/src/onboarding/scaffold.js +123 -0
- package/dist/src/onboarding/scaffold.js.map +1 -0
- package/dist/src/onboarding/upgrade.d.ts +27 -0
- package/dist/src/onboarding/upgrade.d.ts.map +1 -0
- package/dist/src/onboarding/upgrade.js +453 -0
- package/dist/src/onboarding/upgrade.js.map +1 -0
- package/dist/src/onboarding/workspace-discovery.d.ts +11 -0
- package/dist/src/onboarding/workspace-discovery.d.ts.map +1 -0
- package/dist/src/onboarding/workspace-discovery.js +138 -0
- package/dist/src/onboarding/workspace-discovery.js.map +1 -0
- package/dist/src/plugin/forge-plugin-manifest.d.ts +38 -0
- package/dist/src/plugin/forge-plugin-manifest.d.ts.map +1 -0
- package/dist/src/plugin/forge-plugin-manifest.js +52 -0
- package/dist/src/plugin/forge-plugin-manifest.js.map +1 -0
- package/dist/src/profiles/profile-schema.d.ts +361 -0
- package/dist/src/profiles/profile-schema.d.ts.map +1 -0
- package/dist/src/profiles/profile-schema.js +208 -0
- package/dist/src/profiles/profile-schema.js.map +1 -0
- package/dist/src/profiles/stack-profile.d.ts +173 -0
- package/dist/src/profiles/stack-profile.d.ts.map +1 -0
- package/dist/src/profiles/stack-profile.js +148 -0
- package/dist/src/profiles/stack-profile.js.map +1 -0
- package/dist/src/profiles/terminology-utils.d.ts +8 -0
- package/dist/src/profiles/terminology-utils.d.ts.map +1 -0
- package/dist/src/profiles/terminology-utils.js +31 -0
- package/dist/src/profiles/terminology-utils.js.map +1 -0
- package/dist/src/registry.d.ts +38 -0
- package/dist/src/registry.d.ts.map +1 -0
- package/dist/src/registry.js +174 -0
- package/dist/src/registry.js.map +1 -0
- package/dist/src/skill-schema.d.ts +30 -0
- package/dist/src/skill-schema.d.ts.map +1 -0
- package/dist/src/skill-schema.js +34 -0
- package/dist/src/skill-schema.js.map +1 -0
- package/dist/src/types.d.ts +158 -0
- package/dist/src/types.d.ts.map +1 -0
- package/dist/src/types.js +17 -0
- package/dist/src/types.js.map +1 -0
- package/dist/src/utils/fs-atomic.d.ts +7 -0
- package/dist/src/utils/fs-atomic.d.ts.map +1 -0
- package/dist/src/utils/fs-atomic.js +81 -0
- package/dist/src/utils/fs-atomic.js.map +1 -0
- package/dist/src/utils/fs-idempotent.d.ts +2 -0
- package/dist/src/utils/fs-idempotent.d.ts.map +1 -0
- package/dist/src/utils/fs-idempotent.js +39 -0
- package/dist/src/utils/fs-idempotent.js.map +1 -0
- package/dist/src/utils/fs-trash-sync.d.ts +2 -0
- package/dist/src/utils/fs-trash-sync.d.ts.map +1 -0
- package/dist/src/utils/fs-trash-sync.js +34 -0
- package/dist/src/utils/fs-trash-sync.js.map +1 -0
- package/dist/src/utils/fs-trash.d.ts +2 -0
- package/dist/src/utils/fs-trash.d.ts.map +1 -0
- package/dist/src/utils/fs-trash.js +24 -0
- package/dist/src/utils/fs-trash.js.map +1 -0
- package/dist/src/utils/fs.d.ts +8 -0
- package/dist/src/utils/fs.d.ts.map +1 -0
- package/dist/src/utils/fs.js +60 -0
- package/dist/src/utils/fs.js.map +1 -0
- package/dist/src/utils/generated-marker.d.ts +28 -0
- package/dist/src/utils/generated-marker.d.ts.map +1 -0
- package/dist/src/utils/generated-marker.js +138 -0
- package/dist/src/utils/generated-marker.js.map +1 -0
- package/dist/src/utils/hash.d.ts +2 -0
- package/dist/src/utils/hash.d.ts.map +1 -0
- package/dist/src/utils/hash.js +18 -0
- package/dist/src/utils/hash.js.map +1 -0
- package/dist/src/utils/index.d.ts +9 -0
- package/dist/src/utils/index.d.ts.map +1 -0
- package/dist/src/utils/index.js +21 -0
- package/dist/src/utils/index.js.map +1 -0
- package/dist/src/utils/string-utils.d.ts +2 -0
- package/dist/src/utils/string-utils.d.ts.map +1 -0
- package/dist/src/utils/string-utils.js +19 -0
- package/dist/src/utils/string-utils.js.map +1 -0
- package/dist/src/validators/note-frontmatter-validate.d.ts +20 -0
- package/dist/src/validators/note-frontmatter-validate.d.ts.map +1 -0
- package/dist/src/validators/note-frontmatter-validate.js +117 -0
- package/dist/src/validators/note-frontmatter-validate.js.map +1 -0
- package/dist/src/validators/note-link-validate.d.ts +21 -0
- package/dist/src/validators/note-link-validate.d.ts.map +1 -0
- package/dist/src/validators/note-link-validate.js +121 -0
- package/dist/src/validators/note-link-validate.js.map +1 -0
- package/dist/src/validators/note-orphan-detect.d.ts +19 -0
- package/dist/src/validators/note-orphan-detect.d.ts.map +1 -0
- package/dist/src/validators/note-orphan-detect.js +123 -0
- package/dist/src/validators/note-orphan-detect.js.map +1 -0
- package/dist/src/validators/port-validate.d.ts +12 -0
- package/dist/src/validators/port-validate.d.ts.map +1 -0
- package/dist/src/validators/port-validate.js +78 -0
- package/dist/src/validators/port-validate.js.map +1 -0
- package/dist/src/validators/skill-validate.d.ts +29 -0
- package/dist/src/validators/skill-validate.d.ts.map +1 -0
- package/dist/src/validators/skill-validate.js +689 -0
- package/dist/src/validators/skill-validate.js.map +1 -0
- package/docs/concepts/governance-model.md +33 -0
- package/docs/concepts/project-contract.md +61 -0
- package/docs/concepts/why-forge.md +46 -0
- package/docs/getting-started.md +44 -0
- package/docs/guides/existing-project.md +38 -0
- package/docs/guides/rfc-adr.md +61 -0
- package/docs/guides/skills.md +60 -0
- package/docs/guides/upgrading.md +35 -0
- package/docs/maintainers/publishing.md +34 -0
- package/docs/reference/cli.md +140 -0
- package/docs/reference/forge-yaml.md +114 -0
- package/docs/reference/profiles.md +37 -0
- package/docs/reference/programmatic-api.md +79 -0
- package/os/core/core.module.ts +15 -0
- package/os/core/handlers/public-surface.ts +189 -0
- package/os/rfc/handlers/validate-rules.ts +0 -1
- package/os/rfc/verification-refresh.test.ts +15 -14
- package/os/rfc/verification-refresh.ts +1 -7
- package/os/session/handlers/metrics-session.ts +10 -9
- package/package.json +15 -7
- package/src/tests/metrics-rfc-1053.test.ts +14 -4
- package/src/tests/public-surface.test.ts +247 -0
package/README.uk.md
CHANGED
|
@@ -2,598 +2,192 @@
|
|
|
2
2
|
|
|
3
3
|
Українська | [English](README.md)
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
**ШІ може писати код. Forge тримає проєкт інженерним.**
|
|
6
|
+
|
|
7
|
+
Репозиторіо-нативний шар управління для розробки за допомогою ШІ. Рішення, правила, навички та перевірки залишаються з проєктом — незалежно від агента, який з ним працює.
|
|
6
8
|
|
|
7
9
|
> Розроблено в [Warpgogol](https://warpgogol.com) · Опубліковано як open source.
|
|
8
10
|
|
|
11
|
+
[](https://www.npmjs.com/package/@warpgogol/forge) [](https://www.npmjs.com/package/@warpgogol/forge) [](https://github.com/syrokomskyi/forge/actions) [](https://nodejs.org) [](LICENSE)
|
|
12
|
+
|
|
9
13
|
---
|
|
10
14
|
|
|
11
|
-
##
|
|
15
|
+
## Почни зараз
|
|
12
16
|
|
|
13
|
-
Створіть нову папку, відкрийте її у вашому ШІ-IDE (Windsurf, Cursor або будь-якому IDE з підтримкою ШІ-агентів) і вставте це:
|
|
17
|
+
Створіть нову папку, відкрийте її у вашому ШІ-IDE (Windsurf, Cursor, Claude Code, Codex CLI або будь-якому IDE з підтримкою ШІ-агентів) і вставте це:
|
|
14
18
|
|
|
15
19
|
```
|
|
16
|
-
Install https://npmjs.com/package/@warpgogol/forge in this folder and set up my project. I want to build: [
|
|
20
|
+
Install https://npmjs.com/package/@warpgogol/forge in this folder and set up my project. I want to build: [describe your project]
|
|
17
21
|
```
|
|
18
22
|
|
|
19
|
-
Замініть `[
|
|
23
|
+
Замініть `[describe your project]` своєю ідеєю — гра, бібліотека, база знань, будь-що. ШІ-агент встановить Forge, створить структуру проєкту і налаштує живий прев'ю. Далі ви просто говорите: описуєте, що хочете, і агент будує. Без програмування, без терміналу, без команд.
|
|
20
24
|
|
|
21
|
-
### Після
|
|
25
|
+
### Після завершення промпту — Bootstrap skill
|
|
22
26
|
|
|
23
|
-
Коли ШІ-агент встановить Forge і
|
|
27
|
+
Коли ШІ-агент встановить Forge і створить структуру проєкту, він запустить навичку `/forge-bootstrap`. Це обов'язковий крок, який інтерактивно налаштовує ваш проєкт:
|
|
24
28
|
|
|
25
29
|
- Мову, якою ШІ спілкується з вами
|
|
26
30
|
- Мову документації проєкту (RFC, ADR, README) — за замовчуванням англійська
|
|
27
31
|
- Ваш стиль роботи — діловий або творчий
|
|
28
|
-
- Ваше ім'я та форму
|
|
29
|
-
-
|
|
30
|
-
|
|
31
|
-
Навичка ставить кілька простих запитань у чаті, а потім налаштовує все. Після завершення ви готові творити — просто скажіть ШІ-агенту, що ви хочете створити.
|
|
32
|
-
|
|
33
|
-
---
|
|
34
|
-
|
|
35
|
-
## Що можна створити за допомогою Forge
|
|
36
|
-
|
|
37
|
-
Forge підтримує п'ять типів проєктів. Ви обираєте один на старті — все інше відбувається автоматично.
|
|
32
|
+
- Ваше ім'я та форму звернення
|
|
33
|
+
- Вашу конфігурацію стеку (або міграцію існуючого проєкту)
|
|
38
34
|
|
|
39
|
-
|
|
40
|
-
| --- | --- | --- |
|
|
41
|
-
| **Браузерна гра** | Інтерактивна гра, що працює в браузері — 2D, аркада, головоломка, пригода | Лови зірки, головоломка з плитками, платформер |
|
|
42
|
-
| **Управління / бібліотека** | Бібліотека коду або проєкт лише з управлінською структурою — без сайту, без гри, без відео, лише структура та документація | npm-пакет, внутрішній інструмент, центр документації |
|
|
43
|
-
| **Гра Godot** | Десктопна або мобільна гра на Godot 4.x з C# — 2D, 3D, платформер, RPG | Пригода з виглядом зверху, 3D-платформер, головоломка |
|
|
44
|
-
| **Система знань** | База знань з підтримкою доказів — структуровані набори даних, де твердження підтверджені зареєстрованими джерелами | База знань гри, доменна онтологія, куратований довідковий набір даних |
|
|
45
|
-
| **Бібліотека TypeScript** | Універсальний TypeScript монорепозиторій з валідаторами найкращих практик — tsconfig, межі імпортів, фантомні залежності, експорти пакетів, strict mode, безпека barrel-експортів | Внутрішній інструмент, спільна бібліотека, TypeScript монорепозиторій |
|
|
46
|
-
|
|
47
|
-
Кожен тип проєкту отримує власний каркас: правильну структуру папок, правильні залежності, правильні інструменти. Вам не потрібно знати, що це таке — Forge налаштує все за вас.
|
|
35
|
+
Навичка ставить кілька простих запитань у чаті, потім усе налаштовує. Після завершення ви готові творити — просто скажіть ШІ-агенту, що хочете побудувати.
|
|
48
36
|
|
|
49
37
|
---
|
|
50
38
|
|
|
51
|
-
##
|
|
52
|
-
|
|
53
|
-
Forge — це **шар управління**: навички, RFC/ADR робочі процеси, угоди про найменування, вендоринг специфікацій та CLI. Він незалежний від фреймворку та не має Runtime-залежностей (тільки `yaml` + `zod`).
|
|
54
|
-
|
|
55
|
-
Для повного управління життєвим циклом проєкту — місії, релізи, розгортання, сертифікація, перевірки якості, генерація контенту — Forge підключається до **рушія Werkstatt** та **плагінів специфічних для стеку**. Це окремі npm-пакети, які встановлюються разом з Forge, коли потрібні можливості runtime понад управління.
|
|
56
|
-
|
|
57
|
-
| Пакет | Призначення | Потрібен для |
|
|
58
|
-
| --- | --- | --- |
|
|
59
|
-
| [`@warpgogol/werkstatt`](https://github.com/syrokomskyi/werkstatt) | Рушій runtime — місії, релізи, розгортання Leitstand, сертифікація, Bordbuch, сховище артефактів | Усі типи проєктів з управлінням життєвим циклом |
|
|
60
|
-
| [`@warpgogol/werkstatt-shared`](https://github.com/syrokomskyi/werkstatt-shared) | Спільна інфраструктура — перевірки, інтеграція, онтологія, паспорт | Встановлюється автоматично з рушієм |
|
|
61
|
-
| [`@warpgogol/werkstatt-phaser-game`](https://github.com/syrokomskyi/werkstatt-phaser-game) | Плагін Phaser-гри — валідатори phaser, збірка Vite, адаптери розгортання | Проєкти браузерних ігор (`phaser-turborepo`) |
|
|
62
|
-
| [`@warpgogol/werkstatt-godot-game`](https://github.com/syrokomskyi/werkstatt-godot-game) | Плагін Godot — валідатори сцен, збірка dotnet, розгортання itch.io, навички Godot | Проєкти ігор Godot (`godot-csharp`) |
|
|
63
|
-
| [`@warpgogol/werkstatt-knowledge`](https://github.com/syrokomskyi/werkstatt-knowledge) | Плагін системи знань — прив'язка джерел, канонічна верифікація, екстракція, матеріалізація, перевірки релізу | Проєкти систем знань (`knowledge-typescript-turborepo`) |
|
|
64
|
-
| [`@warpgogol/werkstatt-typescript`](https://github.com/syrokomskyi/werkstatt-typescript) | Плагін TypeScript — tsconfig, межі імпортів, фантомні залежності, експорти пакетів, strict mode, barrel-валідатори | Проєкти TypeScript TurboRepo (`typescript-turborepo`) |
|
|
65
|
-
|
|
66
|
-
### Коли потрібні ці пакети
|
|
67
|
-
|
|
68
|
-
- **Проєкти лише з управлінням** (RFC, ADR, навички, центри документації) — Forge сам по собі достатній.
|
|
69
|
-
- **Ігри, проєкти Godot, системи знань** — встановіть `@warpgogol/werkstatt` (рушій) плюс відповідний плагін стеку. Навичка `forge-bootstrap` налаштовує прив'язки автоматично; самі пакети потрібно встановити як devDependencies.
|
|
70
|
-
|
|
71
|
-
### Встановлення пакунків рушія
|
|
39
|
+
## Швидкий старт (термінал)
|
|
72
40
|
|
|
73
41
|
```sh
|
|
74
|
-
|
|
75
|
-
pnpm add -D @warpgogol/werkstatt @warpgogol/werkstatt-phaser-game
|
|
76
|
-
|
|
77
|
-
# Проєкт гри Godot
|
|
78
|
-
pnpm add -D @warpgogol/werkstatt @warpgogol/werkstatt-godot-game
|
|
79
|
-
|
|
80
|
-
# Проєкт системи знань
|
|
81
|
-
pnpm add -D @warpgogol/werkstatt @warpgogol/werkstatt-knowledge
|
|
82
|
-
|
|
83
|
-
# Проєкт TypeScript TurboRepo
|
|
84
|
-
pnpm add -D @warpgogol/werkstatt @warpgogol/werkstatt-typescript
|
|
42
|
+
pnpm dlx @warpgogol/forge@latest create --in-place --profile typescript-turborepo
|
|
85
43
|
```
|
|
86
44
|
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
---
|
|
90
|
-
|
|
91
|
-
## Повний посібник зі встановлення (з нуля)
|
|
92
|
-
|
|
93
|
-
Якщо ви ніколи раніше не програмували, цей розділ проведе вас від абсолютно порожнього комп'ютера до робочого налаштування Forge. Виконайте кроки для вашої операційної системи.
|
|
94
|
-
|
|
95
|
-
### Що вам потрібно
|
|
96
|
-
|
|
97
|
-
Потрібні дві безкоштовні програми:
|
|
98
|
-
|
|
99
|
-
- **Node.js** (версія 24 або новіша) — дозволяє вашому комп'ютеру запускати JavaScript-інструменти.
|
|
100
|
-
- **pnpm** — менеджер пакетів, який Forge використовує для встановлення залежностей. Він вбудований у Node.js і його лише треба увімкнути.
|
|
101
|
-
|
|
102
|
-
Обидві програми безкоштовні. Спочатку встановлюєте Node.js, потім вмикаєте pnpm однією командою.
|
|
103
|
-
|
|
104
|
-
### Ubuntu
|
|
105
|
-
|
|
106
|
-
#### Крок 1 — Встановлення Node.js
|
|
45
|
+
Потім відкрийте проєкт у вашому ШІ-IDE (Windsurf, Cursor, Claude Code, Codex CLI або будь-якому IDE з підтримкою ШІ-агентів) і скажіть агентові, що ви хочете створити.
|
|
107
46
|
|
|
108
|
-
|
|
47
|
+
Одна команда. Далі — робота через агента.
|
|
109
48
|
|
|
110
|
-
|
|
49
|
+
### Профілі стеку
|
|
111
50
|
|
|
112
|
-
|
|
113
|
-
curl -fsSL https://deb.nodesource.com/setup_24.x | sudo -E bash - && sudo apt-get install -y nodejs
|
|
114
|
-
```
|
|
51
|
+
Forge не залежить від типу проєкту. Профілі стеку — готові стартові точки.
|
|
115
52
|
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
Ви маєте побачити номер версії, наприклад `v22.x.x`, а не повідомлення про помилку.
|
|
125
|
-
|
|
126
|
-
#### Крок 2 — Увімкнення pnpm
|
|
127
|
-
|
|
128
|
-
Node.js містить інструмент **Corepack**, який керує менеджерами пакетів. Увімкніть pnpm командою:
|
|
129
|
-
|
|
130
|
-
```sh
|
|
131
|
-
corepack enable pnpm
|
|
132
|
-
```
|
|
133
|
-
|
|
134
|
-
Перевірте:
|
|
53
|
+
| Профіль | Призначення |
|
|
54
|
+
| -------------------------------- | ------------------------------------------- |
|
|
55
|
+
| `forge-shell` | Лише управління, бібліотеки, не-веб проєкти |
|
|
56
|
+
| `typescript-turborepo` | TypeScript монорепозиторій з валідаторами |
|
|
57
|
+
| `phaser-turborepo` | Браузерні ігри, інтерактивні досвіди |
|
|
58
|
+
| `godot-csharp` | Десктопні/мобільні ігри на Godot 4.x + C# |
|
|
59
|
+
| `knowledge-typescript-turborepo` | Бази знань з підтримкою доказів |
|
|
135
60
|
|
|
136
61
|
```sh
|
|
137
|
-
|
|
62
|
+
# Перелічити доступні профілі
|
|
63
|
+
pnpm exec forge profile.validate
|
|
138
64
|
```
|
|
139
65
|
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
#### Крок 3 — Встановлення IDE зі штучним інтелектом
|
|
143
|
-
|
|
144
|
-
Forge працює через розмову з ШІ-агентом. Вам потрібне IDE, що підтримує ШІ-агентів. Рекомендуємо **Windsurf** (протестовано з Forge):
|
|
145
|
-
|
|
146
|
-
1. Перейдіть на [windsurf.com](https://windsurf.com) та завантажте версію для Linux.
|
|
147
|
-
2. Відкрийте завантажений файл і дотримуйтесь інструкцій установника.
|
|
148
|
-
3. Запустіть Windsurf.
|
|
149
|
-
|
|
150
|
-
Можете також використовувати **Cursor** ([cursor.com](https://cursor.com)) або будь-яке IDE, що підтримує навички ШІ-агентів.
|
|
151
|
-
|
|
152
|
-
### Windows
|
|
153
|
-
|
|
154
|
-
#### Крок 1 — Встановлення Node.js
|
|
155
|
-
|
|
156
|
-
1. Відкрийте [nodejs.org](https://nodejs.org) у вашому браузері.
|
|
157
|
-
2. Завантажте **LTS-версію** (на ній буде написано «LTS» та «Recommended for Most Users»). Версія має бути 22.x або новіша.
|
|
158
|
-
3. Запустіть завантажений установник (файл `.msi`). Прийміть усі стандартні параметри, натискаючи **Next** на кожному екрані, потім **Install**. Якщо Windows попросить дозвіл, натисніть **Yes**.
|
|
159
|
-
|
|
160
|
-
4. Перевірте, чи все працює. Відкрийте **PowerShell** (знайдіть «PowerShell» у меню Пуск) і введіть:
|
|
161
|
-
|
|
162
|
-
```sh
|
|
163
|
-
node --version
|
|
164
|
-
```
|
|
165
|
-
|
|
166
|
-
Ви маєте побачити номер версії, наприклад `v22.x.x`, а не повідомлення про помилку.
|
|
167
|
-
|
|
168
|
-
#### Крок 2 — Увімкнення pnpm
|
|
169
|
-
|
|
170
|
-
Node.js містить інструмент **Corepack**, який керує менеджерами пакетів. Увімкніть pnpm командою:
|
|
171
|
-
|
|
172
|
-
```sh
|
|
173
|
-
corepack enable pnpm
|
|
174
|
-
```
|
|
66
|
+
---
|
|
175
67
|
|
|
176
|
-
|
|
68
|
+
## Архітектура
|
|
177
69
|
|
|
178
|
-
```sh
|
|
179
|
-
pnpm --version
|
|
180
70
|
```
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
### Додатково — Встановлення Godot та .NET (лише для проєктів ігор Godot)
|
|
195
|
-
|
|
196
|
-
Якщо ви плануєте створювати **ігри Godot** (профіль `godot-csharp`), вам потрібні два додаткові інструменти:
|
|
197
|
-
|
|
198
|
-
- **Godot 4.x** (з підтримкою .NET) — ігровий рушій. Завантажте його з [godotengine.org/download](https://godotengine.org/download). Обов'язково оберіть версію ".NET" (не стандартну версію).
|
|
199
|
-
- **.NET SDK 8+** — runtime C# та інструменти збірки. Завантажте з [dotnet.microsoft.com/download](https://dotnet.microsoft.com/download).
|
|
200
|
-
|
|
201
|
-
Перевірте, що обидва встановлені:
|
|
202
|
-
|
|
203
|
-
```sh
|
|
204
|
-
godot --version
|
|
205
|
-
dotnet --version
|
|
71
|
+
IDE / АГЕНТ / МОДЕЛЬ
|
|
72
|
+
↓
|
|
73
|
+
┌──────────────────────────────────┐
|
|
74
|
+
│ FORGE │
|
|
75
|
+
│ │
|
|
76
|
+
│ Контракт проєкту forge.yaml │
|
|
77
|
+
│ Рішення RFC / ADR │
|
|
78
|
+
│ Поведінка агента Skills │
|
|
79
|
+
│ Перевірка Validators │
|
|
80
|
+
│ Еволюція Upgrade │
|
|
81
|
+
└──────────────────────────────────┘
|
|
82
|
+
↓
|
|
83
|
+
ВАШ РЕПОЗИТОРІЙ
|
|
206
84
|
```
|
|
207
85
|
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
- **«command not found» після встановлення Node.js** — Закрийте та знову відкрийте термінал (Ubuntu) або PowerShell (Windows). Системі потрібно перезавантажити список доступних команд.
|
|
211
|
-
- **«corepack: command not found»** — Ваша версія Node.js занадто стара. Встановіть Node.js 24+ за кроками вище.
|
|
212
|
-
- **ШІ-агент не знає про Forge** — Ви відкрили порожню папку, але ШІ-агент не має контексту Forge. Спочатку виконайте `pnpm dlx @warpgogol/forge create --in-place --profile phaser-turborepo` (або відповідний профіль) у терміналі, потім відкрийте папку в вашому IDE. Команда `forge create` наповнює поточну папку навичками, конфігурацією та `AGENTS.md` — без цього ШІ-агент не може виявити Forge.
|
|
86
|
+
Агенти можуть змінюватися. Моделі можуть змінюватися. IDE можуть змінюватися. Інженерні правила залишаються з проєктом.
|
|
213
87
|
|
|
214
88
|
---
|
|
215
89
|
|
|
216
|
-
##
|
|
217
|
-
|
|
218
|
-
### Для креативних операторів — одна команда, потім просто розмовляйте
|
|
219
|
-
|
|
220
|
-
Потрібно виконати одну команду в терміналі для створення проєкту. Після цього все працює через розмову з ШІ-агентом — більше команд не потрібно.
|
|
221
|
-
|
|
222
|
-
#### Створення нового проєкту з нуля
|
|
223
|
-
|
|
224
|
-
1. **Створіть папку проєкту та згенеруйте каркас Forge на місці.** Відкрийте термінал (PowerShell на Windows, Термінал на Ubuntu) і виконайте:
|
|
225
|
-
|
|
226
|
-
```sh
|
|
227
|
-
mkdir my-game
|
|
228
|
-
cd my-game
|
|
229
|
-
pnpm dlx @warpgogol/forge create --in-place --profile phaser-turborepo
|
|
230
|
-
```
|
|
231
|
-
|
|
232
|
-
Назва проєкту визначається з назви папки (`my-game` у цьому прикладі). Ви можете перевизначити її прапорцем `--name`. Це наповнює поточну папку усьом, що потрібно Forge — навичками, конфігурацією та структурою проєкту. Для інших типів проєктів використовуйте інший `--profile`:
|
|
233
|
-
|
|
234
|
-
| Що ви хочете створити | Прапорець профілю |
|
|
235
|
-
| ---------------------------------------- | ------------------------------------------ |
|
|
236
|
-
| Браузерна гра (2D, аркада, головоломка) | `--profile phaser-turborepo` |
|
|
237
|
-
| Гра Godot (десктоп, мобільний, 2D/3D) | `--profile godot-csharp` |
|
|
238
|
-
| Система знань (з підтримкою доказів) | `--profile knowledge-typescript-turborepo` |
|
|
239
|
-
| Бібліотека або проєкт лише з управлінням | `--profile forge-shell` |
|
|
240
|
-
|
|
241
|
-
2. **Відкрийте папку проєкту в вашому IDE.** Відкрийте папку з кроку 1 у Windsurf або вашому IDE.
|
|
242
|
-
|
|
243
|
-
3. **Скажіть ШІ-агенту, що ви хочете створити.** Просто напишіть це в чаті своїми словами. Наприклад:
|
|
244
|
-
|
|
245
|
-
> Я хочу зробити гру на Godot, де ловиш зірки, що падають.
|
|
246
|
-
|
|
247
|
-
Або:
|
|
248
|
-
|
|
249
|
-
> Я хочу створити браузерну гру, де ловиш зірки, що падають.
|
|
250
|
-
|
|
251
|
-
Або:
|
|
252
|
-
|
|
253
|
-
> Я хочу створити TypeScript-бібліотеку для розрахунку астрологічних карт.
|
|
90
|
+
## Що контролює Forge
|
|
254
91
|
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
Для проєктів управління та бібліотек візуального попереднього перегляду немає — агент налаштує структуру проєкту та скаже, коли все готово.
|
|
264
|
-
|
|
265
|
-
5. **Створюйте разом.** Далі ви просто розмовляєте. Хочете інший колір? Хочете додати сцену? Хочете додати нову функцію до бібліотеки? Просто скажіть. Агент виконає всю технічну роботу.
|
|
266
|
-
|
|
267
|
-
#### Перенесення наявного проєкту у Forge
|
|
268
|
-
|
|
269
|
-
Якщо ви вже маєте проєкт десь інше і хочете перенести його у Forge:
|
|
270
|
-
|
|
271
|
-
1. **Створіть проєкт Forge.** Відкрийте термінал, створіть папку і виконайте:
|
|
272
|
-
|
|
273
|
-
```sh
|
|
274
|
-
mkdir my-project
|
|
275
|
-
cd my-project
|
|
276
|
-
pnpm dlx @warpgogol/forge create --in-place --profile forge-shell
|
|
277
|
-
```
|
|
278
|
-
|
|
279
|
-
Потім відкрийте папку в вашому IDE.
|
|
280
|
-
|
|
281
|
-
2. **Скажіть ШІ-агенту:**
|
|
282
|
-
|
|
283
|
-
> Я хочу перенести свій наявний проєкт у Forge. Він знаходиться за шляхом /path/to/my/project.
|
|
284
|
-
|
|
285
|
-
Агент:
|
|
286
|
-
- Визначить, який це тип проєкту (гра, бібліотека тощо)
|
|
287
|
-
- Перемістить усі ваші файли у новий проєкт Forge — включно з прихованими файлами на кшталт `.env`
|
|
288
|
-
- За бажанням перенесе вашу історію git
|
|
289
|
-
- Перевірить, чи все коректно збирається
|
|
290
|
-
- Запустить живий попередній перегляд (для візуальних типів проєктів)
|
|
291
|
-
|
|
292
|
-
#### Що робити, якщо щось пішло не так?
|
|
293
|
-
|
|
294
|
-
Просто скажіть ШІ-агенту. Він може перевірити стан проєкту, виправити проблеми та пояснити, що сталося — все простою мовою. Вам ніколи не потрібно відкривати термінал або вводити команди самостійно.
|
|
92
|
+
| Площина | Що управляє |
|
|
93
|
+
| -------------------- | --------------------------------------------------- |
|
|
94
|
+
| **Намір** | RFC, архітектурна ДНК, критерії приймання |
|
|
95
|
+
| **Рішення** | ADR, журнали рішень, відстежуваність |
|
|
96
|
+
| **Поведінка агента** | Локальні навички та робочі процеси |
|
|
97
|
+
| **Перевірка** | Doctor, валідатори, контракти, детерміновані гейти |
|
|
98
|
+
| **Еволюція** | Профілі, вендоринг специфікацій, адитивні оновлення |
|
|
295
99
|
|
|
296
100
|
---
|
|
297
101
|
|
|
298
|
-
|
|
102
|
+
## Без Forge / З Forge
|
|
299
103
|
|
|
300
|
-
|
|
104
|
+
| Розробка з ШІ без Forge | З Forge |
|
|
105
|
+
| -------------------------------------- | ------------------------------------------------ |
|
|
106
|
+
| Правила живуть у промптах | Правила живуть у репозиторії |
|
|
107
|
+
| Архітектура неявна | Рішення стають RFC та ADR |
|
|
108
|
+
| Поведінка агента залежить від сесії | Локальні навички визначають відтворювані процеси |
|
|
109
|
+
| «Готово» означає, що агент так каже | Валідатори дають детерміновані перевірки |
|
|
110
|
+
| Новий агент починає з нуля | Контракт проєкту подорожує з кодом |
|
|
111
|
+
| Оновлення ризикує перезаписати рішення | Оновлення адитивне та ідемпотентне |
|
|
112
|
+
| Конвенції специфічні для інструменту | Агент- та IDE-незалежний шар проєкту |
|
|
301
113
|
|
|
302
|
-
|
|
303
|
-
# Створіть папку проєкту, потім згенеруйте каркас Forge на місці
|
|
304
|
-
# pnpm dlx завантажує Forge тимчасово — глобальне встановлення не потрібне
|
|
305
|
-
mkdir my-project
|
|
306
|
-
cd my-project
|
|
307
|
-
pnpm dlx @warpgogol/forge create --in-place --profile forge-shell
|
|
308
|
-
|
|
309
|
-
# З конкретним профілем стеку
|
|
310
|
-
mkdir my-game && cd my-game
|
|
311
|
-
pnpm dlx @warpgogol/forge create --in-place --profile phaser-turborepo
|
|
312
|
-
|
|
313
|
-
mkdir my-godot-game && cd my-godot-game
|
|
314
|
-
pnpm dlx @warpgogol/forge create --in-place --profile godot-csharp
|
|
315
|
-
|
|
316
|
-
# Перевизначити назву проєкту (за замовчуванням визначається з назви папки)
|
|
317
|
-
pnpm dlx @warpgogol/forge create --in-place --profile forge-shell --name my-custom-name
|
|
318
|
-
```
|
|
114
|
+
---
|
|
319
115
|
|
|
320
|
-
|
|
116
|
+
## Forge Є / Forge Не Є
|
|
321
117
|
|
|
322
|
-
|
|
118
|
+
**Forge Є**
|
|
323
119
|
|
|
324
|
-
|
|
120
|
+
- Репозиторіо-нативний шар управління
|
|
121
|
+
- Агент-незалежна інфраструктура проєкту
|
|
122
|
+
- Детерміноване доповнення до ймовірнісних ШІ-агентів
|
|
123
|
+
- Портативний контракт проєкту
|
|
325
124
|
|
|
326
|
-
|
|
327
|
-
# 1. Створіть новий порожній проєкт Forge (на місці)
|
|
328
|
-
mkdir my-project && cd my-project
|
|
329
|
-
pnpm dlx @warpgogol/forge create --in-place --profile forge-shell
|
|
330
|
-
|
|
331
|
-
# 2. Відкрийте проєкт у Windsurf (протестовано з Forge) або вашому IDE
|
|
332
|
-
|
|
333
|
-
# 3. Запустіть навичку /forge-bootstrap і оберіть режим "transplant"
|
|
334
|
-
# Навичка:
|
|
335
|
-
# - Запитає шлях до вашого наявного коду
|
|
336
|
-
# - Автоматично визначить стек (Phaser, Godot тощо)
|
|
337
|
-
# - Перенесе всі файли (включно з .env та git-ігнорованими)
|
|
338
|
-
# - За бажанням перенесе історію git
|
|
339
|
-
# - Перевірить збірку
|
|
340
|
-
```
|
|
125
|
+
**Forge Не Є**
|
|
341
126
|
|
|
342
|
-
|
|
127
|
+
- Ще однією ШІ-моделлю
|
|
128
|
+
- Ще одним агентом-кодером
|
|
129
|
+
- IDE
|
|
130
|
+
- Хостованою платформою
|
|
131
|
+
- Заміною Git
|
|
132
|
+
- Магічною обгорткою «vibe coding»
|
|
343
133
|
|
|
344
|
-
|
|
345
|
-
# Перевірити стан проєкту
|
|
346
|
-
pnpm exec forge doctor
|
|
134
|
+
---
|
|
347
135
|
|
|
348
|
-
|
|
349
|
-
pnpm exec forge rfc.validate
|
|
136
|
+
## Що ви отримуєте
|
|
350
137
|
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
138
|
+
- **37 навичок** — пайплайн ідея→RFC, grilling, preferences, авторинг навичок
|
|
139
|
+
- **RFC робочий процес** — створення, валідація, перелік, граф, архівування, acceptance probes
|
|
140
|
+
- **ADR робочий процес** — легкі записи архітектурних рішень
|
|
141
|
+
- **Вендоринг специфікацій** — вендоринг зовнішніх специфікацій як незмінних снапшотів
|
|
142
|
+
- **Конвенції найменування** — kebab-case linting
|
|
143
|
+
- **Linting робочих процесів** — валідація frontmatter `.agents/workflows/`
|
|
144
|
+
- **Скаффолдинг стеку** — pnpm + Turborepo монорепозиторій з профілю
|
|
145
|
+
- **Контракт прив'язок** — деконкретизація команд проєкту через `forge.yaml`
|
|
146
|
+
- **Doctor** — перевірка здоров'я проєкту
|
|
147
|
+
- **Upgrade** — адитивна, ідемпотентна синхронізація навичок та конфігурації
|
|
354
148
|
|
|
355
149
|
---
|
|
356
150
|
|
|
357
151
|
## Робота з вашим ШІ-агентом
|
|
358
152
|
|
|
359
|
-
Forge працює з будь-яким ШІ-агентом — Windsurf, Cursor, Claude Code, Codex CLI або будь-яким IDE, що підтримує навички агентів. Налаштування однакове; важлива лише розмова.
|
|
360
|
-
|
|
361
|
-
### Починайте з питань, а не з команд
|
|
362
|
-
|
|
363
|
-
Найефективніша звичка: перед тим, як просити агента писати код, запитайте його про кодову базу. Агент може читати файли, шукати в історії git та запускати CLI-команди Forge — дайте йому спочатку дослідити.
|
|
364
|
-
|
|
365
|
-
Добрі питання для початку сесії:
|
|
366
|
-
|
|
367
|
-
- "Як структурований цей проєкт?"
|
|
368
|
-
- "Які навички доступні і що вони роблять?"
|
|
369
|
-
- "Проведи мене через RFC робочий процес у цьому проєкті."
|
|
370
|
-
- "Що ми змінили цього тижня?" (агент читає git log)
|
|
371
|
-
- "Чому ця функція має 15 параметрів? Перевір історію git."
|
|
372
|
-
|
|
373
|
-
Це працює і для онбордингу — нові члени команди можуть швидко ввійти в курс справи, запитуючи агента, замість того, щоб вручну читати код. Агент читає все локально; нічого не завантажується та не тренується на вашому коді.
|
|
374
|
-
|
|
375
|
-
### AGENTS.md — постійна пам'ять вашого проєкту
|
|
376
|
-
|
|
377
|
-
Forge генерує файли `AGENTS.md` в корені проєкту та в кожній директорії робочого простору. Агент читає їх автоматично на початку кожної сесії — сприймайте їх як інструкції, які зберігаються між розмовами.
|
|
378
|
-
|
|
379
|
-
**Що писати в AGENTS.md:**
|
|
380
|
-
|
|
381
|
-
- Команди збірки та тестування (`pnpm test`, `pnpm run build:check`)
|
|
382
|
-
- Угоди стилю коду ("використовуйте 2 пробіли, а не таби")
|
|
383
|
-
- Архітектурні рішення ("пакет гри володіє всією логікою сцен")
|
|
384
|
-
- Правила "роби X, а не Y" ("використовуйте `resolveImage()` для всіх image-пропів, ніколи сирий `src`")
|
|
385
|
-
- Типові помилки, яких слід уникати
|
|
386
|
-
|
|
387
|
-
**Коли агент помиляється**, скажіть йому оновити AGENTS.md, щоб він не повторював помилку. З часом AGENTS.md накопичує здобуті командою знання.
|
|
388
|
-
|
|
389
|
-
Forge генерує AGENTS.md з `forge.yaml` через `forge.agents.generate`. Написані вручну AGENTS.md (без згенерованого маркера) зберігаються. Згенеровані файли регенеруються при запуску `forge upgrade` або `forge.agents.generate` — тому кладіть свої правила в `forge.yaml` або в написаний вручну AGENTS.md, а не в згенерований.
|
|
390
|
-
|
|
391
|
-
### Описуйте результат, а не кроки
|
|
392
|
-
|
|
393
|
-
Агент — автономний працівник, а не друкарська машинка. Скажіть йому, що ви хочете, а не як це зробити.
|
|
394
|
-
|
|
395
|
-
**Погано** (занадто детально):
|
|
396
|
-
|
|
397
|
-
> Відкрий src/game/player.ts, додай функцію calculateScore, яка приймає масив чисел, сумує його, повертає результат. Потім відкрий src/game/player.test.ts і додай тест.
|
|
398
|
-
|
|
399
|
-
**Добре** (орієнтовано на результат):
|
|
400
|
-
|
|
401
|
-
> Додай систему підрахунку очок, яка обчислює загальні бали за зібрані предмети.
|
|
402
|
-
|
|
403
|
-
Для складних задач просіть агента спочатку спланувати:
|
|
404
|
-
|
|
405
|
-
> Я хочу додати багатокористувацький режим. Спочатку склади план, покажи мені, і чекай на моє схвалення перед реалізацією.
|
|
406
|
-
|
|
407
|
-
Навичка Forge `/fo-idea` формалізує це: ідея → аудит → план → реалізація → рев'ю. Ви можете викликати її явно, або агент буде слідувати цьому патерну, коли задача достатньо складна.
|
|
408
|
-
|
|
409
|
-
### Дайте агенту дослідити
|
|
410
|
-
|
|
411
|
-
Не пояснюйте занадто детально. Агент вміє читати файли, шукати в коді, перевіряти історію git та запускати команди. Замість того, щоб вказувати на конкретні файли, опишіть, що ви хочете зрозуміти або змінити:
|
|
412
|
-
|
|
413
|
-
**Замість:** "Подивись у папці src/game файл player.ts і перевір, чи є там функція move."
|
|
414
|
-
|
|
415
|
-
**Скажіть:** "Як працює рух гравця?"
|
|
416
|
-
|
|
417
|
-
Агент знайде відповідні файли, простежить ланцюг викликів і пояснить вам. Якщо йому потрібен буде додатковий контекст, він запитає.
|
|
418
|
-
|
|
419
|
-
### Паралельна робота
|
|
153
|
+
Forge працює з будь-яким ШІ-агентом — Windsurf, Cursor, Claude Code, Codex CLI або будь-яким IDE, що підтримує навички агентів. Налаштування однакове; важлива лише розмова.
|
|
420
154
|
|
|
421
|
-
|
|
155
|
+
**Починайте з питань, а не з команд.** Перед тим, як просити агента писати код, запитайте його про кодову базу. Агент може читати файли, шукати в історії git та запускати CLI-команди Forge — дайте йому спочатку дослідити.
|
|
422
156
|
|
|
423
|
-
|
|
157
|
+
**Описуйте результат, а не кроки.** Скажіть агенту, що ви хочете, а не як це зробити. Для складних задач просіть агента спочатку спланувати.
|
|
424
158
|
|
|
425
|
-
|
|
426
|
-
- Дослідження двох дизайн-підходів паралельно перед вибором одного
|
|
427
|
-
- Запуску тривалої валідації в одній сесії, продовжуючи роботу в іншій
|
|
159
|
+
**Дозвольте агенту перевіряти власну роботу.** Дайте критерії «готовно» і дозвольте агенту перевірити себе: «Запусти тести після завершення.» «Валідуй RFC перед комітом.» «Перевір здоров'я проєкту через `forge doctor`.»
|
|
428
160
|
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
### Дозвольте агенту перевіряти власну роботу
|
|
432
|
-
|
|
433
|
-
Дайте агенту критерії "готово" і дозвольте йому перевірити себе:
|
|
434
|
-
|
|
435
|
-
- "Запусти тести після завершення."
|
|
436
|
-
- "Валідуй RFC перед комітом."
|
|
437
|
-
- "Перевір стан проєкту через `forge doctor`."
|
|
438
|
-
|
|
439
|
-
Forge надає інструменти — `forge doctor`, `forge rfc.validate`, `forge skill.list`, тест-ранери. Скажіть агенту використовувати їх. Агент може запускати команди, читати вивід та виправляти проблеми без вашої втручання.
|
|
161
|
+
**AGENTS.md — постійна пам'ять вашого проєкту.** Forge генерує файли `AGENTS.md`, які агент читає на початку кожної сесії. Кладіть туди команди збірки, стиль коду, архітектурні рішення та правила «роби X, а не Y».
|
|
440
162
|
|
|
441
163
|
---
|
|
442
164
|
|
|
443
|
-
##
|
|
444
|
-
|
|
445
|
-
Пакети навичок (skill packs) дозволяють створювати навички проєкту під власним префіксом, окремо від портативних `fo-` навичок Forge. Це корисно, коли ваш проєкт має домен-специфічні робочі процеси, які не належать до портативного набору Forge.
|
|
446
|
-
|
|
447
|
-
### Оголошення пакету
|
|
448
|
-
|
|
449
|
-
Додайте запис `skillPacks` у `forge.yaml`:
|
|
450
|
-
|
|
451
|
-
```yaml
|
|
452
|
-
skillPacks:
|
|
453
|
-
- prefix: wg
|
|
454
|
-
dir: packages/my-skills/skills
|
|
455
|
-
```
|
|
456
|
-
|
|
457
|
-
- `prefix` — короткий ідентифікатор, що використовується як префікс імені навички (наприклад `wg-deploy`, `wg-content-check`). Не може бути `fo` (зарезервовано для Forge).
|
|
458
|
-
- `dir` — директорія, що містить навички вашого пакету. Кожна навичка — піддиректорія з файлом `SKILL.md`.
|
|
459
|
-
|
|
460
|
-
### Маніфест пакету (`forge.plugin.yaml`)
|
|
461
|
-
|
|
462
|
-
Кожна директорія пакету повинна містити маніфест `forge.plugin.yaml`:
|
|
463
|
-
|
|
464
|
-
```yaml
|
|
465
|
-
id: my-pack
|
|
466
|
-
version: 1.0.0
|
|
467
|
-
```
|
|
468
|
-
|
|
469
|
-
- `id` — ідентифікатор пакету в kebab-case.
|
|
470
|
-
- `version` — рядок версії у форматі semver.
|
|
471
|
-
|
|
472
|
-
`forge init` автоматично створює цей маніфест, якщо він відсутній. Ви також можете створити його вручну.
|
|
473
|
-
|
|
474
|
-
### Структура навичок
|
|
475
|
-
|
|
476
|
-
Навички мають ту саму структуру, що й навички Forge:
|
|
477
|
-
|
|
478
|
-
```
|
|
479
|
-
packages/my-skills/skills/
|
|
480
|
-
forge.plugin.yaml # маніфест пакету
|
|
481
|
-
wg-deploy/
|
|
482
|
-
SKILL.md # визначення навички з frontmatter
|
|
483
|
-
wg-content-check/
|
|
484
|
-
SKILL.md
|
|
485
|
-
```
|
|
486
|
-
|
|
487
|
-
Кожен `SKILL.md` має стандартизований frontmatter (name, description, category, concerns, dependsOn) — той самий формат, що й у `fo-` навичок Forge.
|
|
488
|
-
|
|
489
|
-
### Команди валідації
|
|
165
|
+
## CLI
|
|
490
166
|
|
|
491
167
|
```sh
|
|
492
|
-
#
|
|
493
|
-
pnpm exec forge
|
|
494
|
-
|
|
495
|
-
# Перелічити виявлені пакети
|
|
496
|
-
pnpm exec forge plugin.discover
|
|
168
|
+
# Перевірити здоров'я проєкту
|
|
169
|
+
pnpm exec forge doctor
|
|
497
170
|
|
|
498
|
-
# Валідувати
|
|
499
|
-
pnpm exec forge
|
|
171
|
+
# Валідувати RFC
|
|
172
|
+
pnpm exec forge rfc.validate
|
|
500
173
|
|
|
501
|
-
# Перелічити
|
|
174
|
+
# Перелічити доступні навички
|
|
502
175
|
pnpm exec forge skill.list
|
|
503
|
-
```
|
|
504
|
-
|
|
505
|
-
### Точки розширення (блоки Compass-контракту)
|
|
506
|
-
|
|
507
|
-
Пакети можуть оголошувати власні блоки Compass-контракту — маркери у вихідних файлах, які `compass.validate` перевіряє. Це дозволяє вашому пакету визначати власні `<MY_CONTRACT>` блоки з обов'язковими тегами:
|
|
508
|
-
|
|
509
|
-
```yaml
|
|
510
|
-
id: my-pack
|
|
511
|
-
version: 1.0.0
|
|
512
|
-
extensionPoints:
|
|
513
|
-
compass:
|
|
514
|
-
contract:
|
|
515
|
-
blocks:
|
|
516
|
-
- blockId: api-contract
|
|
517
|
-
requiredFor:
|
|
518
|
-
- "packages/my-pack/**/*.ts"
|
|
519
|
-
requiredTags:
|
|
520
|
-
- name: purpose
|
|
521
|
-
minWords: 3
|
|
522
|
-
```
|
|
523
|
-
|
|
524
|
-
`compass.validate` видаватиме `COMPASS-PLUGIN-01` (відсутній блок), `COMPASS-PLUGIN-02` (відсутній обов'язковий тег) та `COMPASS-PLUGIN-03` (тег з меншою кількістю слів) для файлів, що відповідають `requiredFor`, але не містять блок.
|
|
525
|
-
|
|
526
|
-
### Правила
|
|
527
|
-
|
|
528
|
-
- Імена навичок пакету повинні починатися з префіксу пакету (наприклад `wg-deploy` для префіксу `wg`).
|
|
529
|
-
- Навички пакету не можуть використовувати префікс `fo-` (зарезервовано для Forge).
|
|
530
|
-
- Навички пакету не можуть посилатися на ідентифікатори платформених RFC/ADR або назви платформи.
|
|
531
|
-
- Навички пакету можуть залежати від навичок Forge, але навички Forge не можуть залежати від навичок пакету (зберігає портативність).
|
|
532
|
-
- Якщо ім'я навички пакету конфліктує з іменем навички Forge, навичка пакету пропускається під час синхронізації.
|
|
533
|
-
|
|
534
|
-
---
|
|
535
|
-
|
|
536
|
-
## Профілі стеку
|
|
537
176
|
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
| Профіль | Тип проєкту | Опис | Перший робочий простір | Призначення |
|
|
541
|
-
| --- | --- | --- | --- | --- |
|
|
542
|
-
| `forge-shell` | Управління / бібліотека | Мінімальний каркас Forge (за замовчуванням) | — | Проєкти лише з управлінням, бібліотеки, невеб-проєкти |
|
|
543
|
-
| `phaser-turborepo` | Браузерна гра | Phaser + TypeScript + pnpm + Turborepo | `games/my-game` | Браузерні ігри, інтерактивні досвіди |
|
|
544
|
-
| `godot-csharp` | Гра Godot | Godot 4.x + C# + pnpm + Turborepo | `games/my-game` | Десктопні/мобільні ігри, інтерактивні проєкти на Godot |
|
|
545
|
-
| `knowledge-typescript-turborepo` | Система знань | TypeScript + pnpm + Turborepo | `knowledge/my-kb` | Бази знань з підтримкою доказів, структуровані набори даних з джерельною простежуваністю |
|
|
546
|
-
| `typescript-turborepo` | Бібліотека TypeScript | TypeScript + pnpm + Turborepo | — | Універсальний TypeScript TurboRepo монорепозиторій з валідаторами найкращих практик |
|
|
547
|
-
|
|
548
|
-
```sh
|
|
549
|
-
# Список доступних профілів (після встановлення)
|
|
550
|
-
pnpm exec forge profile.validate
|
|
551
|
-
```
|
|
552
|
-
|
|
553
|
-
Коли ви переносите наявний проєкт через режим `/forge-bootstrap` transplant, Forge автоматично визначає відповідний профіль, перевіряючи файли-маркери (`phaser.config.*`, `project.godot` тощо).
|
|
554
|
-
|
|
555
|
-
## Процес оновлення
|
|
556
|
-
|
|
557
|
-
Коли публікується нова версія `@warpgogol/forge`, споживачі оновлюються адитивно:
|
|
558
|
-
|
|
559
|
-
```sh
|
|
560
|
-
# 1. Оновити Forge до останньої версії (локальна devDependency)
|
|
561
|
-
pnpm update @warpgogol/forge
|
|
562
|
-
|
|
563
|
-
# 2. Синхронізувати навички та стандартні прив'язки з встановленої версії
|
|
177
|
+
# Синхронізувати навички та конфігурацію
|
|
564
178
|
pnpm exec forge upgrade
|
|
565
179
|
|
|
566
|
-
#
|
|
567
|
-
pnpm exec forge
|
|
180
|
+
# Перевірити консистентність публічної поверхні
|
|
181
|
+
pnpm exec forge public-surface.validate
|
|
568
182
|
```
|
|
569
183
|
|
|
570
|
-
|
|
184
|
+
Повний довідник CLI: [docs/reference/cli.md](docs/reference/cli.md)
|
|
571
185
|
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
- **37 навичок** (fo-pipeline, grilling, preferences, написання навичок) — розгортаються у `.agents/skills/` командою `forge create`
|
|
575
|
-
- **RFC робочий процес** — створення, валідація, список, граф, архівування, acceptance-зондування, журнали рішень, DNA-трасування
|
|
576
|
-
- **ADR робочий процес** — легковісні архітектурні записи рішень
|
|
577
|
-
- **Вендоринг специфікацій** — вендоринг зовнішніх пакетів специфікацій як незмінних знімків з маніфестами цілісності
|
|
578
|
-
- **Угоди про найменування** — linting kebab-case
|
|
579
|
-
- **Linting робочих процесів** — валідація frontmatter та посилань у `.agents/workflows/`
|
|
580
|
-
- **Каркаси стеків** — створення нового pnpm + Turborepo монорепозиторію з профілю
|
|
581
|
-
- **Контракт прив'язок** — декодування специфічних для проєкту команд/шляхів із навичок через `forge.yaml`
|
|
582
|
-
|
|
583
|
-
## Життєвий цикл
|
|
584
|
-
|
|
585
|
-
Типовий життєвий цикл проєкту Forge:
|
|
586
|
-
|
|
587
|
-
1. **Створення** — `pnpm dlx @warpgogol/forge create --in-place --profile <профіль>` генерує каркас нового проєкту в поточній директорії з forge.yaml, навичками та директоріями документації
|
|
588
|
-
2. **IDE** — відкрийте проєкт у Windsurf (протестовано з Forge) або вашому IDE
|
|
589
|
-
3. **Bootstrap** — запустіть `/forge-bootstrap` для інтерактивного налаштування проєкту. Навичка підтримує два режими:
|
|
590
|
-
- **Greenfield** — створення нового проєкту з нуля: оберіть стек, заповніть прив'язки, ініціалізуйте git
|
|
591
|
-
- **Transplant** — перенесення наявного коду у Forge: визначення стеку, міграція коду (включно з git-ігнорованими файлами на кшталт `.env`), за бажанням перенесення історії git, перевірка збірки
|
|
592
|
-
4. **Оновлення** — коли публікується нова версія `@warpgogol/forge`, запустіть `pnpm exec forge upgrade` для адитивної синхронізації навичок та стандартних прив'язок
|
|
186
|
+
---
|
|
593
187
|
|
|
594
188
|
## forge.yaml
|
|
595
189
|
|
|
596
|
-
Єдине джерело істини для конфігурації
|
|
190
|
+
Єдине джерело істини для конфігурації проєкту:
|
|
597
191
|
|
|
598
192
|
```yaml
|
|
599
193
|
schema: forge/config@1
|
|
@@ -617,6 +211,10 @@ bindings:
|
|
|
617
211
|
invariants: DNA
|
|
618
212
|
```
|
|
619
213
|
|
|
214
|
+
Повний довідник: [docs/reference/forge-yaml.md](docs/reference/forge-yaml.md)
|
|
215
|
+
|
|
216
|
+
---
|
|
217
|
+
|
|
620
218
|
## Програмний API
|
|
621
219
|
|
|
622
220
|
```ts
|
|
@@ -628,64 +226,59 @@ import {
|
|
|
628
226
|
FORGE_SKILLS,
|
|
629
227
|
} from "@warpgogol/forge";
|
|
630
228
|
|
|
631
|
-
// Завантажити конфігурацію
|
|
632
229
|
const config = loadForgeConfig(process.cwd());
|
|
633
|
-
|
|
634
|
-
// Розв'язати прив'язку
|
|
635
230
|
const cmd = resolveBinding(config, "commands.validateRfc", { id: "RFC-0001" });
|
|
636
231
|
|
|
637
|
-
// Зареєструвати модулі у вашому реєстрі
|
|
638
232
|
const registry = /* ваш ForgeModuleRegistry */;
|
|
639
233
|
await forgeCoreModule.register(registry);
|
|
640
234
|
await forgeRfcModule.register(registry);
|
|
641
235
|
```
|
|
642
236
|
|
|
643
|
-
|
|
237
|
+
Повний API: [docs/reference/programmatic-api.md](docs/reference/programmatic-api.md)
|
|
238
|
+
|
|
239
|
+
---
|
|
240
|
+
|
|
241
|
+
## Структура
|
|
644
242
|
|
|
645
243
|
| Директорія | Призначення |
|
|
646
244
|
| --- | --- |
|
|
647
|
-
| `src/` | Портативне ядро — типи,
|
|
648
|
-
| `os/` | Реєстрації ForgeModule. `compass` та `werkstatt`
|
|
245
|
+
| `src/` | Портативне ядро — типи, конфіг, реєстр навичок, валідатори, онбординг. Нуль `@warpgogol/*` імпортів. |
|
|
246
|
+
| `os/` | Реєстрації ForgeModule. `compass` та `werkstatt` — повністю автономні. |
|
|
649
247
|
| `bin/` | Точка входу CLI (команда `forge`). |
|
|
650
|
-
| `skills/` |
|
|
651
|
-
| `
|
|
652
|
-
| `profiles/` | Профілі стеків для `scaffold`. |
|
|
653
|
-
|
|
654
|
-
## Публікація в npm
|
|
248
|
+
| `skills/` | 37 визначень навичок (29 fo + 5 спільних + 3 мета) з SKILL.md frontmatter. |
|
|
249
|
+
| `profiles/` | Профілі стеку для `scaffold`. |
|
|
655
250
|
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
### Передумови
|
|
659
|
-
|
|
660
|
-
- Обліковий запис npm з правами публікації в організації `@warpgogol`.
|
|
661
|
-
- Встановлені Node.js та pnpm локально.
|
|
662
|
-
|
|
663
|
-
### Створення токена доступу
|
|
664
|
-
|
|
665
|
-
1. Увійдіть на [npmjs.com](https://www.npmjs.com/).
|
|
666
|
-
2. Перейдіть до **Access Tokens** (аватар → Access Tokens).
|
|
667
|
-
3. Натисніть **Generate New Token** → оберіть **Classic Token** → тип **Publish**.
|
|
668
|
-
4. Скопіюйте згенерований токен — він показується лише один раз.
|
|
669
|
-
|
|
670
|
-
### Публікація нової версії
|
|
251
|
+
---
|
|
671
252
|
|
|
672
|
-
|
|
253
|
+
## Оновлення
|
|
673
254
|
|
|
674
255
|
```sh
|
|
675
|
-
|
|
676
|
-
|
|
256
|
+
pnpm update @warpgogol/forge
|
|
257
|
+
pnpm exec forge upgrade
|
|
258
|
+
pnpm exec forge doctor
|
|
259
|
+
```
|
|
677
260
|
|
|
678
|
-
|
|
679
|
-
npm config set //registry.npmjs.org/:_authToken=<TOKEN>
|
|
261
|
+
`forge upgrade` — адитивний: ніколи не перезаписує прив'язки, встановлені оператором, ніколи не видаляє файли, ідемпотентний. Використовуйте `--dry-run` для попереднього перегляду.
|
|
680
262
|
|
|
681
|
-
|
|
682
|
-
npm version patch
|
|
263
|
+
---
|
|
683
264
|
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
265
|
+
## Документація
|
|
266
|
+
|
|
267
|
+
- [Початок роботи](docs/getting-started.md)
|
|
268
|
+
- [Чому Forge?](docs/concepts/why-forge.md)
|
|
269
|
+
- [Контракт проєкту](docs/concepts/project-contract.md)
|
|
270
|
+
- [Модель управління](docs/concepts/governance-model.md)
|
|
271
|
+
- [Перенесення наявного проєкту](docs/guides/existing-project.md)
|
|
272
|
+
- [Оновлення](docs/guides/upgrading.md)
|
|
273
|
+
- [Навички](docs/guides/skills.md)
|
|
274
|
+
- [RFC та ADR робочі процеси](docs/guides/rfc-adr.md)
|
|
275
|
+
- [Довідник CLI](docs/reference/cli.md)
|
|
276
|
+
- [Довідник forge.yaml](docs/reference/forge-yaml.md)
|
|
277
|
+
- [Профілі](docs/reference/profiles.md)
|
|
278
|
+
- [Програмний API](docs/reference/programmatic-api.md)
|
|
279
|
+
- [Публікація](docs/maintainers/publishing.md)
|
|
687
280
|
|
|
688
|
-
|
|
281
|
+
---
|
|
689
282
|
|
|
690
283
|
## Ліцензія
|
|
691
284
|
|
|
@@ -693,8 +286,8 @@ Apache-2.0
|
|
|
693
286
|
|
|
694
287
|
## Відкрита інженерія
|
|
695
288
|
|
|
696
|
-
Цей пакет походить
|
|
289
|
+
Цей пакет походить з виробничої інженерної роботи [Warpgogol](https://warpgogol.com), інженерної студії в Німеччині.
|
|
697
290
|
|
|
698
|
-
Ми публікуємо
|
|
291
|
+
Ми публікуємо багаторазово використовувані частини нашої інфраструктури, коли вони можуть бути корисні поза нашими власними проєктами. Пакет публікується незалежно від будь-якого комерційного сервісу Warpgogol. Використання цього пакету не створює залежності від Warpgogol.
|
|
699
292
|
|
|
700
|
-
Створено для реальних систем.
|
|
293
|
+
Створено для реальних систем. Поділяємо відкрито.
|