@moreih29/nexus-core 0.16.2 → 0.18.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/README.md +101 -67
- package/dist/cli/sync.d.ts +3 -0
- package/dist/cli/sync.d.ts.map +1 -0
- package/dist/cli/sync.js +59 -0
- package/dist/cli/sync.js.map +1 -0
- package/dist/generate/index.d.ts +3 -0
- package/dist/generate/index.d.ts.map +1 -0
- package/dist/generate/index.js +2 -0
- package/dist/generate/index.js.map +1 -0
- package/dist/generate/load-data.d.ts +8 -0
- package/dist/generate/load-data.d.ts.map +1 -0
- package/dist/generate/load-data.js +45 -0
- package/dist/generate/load-data.js.map +1 -0
- package/dist/generate/load-spec.d.ts +3 -0
- package/dist/generate/load-spec.d.ts.map +1 -0
- package/dist/generate/load-spec.js +48 -0
- package/dist/generate/load-spec.js.map +1 -0
- package/dist/generate/macros/expand.d.ts +3 -0
- package/dist/generate/macros/expand.d.ts.map +1 -0
- package/dist/generate/macros/expand.js +48 -0
- package/dist/generate/macros/expand.js.map +1 -0
- package/dist/generate/macros/parse.d.ts +4 -0
- package/dist/generate/macros/parse.d.ts.map +1 -0
- package/dist/generate/macros/parse.js +142 -0
- package/dist/generate/macros/parse.js.map +1 -0
- package/dist/generate/macros/validate.d.ts +3 -0
- package/dist/generate/macros/validate.d.ts.map +1 -0
- package/dist/generate/macros/validate.js +23 -0
- package/dist/generate/macros/validate.js.map +1 -0
- package/dist/generate/renderers/claude.d.ts +3 -0
- package/dist/generate/renderers/claude.d.ts.map +1 -0
- package/dist/generate/renderers/claude.js +48 -0
- package/dist/generate/renderers/claude.js.map +1 -0
- package/dist/generate/renderers/codex.d.ts +3 -0
- package/dist/generate/renderers/codex.d.ts.map +1 -0
- package/dist/generate/renderers/codex.js +79 -0
- package/dist/generate/renderers/codex.js.map +1 -0
- package/dist/generate/renderers/markdown.d.ts +2 -0
- package/dist/generate/renderers/markdown.d.ts.map +1 -0
- package/dist/generate/renderers/markdown.js +6 -0
- package/dist/generate/renderers/markdown.js.map +1 -0
- package/dist/generate/renderers/opencode.d.ts +3 -0
- package/dist/generate/renderers/opencode.d.ts.map +1 -0
- package/dist/generate/renderers/opencode.js +69 -0
- package/dist/generate/renderers/opencode.js.map +1 -0
- package/dist/generate/sync.d.ts +4 -0
- package/dist/generate/sync.d.ts.map +1 -0
- package/dist/generate/sync.js +60 -0
- package/dist/generate/sync.js.map +1 -0
- package/dist/generate/types.d.ts +74 -0
- package/dist/generate/types.d.ts.map +1 -0
- package/dist/generate/types.js +2 -0
- package/dist/generate/types.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp/definitions/artifact.d.ts +20 -0
- package/dist/mcp/definitions/artifact.d.ts.map +1 -0
- package/dist/mcp/definitions/artifact.js +14 -0
- package/dist/mcp/definitions/artifact.js.map +1 -0
- package/dist/mcp/definitions/history.d.ts +20 -0
- package/dist/mcp/definitions/history.d.ts.map +1 -0
- package/dist/mcp/definitions/history.js +18 -0
- package/dist/mcp/definitions/history.js.map +1 -0
- package/dist/mcp/definitions/index.d.ts +276 -0
- package/dist/mcp/definitions/index.d.ts.map +1 -0
- package/dist/mcp/definitions/index.js +16 -0
- package/dist/mcp/definitions/index.js.map +1 -0
- package/dist/mcp/definitions/plan.d.ts +111 -0
- package/dist/mcp/definitions/plan.d.ts.map +1 -0
- package/dist/mcp/definitions/plan.js +89 -0
- package/dist/mcp/definitions/plan.js.map +1 -0
- package/dist/mcp/definitions/task.d.ts +138 -0
- package/dist/mcp/definitions/task.d.ts.map +1 -0
- package/dist/mcp/definitions/task.js +78 -0
- package/dist/mcp/definitions/task.js.map +1 -0
- package/dist/mcp/handlers/artifact.d.ts.map +1 -0
- package/dist/mcp/handlers/artifact.js +42 -0
- package/dist/mcp/handlers/artifact.js.map +1 -0
- package/dist/mcp/handlers/history.d.ts.map +1 -0
- package/dist/mcp/handlers/history.js +35 -0
- package/dist/mcp/handlers/history.js.map +1 -0
- package/dist/mcp/handlers/plan.d.ts.map +1 -0
- package/dist/mcp/handlers/plan.js +324 -0
- package/dist/mcp/handlers/plan.js.map +1 -0
- package/dist/mcp/handlers/task.d.ts.map +1 -0
- package/dist/mcp/handlers/task.js +216 -0
- package/dist/mcp/handlers/task.js.map +1 -0
- package/dist/{src/mcp → mcp}/server.d.ts +1 -1
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +58 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/shared/json-store.d.ts.map +1 -0
- package/dist/{src/shared → shared}/json-store.js +5 -4
- package/dist/shared/json-store.js.map +1 -0
- package/dist/shared/mcp-utils.d.ts.map +1 -0
- package/dist/shared/mcp-utils.js.map +1 -0
- package/dist/{src/shared → shared}/paths.d.ts +0 -4
- package/dist/shared/paths.d.ts.map +1 -0
- package/dist/shared/paths.js +62 -0
- package/dist/shared/paths.js.map +1 -0
- package/dist/shared/register-tool.d.ts +20 -0
- package/dist/shared/register-tool.d.ts.map +1 -0
- package/dist/shared/register-tool.js +15 -0
- package/dist/shared/register-tool.js.map +1 -0
- package/dist/{src/types → types}/state.d.ts +65 -65
- package/dist/types/state.d.ts.map +1 -0
- package/dist/{src/types → types}/state.js +1 -1
- package/dist/types/state.js.map +1 -0
- package/harness/claude/agent-rules.yml +21 -0
- package/harness/claude/invocations.yml +11 -0
- package/harness/claude/layout.yml +3 -0
- package/harness/codex/agent-rules.yml +28 -0
- package/harness/codex/invocations.yml +13 -0
- package/harness/codex/layout.yml +3 -0
- package/harness/opencode/agent-rules.yml +18 -0
- package/harness/opencode/invocations.yml +12 -0
- package/harness/opencode/layout.yml +3 -0
- package/package.json +38 -43
- package/{assets → spec}/agents/architect/body.ko.md +92 -84
- package/spec/agents/architect/body.md +185 -0
- package/spec/agents/designer/body.ko.md +330 -0
- package/spec/agents/designer/body.md +330 -0
- package/spec/agents/engineer/body.ko.md +166 -0
- package/spec/agents/engineer/body.md +166 -0
- package/spec/agents/lead/body.ko.md +276 -0
- package/spec/agents/lead/body.md +276 -0
- package/{assets → spec}/agents/postdoc/body.ko.md +116 -46
- package/spec/agents/postdoc/body.md +192 -0
- package/{assets → spec}/agents/researcher/body.ko.md +131 -45
- package/spec/agents/researcher/body.md +223 -0
- package/spec/agents/reviewer/body.ko.md +219 -0
- package/spec/agents/reviewer/body.md +219 -0
- package/{assets → spec}/agents/strategist/body.ko.md +108 -35
- package/spec/agents/strategist/body.md +187 -0
- package/spec/agents/tester/body.ko.md +272 -0
- package/spec/agents/tester/body.md +272 -0
- package/{assets → spec}/agents/writer/body.ko.md +109 -33
- package/spec/agents/writer/body.md +198 -0
- package/spec/skills/nx-auto-plan/body.ko.md +150 -0
- package/spec/skills/nx-auto-plan/body.md +150 -0
- package/spec/skills/nx-plan/body.ko.md +159 -0
- package/spec/skills/nx-plan/body.md +159 -0
- package/spec/skills/nx-run/body.ko.md +132 -0
- package/spec/skills/nx-run/body.md +132 -0
- package/vocabulary/enums/task-register-state.yml +4 -0
- package/vocabulary/invocations.yml +43 -0
- package/assets/agents/architect/body.md +0 -177
- package/assets/agents/designer/body.ko.md +0 -125
- package/assets/agents/designer/body.md +0 -125
- package/assets/agents/engineer/body.ko.md +0 -106
- package/assets/agents/engineer/body.md +0 -106
- package/assets/agents/lead/body.ko.md +0 -70
- package/assets/agents/lead/body.md +0 -70
- package/assets/agents/postdoc/body.md +0 -122
- package/assets/agents/researcher/body.md +0 -137
- package/assets/agents/reviewer/body.ko.md +0 -138
- package/assets/agents/reviewer/body.md +0 -138
- package/assets/agents/strategist/body.md +0 -116
- package/assets/agents/tester/body.ko.md +0 -195
- package/assets/agents/tester/body.md +0 -195
- package/assets/agents/writer/body.md +0 -122
- package/assets/capability-matrix.yml +0 -198
- package/assets/hooks/agent-bootstrap/handler.test.ts +0 -368
- package/assets/hooks/agent-bootstrap/handler.ts +0 -119
- package/assets/hooks/agent-bootstrap/meta.yml +0 -10
- package/assets/hooks/agent-finalize/handler.test.ts +0 -368
- package/assets/hooks/agent-finalize/handler.ts +0 -76
- package/assets/hooks/agent-finalize/meta.yml +0 -10
- package/assets/hooks/capability-matrix.yml +0 -313
- package/assets/hooks/post-tool-telemetry/handler.test.ts +0 -302
- package/assets/hooks/post-tool-telemetry/handler.ts +0 -49
- package/assets/hooks/post-tool-telemetry/meta.yml +0 -11
- package/assets/hooks/prompt-router/handler.test.ts +0 -801
- package/assets/hooks/prompt-router/handler.ts +0 -272
- package/assets/hooks/prompt-router/meta.yml +0 -11
- package/assets/hooks/session-init/handler.test.ts +0 -274
- package/assets/hooks/session-init/handler.ts +0 -30
- package/assets/hooks/session-init/meta.yml +0 -9
- package/assets/lsp-servers.json +0 -55
- package/assets/schema/lsp-servers.schema.json +0 -67
- package/assets/skills/nx-init/body.ko.md +0 -197
- package/assets/skills/nx-init/body.md +0 -197
- package/assets/skills/nx-plan/body.ko.md +0 -361
- package/assets/skills/nx-plan/body.md +0 -361
- package/assets/skills/nx-run/body.ko.md +0 -161
- package/assets/skills/nx-run/body.md +0 -160
- package/assets/skills/nx-sync/body.ko.md +0 -92
- package/assets/skills/nx-sync/body.md +0 -92
- package/assets/tools/tool-name-map.yml +0 -353
- package/dist/assets/hooks/agent-bootstrap/handler.d.ts +0 -4
- package/dist/assets/hooks/agent-bootstrap/handler.d.ts.map +0 -1
- package/dist/assets/hooks/agent-bootstrap/handler.js +0 -100
- package/dist/assets/hooks/agent-bootstrap/handler.js.map +0 -1
- package/dist/assets/hooks/agent-finalize/handler.d.ts +0 -4
- package/dist/assets/hooks/agent-finalize/handler.d.ts.map +0 -1
- package/dist/assets/hooks/agent-finalize/handler.js +0 -63
- package/dist/assets/hooks/agent-finalize/handler.js.map +0 -1
- package/dist/assets/hooks/post-tool-telemetry/handler.d.ts +0 -4
- package/dist/assets/hooks/post-tool-telemetry/handler.d.ts.map +0 -1
- package/dist/assets/hooks/post-tool-telemetry/handler.js +0 -40
- package/dist/assets/hooks/post-tool-telemetry/handler.js.map +0 -1
- package/dist/assets/hooks/prompt-router/handler.d.ts +0 -4
- package/dist/assets/hooks/prompt-router/handler.d.ts.map +0 -1
- package/dist/assets/hooks/prompt-router/handler.js +0 -214
- package/dist/assets/hooks/prompt-router/handler.js.map +0 -1
- package/dist/assets/hooks/session-init/handler.d.ts +0 -4
- package/dist/assets/hooks/session-init/handler.d.ts.map +0 -1
- package/dist/assets/hooks/session-init/handler.js +0 -23
- package/dist/assets/hooks/session-init/handler.js.map +0 -1
- package/dist/claude/.claude-plugin/marketplace.json +0 -75
- package/dist/claude/.claude-plugin/plugin.json +0 -67
- package/dist/claude/agents/architect.md +0 -172
- package/dist/claude/agents/designer.md +0 -120
- package/dist/claude/agents/engineer.md +0 -98
- package/dist/claude/agents/lead.md +0 -59
- package/dist/claude/agents/postdoc.md +0 -117
- package/dist/claude/agents/researcher.md +0 -132
- package/dist/claude/agents/reviewer.md +0 -133
- package/dist/claude/agents/strategist.md +0 -111
- package/dist/claude/agents/tester.md +0 -190
- package/dist/claude/agents/writer.md +0 -114
- package/dist/claude/dist/hooks/agent-bootstrap.js +0 -121
- package/dist/claude/dist/hooks/agent-finalize.js +0 -180
- package/dist/claude/dist/hooks/prompt-router.js +0 -7336
- package/dist/claude/dist/hooks/session-init.js +0 -37
- package/dist/claude/hooks/hooks.json +0 -52
- package/dist/claude/settings.json +0 -3
- package/dist/claude/skills/nx-init/SKILL.md +0 -189
- package/dist/claude/skills/nx-plan/SKILL.md +0 -353
- package/dist/claude/skills/nx-run/SKILL.md +0 -154
- package/dist/claude/skills/nx-sync/SKILL.md +0 -87
- package/dist/codex/agents/architect.toml +0 -175
- package/dist/codex/agents/designer.toml +0 -123
- package/dist/codex/agents/engineer.toml +0 -105
- package/dist/codex/agents/lead.toml +0 -64
- package/dist/codex/agents/postdoc.toml +0 -120
- package/dist/codex/agents/researcher.toml +0 -136
- package/dist/codex/agents/reviewer.toml +0 -137
- package/dist/codex/agents/strategist.toml +0 -114
- package/dist/codex/agents/tester.toml +0 -194
- package/dist/codex/agents/writer.toml +0 -121
- package/dist/codex/dist/hooks/agent-bootstrap.js +0 -121
- package/dist/codex/dist/hooks/agent-finalize.js +0 -180
- package/dist/codex/dist/hooks/prompt-router.js +0 -7336
- package/dist/codex/dist/hooks/session-init.js +0 -37
- package/dist/codex/hooks/hooks.json +0 -28
- package/dist/codex/install/AGENTS.fragment.md +0 -60
- package/dist/codex/install/config.fragment.toml +0 -5
- package/dist/codex/install/install.sh +0 -60
- package/dist/codex/package.json +0 -20
- package/dist/codex/plugin/.codex-plugin/plugin.json +0 -57
- package/dist/codex/plugin/skills/nx-init/SKILL.md +0 -189
- package/dist/codex/plugin/skills/nx-plan/SKILL.md +0 -353
- package/dist/codex/plugin/skills/nx-run/SKILL.md +0 -154
- package/dist/codex/plugin/skills/nx-sync/SKILL.md +0 -87
- package/dist/codex/prompts/architect.md +0 -166
- package/dist/codex/prompts/designer.md +0 -114
- package/dist/codex/prompts/engineer.md +0 -97
- package/dist/codex/prompts/lead.md +0 -60
- package/dist/codex/prompts/postdoc.md +0 -111
- package/dist/codex/prompts/researcher.md +0 -127
- package/dist/codex/prompts/reviewer.md +0 -128
- package/dist/codex/prompts/strategist.md +0 -105
- package/dist/codex/prompts/tester.md +0 -185
- package/dist/codex/prompts/writer.md +0 -113
- package/dist/hooks/agent-bootstrap.js +0 -121
- package/dist/hooks/agent-finalize.js +0 -180
- package/dist/hooks/prompt-router.js +0 -7336
- package/dist/hooks/session-init.js +0 -37
- package/dist/manifests/claude-hooks.json +0 -52
- package/dist/manifests/codex-hooks.json +0 -28
- package/dist/manifests/opencode-manifest.json +0 -44
- package/dist/manifests/portability-report.json +0 -87
- package/dist/opencode/.opencode/skills/nx-init/SKILL.md +0 -189
- package/dist/opencode/.opencode/skills/nx-plan/SKILL.md +0 -353
- package/dist/opencode/.opencode/skills/nx-run/SKILL.md +0 -154
- package/dist/opencode/.opencode/skills/nx-sync/SKILL.md +0 -87
- package/dist/opencode/package.json +0 -23
- package/dist/opencode/src/agents/architect.ts +0 -176
- package/dist/opencode/src/agents/designer.ts +0 -124
- package/dist/opencode/src/agents/engineer.ts +0 -105
- package/dist/opencode/src/agents/lead.ts +0 -66
- package/dist/opencode/src/agents/postdoc.ts +0 -121
- package/dist/opencode/src/agents/researcher.ts +0 -136
- package/dist/opencode/src/agents/reviewer.ts +0 -137
- package/dist/opencode/src/agents/strategist.ts +0 -115
- package/dist/opencode/src/agents/tester.ts +0 -194
- package/dist/opencode/src/agents/writer.ts +0 -121
- package/dist/opencode/src/index.ts +0 -25
- package/dist/opencode/src/plugin.ts +0 -6
- package/dist/scripts/build-agents.d.ts +0 -164
- package/dist/scripts/build-agents.d.ts.map +0 -1
- package/dist/scripts/build-agents.js +0 -890
- package/dist/scripts/build-agents.js.map +0 -1
- package/dist/scripts/build-hooks.d.ts +0 -57
- package/dist/scripts/build-hooks.d.ts.map +0 -1
- package/dist/scripts/build-hooks.js +0 -555
- package/dist/scripts/build-hooks.js.map +0 -1
- package/dist/scripts/cli.d.ts +0 -54
- package/dist/scripts/cli.d.ts.map +0 -1
- package/dist/scripts/cli.js +0 -504
- package/dist/scripts/cli.js.map +0 -1
- package/dist/scripts/smoke/smoke-claude.d.ts +0 -2
- package/dist/scripts/smoke/smoke-claude.d.ts.map +0 -1
- package/dist/scripts/smoke/smoke-claude.js +0 -58
- package/dist/scripts/smoke/smoke-claude.js.map +0 -1
- package/dist/scripts/smoke/smoke-codex.d.ts +0 -2
- package/dist/scripts/smoke/smoke-codex.d.ts.map +0 -1
- package/dist/scripts/smoke/smoke-codex.js +0 -50
- package/dist/scripts/smoke/smoke-codex.js.map +0 -1
- package/dist/scripts/smoke/smoke-consumer.d.ts +0 -2
- package/dist/scripts/smoke/smoke-consumer.d.ts.map +0 -1
- package/dist/scripts/smoke/smoke-consumer.js +0 -80
- package/dist/scripts/smoke/smoke-consumer.js.map +0 -1
- package/dist/scripts/smoke/smoke-opencode.d.ts +0 -2
- package/dist/scripts/smoke/smoke-opencode.d.ts.map +0 -1
- package/dist/scripts/smoke/smoke-opencode.js +0 -99
- package/dist/scripts/smoke/smoke-opencode.js.map +0 -1
- package/dist/src/hooks/opencode-mount.d.ts +0 -35
- package/dist/src/hooks/opencode-mount.d.ts.map +0 -1
- package/dist/src/hooks/opencode-mount.js +0 -352
- package/dist/src/hooks/opencode-mount.js.map +0 -1
- package/dist/src/hooks/runtime.d.ts +0 -37
- package/dist/src/hooks/runtime.d.ts.map +0 -1
- package/dist/src/hooks/runtime.js +0 -274
- package/dist/src/hooks/runtime.js.map +0 -1
- package/dist/src/hooks/types.d.ts +0 -196
- package/dist/src/hooks/types.d.ts.map +0 -1
- package/dist/src/hooks/types.js +0 -85
- package/dist/src/hooks/types.js.map +0 -1
- package/dist/src/lsp/cache.d.ts +0 -9
- package/dist/src/lsp/cache.d.ts.map +0 -1
- package/dist/src/lsp/cache.js +0 -216
- package/dist/src/lsp/cache.js.map +0 -1
- package/dist/src/lsp/client.d.ts +0 -24
- package/dist/src/lsp/client.d.ts.map +0 -1
- package/dist/src/lsp/client.js +0 -166
- package/dist/src/lsp/client.js.map +0 -1
- package/dist/src/lsp/detect.d.ts +0 -77
- package/dist/src/lsp/detect.d.ts.map +0 -1
- package/dist/src/lsp/detect.js +0 -116
- package/dist/src/lsp/detect.js.map +0 -1
- package/dist/src/mcp/server.d.ts.map +0 -1
- package/dist/src/mcp/server.js +0 -34
- package/dist/src/mcp/server.js.map +0 -1
- package/dist/src/mcp/tools/artifact.d.ts.map +0 -1
- package/dist/src/mcp/tools/artifact.js +0 -36
- package/dist/src/mcp/tools/artifact.js.map +0 -1
- package/dist/src/mcp/tools/history.d.ts.map +0 -1
- package/dist/src/mcp/tools/history.js +0 -29
- package/dist/src/mcp/tools/history.js.map +0 -1
- package/dist/src/mcp/tools/lsp.d.ts +0 -13
- package/dist/src/mcp/tools/lsp.d.ts.map +0 -1
- package/dist/src/mcp/tools/lsp.js +0 -225
- package/dist/src/mcp/tools/lsp.js.map +0 -1
- package/dist/src/mcp/tools/plan.d.ts.map +0 -1
- package/dist/src/mcp/tools/plan.js +0 -317
- package/dist/src/mcp/tools/plan.js.map +0 -1
- package/dist/src/mcp/tools/task.d.ts.map +0 -1
- package/dist/src/mcp/tools/task.js +0 -252
- package/dist/src/mcp/tools/task.js.map +0 -1
- package/dist/src/shared/invocations.d.ts +0 -74
- package/dist/src/shared/invocations.d.ts.map +0 -1
- package/dist/src/shared/invocations.js +0 -247
- package/dist/src/shared/invocations.js.map +0 -1
- package/dist/src/shared/json-store.d.ts.map +0 -1
- package/dist/src/shared/json-store.js.map +0 -1
- package/dist/src/shared/mcp-utils.d.ts.map +0 -1
- package/dist/src/shared/mcp-utils.js.map +0 -1
- package/dist/src/shared/package-root.d.ts +0 -6
- package/dist/src/shared/package-root.d.ts.map +0 -1
- package/dist/src/shared/package-root.js +0 -19
- package/dist/src/shared/package-root.js.map +0 -1
- package/dist/src/shared/paths.d.ts.map +0 -1
- package/dist/src/shared/paths.js +0 -81
- package/dist/src/shared/paths.js.map +0 -1
- package/dist/src/shared/tool-log.d.ts +0 -8
- package/dist/src/shared/tool-log.d.ts.map +0 -1
- package/dist/src/shared/tool-log.js +0 -22
- package/dist/src/shared/tool-log.js.map +0 -1
- package/dist/src/types/agent-config.d.ts +0 -22
- package/dist/src/types/agent-config.d.ts.map +0 -1
- package/dist/src/types/agent-config.js +0 -2
- package/dist/src/types/agent-config.js.map +0 -1
- package/dist/src/types/index.d.ts +0 -2
- package/dist/src/types/index.d.ts.map +0 -1
- package/dist/src/types/index.js +0 -2
- package/dist/src/types/index.js.map +0 -1
- package/dist/src/types/state.d.ts.map +0 -1
- package/dist/src/types/state.js.map +0 -1
- package/docs/consuming/codex-lead-merge.md +0 -106
- package/docs/contract/harness-io.md +0 -333
- package/docs/plugin-guide.md +0 -355
- package/docs/plugin-template/claude/.github/workflows/build.yml +0 -60
- package/docs/plugin-template/claude/README.md +0 -110
- package/docs/plugin-template/claude/package.json +0 -16
- package/docs/plugin-template/codex/.github/workflows/build.yml +0 -51
- package/docs/plugin-template/codex/README.md +0 -147
- package/docs/plugin-template/codex/install/install.sh +0 -60
- package/docs/plugin-template/codex/package.json +0 -17
- package/docs/plugin-template/opencode/.github/workflows/build.yml +0 -61
- package/docs/plugin-template/opencode/README.md +0 -121
- package/docs/plugin-template/opencode/package.json +0 -25
- package/docs/plugin-template/opencode/src/plugin.ts +0 -6
- /package/dist/{src/mcp/tools → mcp/handlers}/artifact.d.ts +0 -0
- /package/dist/{src/mcp/tools → mcp/handlers}/history.d.ts +0 -0
- /package/dist/{src/mcp/tools → mcp/handlers}/plan.d.ts +0 -0
- /package/dist/{src/mcp/tools → mcp/handlers}/task.d.ts +0 -0
- /package/dist/{src/shared → shared}/json-store.d.ts +0 -0
- /package/dist/{src/shared → shared}/mcp-utils.d.ts +0 -0
- /package/dist/{src/shared → shared}/mcp-utils.js +0 -0
|
@@ -1,160 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: nx-run
|
|
3
|
-
description: Execution — user-directed agent composition.
|
|
4
|
-
summary: "Execution — user-directed agent composition"
|
|
5
|
-
triggers:
|
|
6
|
-
- run
|
|
7
|
-
harness_docs_refs:
|
|
8
|
-
- resume_invocation
|
|
9
|
-
id: nx-run
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
## Role
|
|
13
|
-
|
|
14
|
-
Execution norm that Lead follows when the user invokes the [run] tag. Composes subagents dynamically based on user direction and drives the full execution pipeline from intake to completion.
|
|
15
|
-
|
|
16
|
-
## Constraints
|
|
17
|
-
|
|
18
|
-
- NEVER modify files via shell commands (sed, echo redirection, heredoc, tee, etc.) — always use the harness's dedicated file-editing primitives (gate enforced)
|
|
19
|
-
- NEVER terminate while pending tasks remain (Gate Stop nonstop)
|
|
20
|
-
- NEVER spawn a new branch without checking for main/master first
|
|
21
|
-
- MUST check tasks.json before executing — if absent, generate the plan first
|
|
22
|
-
- MUST spawn subagents per-task based on owner field — Do not handle multi-task work as Lead solo when task count ≥ 2 or target files ≥ 2
|
|
23
|
-
- MUST NOT spawn parallel Engineers if their target files overlap — serialize instead
|
|
24
|
-
- MUST call nx_task_close before completing the cycle — archive plan+tasks to history.json
|
|
25
|
-
|
|
26
|
-
## Guidelines
|
|
27
|
-
|
|
28
|
-
## Flow
|
|
29
|
-
|
|
30
|
-
### Step 1: Intake (Lead)
|
|
31
|
-
|
|
32
|
-
- **User specifies agents/direction** → follow the instruction as given.
|
|
33
|
-
- **[run] only (no direction)** → confirm direction with user before proceeding.
|
|
34
|
-
- User decides scope and composition. Lead fills in what is not specified.
|
|
35
|
-
- **Branch Guard**: if on main/master, create a branch appropriate to the task type before proceeding (prefix: `feat/`, `fix/`, `chore/`, `research/`, etc. — Lead's judgment). Auto-create without user confirmation.
|
|
36
|
-
- Check for `tasks.json`:
|
|
37
|
-
- **Exists** → read it and proceed to Step 2.
|
|
38
|
-
- **Absent** → auto-invoke `{{skill_activation skill=nx-plan mode=auto}}` to generate tasks.json. Do NOT ask — `[run]` implies execution intent. After plan generation, proceed to Step 2.
|
|
39
|
-
- If tasks.json exists, check prior decisions with `nx_plan_status`.
|
|
40
|
-
|
|
41
|
-
### Step 1.5: TUI Progress
|
|
42
|
-
|
|
43
|
-
Register tasks for visual progress tracking (Ctrl+T):
|
|
44
|
-
|
|
45
|
-
- **≤ 10 tasks**: `{{task_register label="<per-task label>" state=pending}}` per task
|
|
46
|
-
- **> 10 tasks**: group by `plan_issue`, `{{task_register label="<group label>" state=pending}}` per group
|
|
47
|
-
- Update the registered entry via `{{task_register label="<label>" state=in_progress}}` / `{{task_register label="<label>" state=completed}}` as execution proceeds
|
|
48
|
-
- **Skip only if**: non-TTY environment (VSCode, headless)
|
|
49
|
-
- **Known issue**: TUI may freeze during auto-compact (#27919) — task data on disk remains correct
|
|
50
|
-
|
|
51
|
-
### Step 2: Execute
|
|
52
|
-
|
|
53
|
-
- **Present tasks.json** to the user — show task list with owner, deps, approach summary. Proceed immediately without asking for confirmation.
|
|
54
|
-
- Execute tasks based on `owner` field:
|
|
55
|
-
- `owner: "lead"` → Lead handles directly
|
|
56
|
-
- `owner: "engineer"`, `"researcher"`, `"writer"`, etc. → spawn subagent matching the owner role
|
|
57
|
-
- `owner: "architect"`, `"tester"`, `"reviewer"`, etc. → spawn corresponding HOW/CHECK subagent
|
|
58
|
-
- For each subagent, pass the task's `context`, `approach`, and `acceptance` as the prompt.
|
|
59
|
-
- **Parallel execution**: independent tasks (no overlapping target files, no deps) can be spawned in parallel. Tasks sharing target files must be serialized.
|
|
60
|
-
- **SubagentStop escalation chain**: when a subagent stops with incomplete work:
|
|
61
|
-
1. **Do/Check failed** → spawn the relevant HOW agent (e.g., Engineer failed → Architect) to diagnose the failure, review the approach, and suggest adjustments.
|
|
62
|
-
2. **Re-delegate** → apply HOW's adjusted approach and re-delegate to a new Do/Check agent.
|
|
63
|
-
3. **HOW also failed** → Lead reports the failure to the user with diagnosis details and asks for direction.
|
|
64
|
-
- Maximum: 1 HOW diagnosis + 1 re-delegation per task. After that, escalate to user.
|
|
65
|
-
- Relevant HOW mapping: Engineer→Architect, Writer→Strategist, Researcher→Postdoc, Tester→Architect.
|
|
66
|
-
|
|
67
|
-
### Resume Dispatch Rule
|
|
68
|
-
|
|
69
|
-
For each task, Lead chooses between fresh spawn and resume based on the `owner`'s `resume_tier`:
|
|
70
|
-
|
|
71
|
-
1. Lookup `resume_tier` from `agents/{owner}.md` frontmatter (if absent → treat as `ephemeral`).
|
|
72
|
-
2. If `ephemeral` → fresh spawn. Stop.
|
|
73
|
-
3. If `bounded` → check tasks.json history: did the same `owner` previously work on overlapping target files? If yes AND no intervening edits by other agents → resume candidate. Otherwise fresh. Always include "re-read target files before any modification" instruction in the resume prompt.
|
|
74
|
-
4. If `persistent` → resume by default if the same agent worked earlier in this run. Cross-task reuse allowed.
|
|
75
|
-
5. Before attempting any resume, verify the harness's resume mechanism is available. If unavailable, fall back to fresh spawn silently — do NOT throw an error.
|
|
76
|
-
|
|
77
|
-
### Step 3: Verify (Lead + Check subagents)
|
|
78
|
-
|
|
79
|
-
**Lead**: confirm build + E2E pass/fail.
|
|
80
|
-
|
|
81
|
-
**Tester — acceptance criteria verification**:
|
|
82
|
-
- Tester reads each completed task's `acceptance` field from tasks.json
|
|
83
|
-
- Verifies each criterion with PASS/FAIL judgment
|
|
84
|
-
- All criteria must pass for the task to be considered done
|
|
85
|
-
- If any criterion fails → Step 2 rework (reopen task)
|
|
86
|
-
- Tester spawn conditions (any one triggers):
|
|
87
|
-
- tasks.json contains at least 1 task with an `acceptance` field
|
|
88
|
-
- 3 or more files changed
|
|
89
|
-
- Existing test files modified
|
|
90
|
-
- External API/DB access code changed
|
|
91
|
-
- Failure history for this area exists in memory
|
|
92
|
-
|
|
93
|
-
**Reviewer — writer deliverable verification**:
|
|
94
|
-
- Whenever Writer produced a deliverable in Step 2, Reviewer MUST verify it
|
|
95
|
-
- Writer → Reviewer is a mandatory pairing, not optional
|
|
96
|
-
- Reviewer checks: factual accuracy, source consistency, grammar/format
|
|
97
|
-
|
|
98
|
-
- If issues found: code problems → Step 2 rework; design problems → re-run nx-plan before re-executing.
|
|
99
|
-
|
|
100
|
-
### Step 4: Complete
|
|
101
|
-
|
|
102
|
-
Execute in order:
|
|
103
|
-
|
|
104
|
-
1. **nx-sync**: invoke `{{skill_activation skill=nx-sync}}` if code changes were made in this cycle. Best effort — failure does not block cycle completion.
|
|
105
|
-
2. **nx_task_close**: call to archive plan+tasks to history.json. This updates `.nexus/history.json`.
|
|
106
|
-
3. **git commit**: stage and commit source changes, build artifacts (`bridge/`, `scripts/`), `.nexus/history.json`, and any modified `.nexus/memory/` or `.nexus/context/`. Use explicit `git add` with paths (not `git add -A`) and a HEREDOC commit message with `Co-Authored-By`. This ensures the cycle's history archive lands in the same commit as the code changes, giving a 1:1 cycle-commit mapping.
|
|
107
|
-
4. **Report**: summarize to user — changed files, key decisions applied, and suggested next steps. Merge/push is the user's decision and outside this skill's scope.
|
|
108
|
-
|
|
109
|
-
---
|
|
110
|
-
|
|
111
|
-
## Reference Framework
|
|
112
|
-
|
|
113
|
-
| Phase | Owner | Content |
|
|
114
|
-
|-------|-------|---------|
|
|
115
|
-
| 1. Intake | Lead | Clarify intent, confirm direction, Branch Guard, check tasks.json / invoke nx-plan if absent |
|
|
116
|
-
| 2. Execute | Do subagents | Spawn per-task by owner, delegation criteria, parallel where safe |
|
|
117
|
-
| 3. Verify | Lead + Check subagent | Build check, quality verification |
|
|
118
|
-
| 4. Complete | Lead | nx-sync, nx_task_close, git commit, report |
|
|
119
|
-
|
|
120
|
-
---
|
|
121
|
-
|
|
122
|
-
## Structured Delegation
|
|
123
|
-
|
|
124
|
-
When Lead delegates tasks to subagents, structure the prompt in this format:
|
|
125
|
-
|
|
126
|
-
```
|
|
127
|
-
TASK: {specific deliverable}
|
|
128
|
-
|
|
129
|
-
CONTEXT:
|
|
130
|
-
- Current state: {relevant code/doc locations}
|
|
131
|
-
- Dependencies: {results from prior tasks}
|
|
132
|
-
- Prior decisions: {relevant decisions}
|
|
133
|
-
- Target files: {file path list}
|
|
134
|
-
|
|
135
|
-
CONSTRAINTS:
|
|
136
|
-
- {constraint 1}
|
|
137
|
-
- {constraint 2}
|
|
138
|
-
|
|
139
|
-
ACCEPTANCE:
|
|
140
|
-
- {completion criterion 1}
|
|
141
|
-
- {completion criterion 2}
|
|
142
|
-
```
|
|
143
|
-
|
|
144
|
-
---
|
|
145
|
-
|
|
146
|
-
## Key Principles
|
|
147
|
-
|
|
148
|
-
1. **Lead = interpret user direction + coordinate + own tasks**
|
|
149
|
-
2. **User decides scope and composition**
|
|
150
|
-
3. **tasks.json is the single source of state** — produced by nx-plan, read at Step 1, updated as tasks complete
|
|
151
|
-
4. **Do subagents = execute per owner** — Lead spawns one subagent per task based on the `owner` field. Engineers focus on code changes. Doc updates are done in bulk by Writer in Step 4. Researcher records to reference/ immediately.
|
|
152
|
-
5. **Check subagents = verify** — Lead's discretion + 4 conditions
|
|
153
|
-
6. **SubagentStop escalation** — when a subagent stops with incomplete work, escalate through HOW diagnosis → re-delegation → user report. Max 1 cycle per task.
|
|
154
|
-
7. **Gate Stop nonstop** — cannot terminate while pending tasks exist
|
|
155
|
-
8. **Plan first** — if tasks.json is absent, nx-plan must run before Step 2
|
|
156
|
-
9. **No file modification via shell commands** — sed, echo redirection, heredoc, tee, and similar shell-based file edits are prohibited. Always use the harness's dedicated file-editing primitives (gate enforced)
|
|
157
|
-
## State Management
|
|
158
|
-
|
|
159
|
-
`.nexus/state/tasks.json` — produced by nx-plan, managed via `nx_task_add`/`nx_task_update`. Gate Stop enforcement.
|
|
160
|
-
On cycle end, archive plan+tasks to `.nexus/history.json` via `nx_task_close`.
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: nx-sync
|
|
3
|
-
description: Context knowledge synchronization — scans project state and updates
|
|
4
|
-
.nexus/context/ design documents
|
|
5
|
-
summary: "Context knowledge synchronization"
|
|
6
|
-
triggers:
|
|
7
|
-
- sync
|
|
8
|
-
id: nx-sync
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
## Role
|
|
12
|
-
|
|
13
|
-
현재 프로젝트 상태를 스캔하고 `.nexus/context/` 설계 문서를 동기화한다. git diff를 사용하여 코드 변경 사항을 식별한 뒤, 코드만으로는 추론할 수 없는 추상 설계 문서(원칙, 철학, 개발 스택, 아키텍처 결정)를 업데이트한다.
|
|
14
|
-
|
|
15
|
-
## Constraints
|
|
16
|
-
|
|
17
|
-
- 기존 context 파일을 절대 삭제하지 않는다 — 업데이트하거나 추가만 한다
|
|
18
|
-
- 소스 코드를 절대 수정하지 않는다 — 이 skill은 문서만 업데이트한다
|
|
19
|
-
- 소스에서 확인할 수 없는 정보는 추측하지 않는다 — 대신 "needs verification"으로 표시한다
|
|
20
|
-
- 기존 내용 구조를 반드시 보존한다 — 전체 파일을 불필요하게 재작성하지 않고 섹션만 업데이트한다
|
|
21
|
-
- 사용 중단된 MCP 지식 도구는 절대 사용하지 않는다 — harness의 파일 읽기 및 파일 생성 프리미티브만 사용한다
|
|
22
|
-
|
|
23
|
-
## Guidelines
|
|
24
|
-
|
|
25
|
-
## Trigger
|
|
26
|
-
|
|
27
|
-
- `[sync]` — 현재 프로젝트 상태와 `.nexus/context/`를 동기화한다
|
|
28
|
-
|
|
29
|
-
## Process
|
|
30
|
-
|
|
31
|
-
### Step 1: Gather Sources
|
|
32
|
-
|
|
33
|
-
모든 사용 가능한 소스에서 정보를 수집한다:
|
|
34
|
-
|
|
35
|
-
1. **git diff** — `git diff --name-only HEAD~10..HEAD` 실행 (또는 최근 커밋을 사용하여 변경된 파일 식별)
|
|
36
|
-
- 어떤 소스 파일이 변경되었는지 식별한다
|
|
37
|
-
- 어떤 context 문서가 오래되었는지 판단하는 1차 신호
|
|
38
|
-
2. **대화 context** — 현재 세션에서 사용 가능한 경우
|
|
39
|
-
- 논의되었으나 아직 context 문서에 반영되지 않은 설계 결정
|
|
40
|
-
- 모든 업데이트의 보조 소스
|
|
41
|
-
|
|
42
|
-
### Step 2: Read Current Context
|
|
43
|
-
|
|
44
|
-
harness의 파일 읽기 프리미티브를 사용하여 `.nexus/context/`의 모든 파일을 읽는다:
|
|
45
|
-
|
|
46
|
-
- 파일 목록 확인: `ls .nexus/context/`
|
|
47
|
-
- 각 파일을 읽어 현재 문서화된 상태를 파악한다
|
|
48
|
-
- 감지된 변경 사항과 비교하여 누락되거나 오래된 내용을 식별한다
|
|
49
|
-
|
|
50
|
-
구체적인 변경이 감지된 파일만 업데이트한다. 오래된 내용이 없으면 "already current"를 보고하고 건너뛴다.
|
|
51
|
-
|
|
52
|
-
### Step 3: Execute Updates
|
|
53
|
-
|
|
54
|
-
Writer agent를 스폰하여 영향받은 context 문서를 업데이트한다:
|
|
55
|
-
|
|
56
|
-
```
|
|
57
|
-
{{subagent_spawn target_role=writer name=writer-sync-context prompt=>>WRITER_SYNC_PROMPT}}
|
|
58
|
-
Update .nexus/context/ documents based on the following changes. Read current files with the harness's file-reading primitive, then write updates with the harness's file-creation primitive. Changes: {change_manifest}
|
|
59
|
-
<<WRITER_SYNC_PROMPT
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
Writer agent:
|
|
63
|
-
- harness의 파일 읽기 프리미티브로 각 관련 context 파일을 읽는다
|
|
64
|
-
- 오래된 섹션만 수정하는 표적 업데이트를 적용한다
|
|
65
|
-
- harness의 파일 생성 프리미티브로 업데이트된 파일을 다시 작성한다
|
|
66
|
-
- 이미 정확한 파일은 재작성하지 않는다
|
|
67
|
-
|
|
68
|
-
### Step 4: Report
|
|
69
|
-
|
|
70
|
-
다음을 사용자에게 보고한다:
|
|
71
|
-
- 스캔한 context 파일
|
|
72
|
-
- 업데이트된 파일과 변경된 내용
|
|
73
|
-
- 이미 최신 상태인 파일
|
|
74
|
-
- "needs verification"으로 표시된 항목
|
|
75
|
-
|
|
76
|
-
## Key Principles
|
|
77
|
-
|
|
78
|
-
1. **전체 재작성보다 표적 업데이트** — 실제로 오래된 섹션만 변경한다
|
|
79
|
-
2. **증거 기반** — 모든 업데이트는 소스(git diff 또는 대화)를 추적할 수 있어야 한다
|
|
80
|
-
3. **구조 보존** — 기존 문서 구성, 헤딩, 형식을 유지한다
|
|
81
|
-
4. **추측 금지** — 변경 사항이 context 문서에 미치는 영향이 불명확하면 추측하지 않고 표시한다
|
|
82
|
-
|
|
83
|
-
## What .nexus/context/ Contains
|
|
84
|
-
|
|
85
|
-
Context 문서는 소스 코드에서 직접 읽을 수 없는 추상 지식을 담는다:
|
|
86
|
-
|
|
87
|
-
- 설계 원칙 및 철학
|
|
88
|
-
- 아키텍처 결정과 그 근거
|
|
89
|
-
- 개발 스택 선택과 제약
|
|
90
|
-
- 프로젝트 컨벤션과 표준
|
|
91
|
-
|
|
92
|
-
이 문서들은 코드 변경이 원칙의 전환을 반영하거나, 새로운 아키텍처 결정이 내려지거나, 개발 스택이 변화할 때 업데이트된다. 기저 설계를 변경하지 않는 일상적인 코드 추가에는 업데이트하지 않는다.
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: nx-sync
|
|
3
|
-
description: Context knowledge synchronization — scans project state and updates
|
|
4
|
-
.nexus/context/ design documents
|
|
5
|
-
summary: "Context knowledge synchronization"
|
|
6
|
-
triggers:
|
|
7
|
-
- sync
|
|
8
|
-
id: nx-sync
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
## Role
|
|
12
|
-
|
|
13
|
-
Scans the current project state and synchronizes .nexus/context/ design documents. Uses git diff to identify code changes, then updates abstract design documents (principles, philosophy, development stack, architectural decisions) that cannot be inferred from code alone.
|
|
14
|
-
|
|
15
|
-
## Constraints
|
|
16
|
-
|
|
17
|
-
- NEVER delete existing context files — only update or add
|
|
18
|
-
- NEVER modify source code — this skill updates documentation only
|
|
19
|
-
- NEVER guess information that cannot be confirmed from sources — mark as "needs verification" instead
|
|
20
|
-
- MUST preserve existing content structure — update sections, don't rewrite entire files unnecessarily
|
|
21
|
-
- NEVER use deprecated MCP knowledge tools — use the harness's file-reading and file-creation primitives only
|
|
22
|
-
|
|
23
|
-
## Guidelines
|
|
24
|
-
|
|
25
|
-
## Trigger
|
|
26
|
-
|
|
27
|
-
- `[sync]` — synchronize .nexus/context/ with current project state
|
|
28
|
-
|
|
29
|
-
## Process
|
|
30
|
-
|
|
31
|
-
### Step 1: Gather Sources
|
|
32
|
-
|
|
33
|
-
Collect information from all available sources:
|
|
34
|
-
|
|
35
|
-
1. **git diff** — run `git diff --name-only HEAD~10..HEAD` (or use recent commits to identify changed files)
|
|
36
|
-
- Identifies which source files changed
|
|
37
|
-
- Primary signal for determining which context documents may be stale
|
|
38
|
-
2. **Conversation context** — if available in current session
|
|
39
|
-
- Design decisions discussed but not yet reflected in context documents
|
|
40
|
-
- Supplementary source for all updates
|
|
41
|
-
|
|
42
|
-
### Step 2: Read Current Context
|
|
43
|
-
|
|
44
|
-
Read all files in `.nexus/context/` using the harness's file-reading primitive:
|
|
45
|
-
|
|
46
|
-
- List files: `ls .nexus/context/`
|
|
47
|
-
- Read each file to understand current documented state
|
|
48
|
-
- Compare against detected changes to identify gaps or stale content
|
|
49
|
-
|
|
50
|
-
Only update files where a concrete change is detected. If no staleness is found, report "already current" and skip.
|
|
51
|
-
|
|
52
|
-
### Step 3: Execute Updates
|
|
53
|
-
|
|
54
|
-
Spawn Writer agent to update affected context documents:
|
|
55
|
-
|
|
56
|
-
```
|
|
57
|
-
{{subagent_spawn target_role=writer name=writer-sync-context prompt=>>WRITER_SYNC_PROMPT}}
|
|
58
|
-
Update .nexus/context/ documents based on the following changes. Read current files with the harness's file-reading primitive, then write updates with the harness's file-creation primitive. Changes: {change_manifest}
|
|
59
|
-
<<WRITER_SYNC_PROMPT
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
The Writer agent:
|
|
63
|
-
- Reads each relevant context file with the harness's file-reading primitive
|
|
64
|
-
- Applies targeted updates — changes only the sections that are stale
|
|
65
|
-
- Writes the updated file back with the harness's file-creation primitive
|
|
66
|
-
- Does not rewrite files that are already accurate
|
|
67
|
-
|
|
68
|
-
### Step 4: Report
|
|
69
|
-
|
|
70
|
-
Report to user:
|
|
71
|
-
- Which context files were scanned
|
|
72
|
-
- Which files were updated and what changed
|
|
73
|
-
- Which files were already up to date
|
|
74
|
-
- Any items marked "needs verification"
|
|
75
|
-
|
|
76
|
-
## Key Principles
|
|
77
|
-
|
|
78
|
-
1. **Targeted updates over full rewrites** — only change sections that are actually stale
|
|
79
|
-
2. **Evidence-based** — every update must trace to a source (git diff or conversation)
|
|
80
|
-
3. **Preserve structure** — maintain existing document organization, headings, and format
|
|
81
|
-
4. **No speculation** — if a change's impact on context docs is unclear, flag it rather than guess
|
|
82
|
-
|
|
83
|
-
## What .nexus/context/ Contains
|
|
84
|
-
|
|
85
|
-
Context documents capture abstract knowledge that cannot be read directly from source code:
|
|
86
|
-
|
|
87
|
-
- Design principles and philosophy
|
|
88
|
-
- Architectural decisions and their rationale
|
|
89
|
-
- Development stack choices and constraints
|
|
90
|
-
- Project conventions and standards
|
|
91
|
-
|
|
92
|
-
These documents are updated when code changes reflect a shift in principles, a new architectural decision is made, or the development stack evolves. They are not updated for routine code additions that do not change the underlying design.
|