domain-knowledge-kit 0.2.14 → 0.2.16

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.
Files changed (180) hide show
  1. package/.github/skills/{flow-implementer → dkk-flow-implementer}/skill.md +17 -8
  2. package/.github/skills/{story-analyst → dkk-story-analyst}/skill.md +23 -13
  3. package/README.md +5 -0
  4. package/dist/cli.js +20 -0
  5. package/dist/cli.js.map +1 -1
  6. package/dist/features/agent/commands/init.d.ts.map +1 -1
  7. package/dist/features/agent/commands/init.js +141 -3
  8. package/dist/features/agent/commands/init.js.map +1 -1
  9. package/dist/features/agent/commands/prime.d.ts +11 -0
  10. package/dist/features/agent/commands/prime.d.ts.map +1 -1
  11. package/dist/features/agent/commands/prime.js +122 -10
  12. package/dist/features/agent/commands/prime.js.map +1 -1
  13. package/dist/features/federation/commands/consumers.d.ts +40 -0
  14. package/dist/features/federation/commands/consumers.d.ts.map +1 -0
  15. package/dist/features/federation/commands/consumers.js +126 -0
  16. package/dist/features/federation/commands/consumers.js.map +1 -0
  17. package/dist/features/federation/commands/peers-add.d.ts +14 -0
  18. package/dist/features/federation/commands/peers-add.d.ts.map +1 -0
  19. package/dist/features/federation/commands/peers-add.js +79 -0
  20. package/dist/features/federation/commands/peers-add.js.map +1 -0
  21. package/dist/features/federation/commands/peers-list.d.ts +8 -0
  22. package/dist/features/federation/commands/peers-list.d.ts.map +1 -0
  23. package/dist/features/federation/commands/peers-list.js +51 -0
  24. package/dist/features/federation/commands/peers-list.js.map +1 -0
  25. package/dist/features/federation/commands/peers-status.d.ts +8 -0
  26. package/dist/features/federation/commands/peers-status.d.ts.map +1 -0
  27. package/dist/features/federation/commands/peers-status.js +78 -0
  28. package/dist/features/federation/commands/peers-status.js.map +1 -0
  29. package/dist/features/federation/commands/pull.d.ts +18 -0
  30. package/dist/features/federation/commands/pull.d.ts.map +1 -0
  31. package/dist/features/federation/commands/pull.js +153 -0
  32. package/dist/features/federation/commands/pull.js.map +1 -0
  33. package/dist/features/federation/git-fetcher.d.ts +45 -0
  34. package/dist/features/federation/git-fetcher.d.ts.map +1 -0
  35. package/dist/features/federation/git-fetcher.js +70 -0
  36. package/dist/features/federation/git-fetcher.js.map +1 -0
  37. package/dist/features/federation/loader.d.ts +60 -0
  38. package/dist/features/federation/loader.d.ts.map +1 -0
  39. package/dist/features/federation/loader.js +193 -0
  40. package/dist/features/federation/loader.js.map +1 -0
  41. package/dist/features/federation/lock.d.ts +12 -0
  42. package/dist/features/federation/lock.d.ts.map +1 -0
  43. package/dist/features/federation/lock.js +48 -0
  44. package/dist/features/federation/lock.js.map +1 -0
  45. package/dist/features/federation/tests/git-fetcher.test.d.ts +2 -0
  46. package/dist/features/federation/tests/git-fetcher.test.d.ts.map +1 -0
  47. package/dist/features/federation/tests/git-fetcher.test.js +167 -0
  48. package/dist/features/federation/tests/git-fetcher.test.js.map +1 -0
  49. package/dist/features/federation/tests/loader.test.d.ts +2 -0
  50. package/dist/features/federation/tests/loader.test.d.ts.map +1 -0
  51. package/dist/features/federation/tests/loader.test.js +144 -0
  52. package/dist/features/federation/tests/loader.test.js.map +1 -0
  53. package/dist/features/federation/tests/phase5.test.d.ts +2 -0
  54. package/dist/features/federation/tests/phase5.test.d.ts.map +1 -0
  55. package/dist/features/federation/tests/phase5.test.js +137 -0
  56. package/dist/features/federation/tests/phase5.test.js.map +1 -0
  57. package/dist/features/federation/tests/schema-load.test.d.ts +2 -0
  58. package/dist/features/federation/tests/schema-load.test.d.ts.map +1 -0
  59. package/dist/features/federation/tests/schema-load.test.js +97 -0
  60. package/dist/features/federation/tests/schema-load.test.js.map +1 -0
  61. package/dist/features/federation/tests/validator.test.d.ts +2 -0
  62. package/dist/features/federation/tests/validator.test.d.ts.map +1 -0
  63. package/dist/features/federation/tests/validator.test.js +319 -0
  64. package/dist/features/federation/tests/validator.test.js.map +1 -0
  65. package/dist/features/mcp/commands/serve.d.ts +10 -0
  66. package/dist/features/mcp/commands/serve.d.ts.map +1 -0
  67. package/dist/features/mcp/commands/serve.js +12 -0
  68. package/dist/features/mcp/commands/serve.js.map +1 -0
  69. package/dist/features/mcp/server.d.ts +15 -0
  70. package/dist/features/mcp/server.d.ts.map +1 -0
  71. package/dist/features/mcp/server.js +438 -0
  72. package/dist/features/mcp/server.js.map +1 -0
  73. package/dist/features/pipeline/commands/validate.d.ts.map +1 -1
  74. package/dist/features/pipeline/commands/validate.js +7 -0
  75. package/dist/features/pipeline/commands/validate.js.map +1 -1
  76. package/dist/features/pipeline/indexer.d.ts +28 -2
  77. package/dist/features/pipeline/indexer.d.ts.map +1 -1
  78. package/dist/features/pipeline/indexer.js +84 -29
  79. package/dist/features/pipeline/indexer.js.map +1 -1
  80. package/dist/features/pipeline/validator.d.ts +10 -0
  81. package/dist/features/pipeline/validator.d.ts.map +1 -1
  82. package/dist/features/pipeline/validator.js +274 -27
  83. package/dist/features/pipeline/validator.js.map +1 -1
  84. package/dist/features/query/commands/list.d.ts +10 -0
  85. package/dist/features/query/commands/list.d.ts.map +1 -1
  86. package/dist/features/query/commands/list.js +1 -1
  87. package/dist/features/query/commands/list.js.map +1 -1
  88. package/dist/features/query/commands/locate.d.ts +1 -0
  89. package/dist/features/query/commands/locate.d.ts.map +1 -1
  90. package/dist/features/query/commands/locate.js +1 -1
  91. package/dist/features/query/commands/locate.js.map +1 -1
  92. package/dist/features/query/commands/search.d.ts.map +1 -1
  93. package/dist/features/query/commands/search.js +2 -0
  94. package/dist/features/query/commands/search.js.map +1 -1
  95. package/dist/features/query/commands/show.d.ts +15 -0
  96. package/dist/features/query/commands/show.d.ts.map +1 -1
  97. package/dist/features/query/commands/show.js +116 -58
  98. package/dist/features/query/commands/show.js.map +1 -1
  99. package/dist/features/query/commands/story.d.ts +70 -0
  100. package/dist/features/query/commands/story.d.ts.map +1 -1
  101. package/dist/features/query/commands/story.js +3 -2
  102. package/dist/features/query/commands/story.js.map +1 -1
  103. package/dist/features/query/commands/summary.d.ts +3 -0
  104. package/dist/features/query/commands/summary.d.ts.map +1 -1
  105. package/dist/features/query/commands/summary.js +1 -1
  106. package/dist/features/query/commands/summary.js.map +1 -1
  107. package/dist/features/query/searcher.d.ts +18 -1
  108. package/dist/features/query/searcher.d.ts.map +1 -1
  109. package/dist/features/query/searcher.js +11 -2
  110. package/dist/features/query/searcher.js.map +1 -1
  111. package/dist/features/scaffold/commands/service-init.d.ts +12 -0
  112. package/dist/features/scaffold/commands/service-init.d.ts.map +1 -0
  113. package/dist/features/scaffold/commands/service-init.js +69 -0
  114. package/dist/features/scaffold/commands/service-init.js.map +1 -0
  115. package/dist/shared/graph.d.ts +8 -0
  116. package/dist/shared/graph.d.ts.map +1 -1
  117. package/dist/shared/graph.js +180 -112
  118. package/dist/shared/graph.js.map +1 -1
  119. package/dist/shared/index.d.ts +4 -1
  120. package/dist/shared/index.d.ts.map +1 -1
  121. package/dist/shared/index.js +6 -1
  122. package/dist/shared/index.js.map +1 -1
  123. package/dist/shared/loader.d.ts +22 -0
  124. package/dist/shared/loader.d.ts.map +1 -1
  125. package/dist/shared/loader.js +31 -1
  126. package/dist/shared/loader.js.map +1 -1
  127. package/dist/shared/paths.d.ts +59 -7
  128. package/dist/shared/paths.d.ts.map +1 -1
  129. package/dist/shared/paths.js +93 -11
  130. package/dist/shared/paths.js.map +1 -1
  131. package/dist/shared/refs.d.ts +96 -0
  132. package/dist/shared/refs.d.ts.map +1 -0
  133. package/dist/shared/refs.js +182 -0
  134. package/dist/shared/refs.js.map +1 -0
  135. package/dist/shared/service-id.d.ts +11 -0
  136. package/dist/shared/service-id.d.ts.map +1 -0
  137. package/dist/shared/service-id.js +64 -0
  138. package/dist/shared/service-id.js.map +1 -0
  139. package/dist/shared/tests/paths.test.d.ts +2 -0
  140. package/dist/shared/tests/paths.test.d.ts.map +1 -0
  141. package/dist/shared/tests/paths.test.js +111 -0
  142. package/dist/shared/tests/paths.test.js.map +1 -0
  143. package/dist/shared/tests/refs.test.d.ts +2 -0
  144. package/dist/shared/tests/refs.test.d.ts.map +1 -0
  145. package/dist/shared/tests/refs.test.js +104 -0
  146. package/dist/shared/tests/refs.test.js.map +1 -0
  147. package/dist/shared/types/domain.d.ts +20 -0
  148. package/dist/shared/types/domain.d.ts.map +1 -1
  149. package/dist/shared/types/federation.d.ts +60 -0
  150. package/dist/shared/types/federation.d.ts.map +1 -0
  151. package/dist/shared/types/federation.js +12 -0
  152. package/dist/shared/types/federation.js.map +1 -0
  153. package/package.json +6 -3
  154. package/tools/dkk/claude/agents/dkk-domain-reviewer.md +69 -0
  155. package/tools/dkk/claude/commands/dkk-adr.md +11 -0
  156. package/tools/dkk/claude/commands/dkk-impact.md +34 -0
  157. package/tools/dkk/claude/commands/dkk-implement.md +12 -0
  158. package/tools/dkk/claude/commands/dkk-prime.md +6 -0
  159. package/tools/dkk/claude/commands/dkk-review.md +12 -0
  160. package/tools/dkk/claude/commands/dkk-story.md +12 -0
  161. package/tools/dkk/claude/hooks/post-edit-validate.mjs +51 -0
  162. package/tools/dkk/claude/hooks/pre-edit-block-generated.mjs +39 -0
  163. package/tools/dkk/claude/hooks/session-start-prime.mjs +33 -0
  164. package/tools/dkk/claude/hooks/stop-validate.mjs +48 -0
  165. package/tools/dkk/claude/settings.json +62 -0
  166. package/tools/dkk/claude/skills/dkk-adr-author/SKILL.md +54 -0
  167. package/tools/dkk/claude/skills/dkk-flow-implementer/SKILL.md +51 -0
  168. package/tools/dkk/claude/skills/dkk-story-analyst/SKILL.md +108 -0
  169. package/tools/dkk/schema/actors.schema.json +11 -1
  170. package/tools/dkk/schema/adr-frontmatter.schema.json +4 -4
  171. package/tools/dkk/schema/aggregate.schema.json +1 -1
  172. package/tools/dkk/schema/command.schema.json +1 -1
  173. package/tools/dkk/schema/event.schema.json +1 -1
  174. package/tools/dkk/schema/federation.schema.json +71 -0
  175. package/tools/dkk/schema/glossary.schema.json +1 -1
  176. package/tools/dkk/schema/index.schema.json +2 -2
  177. package/tools/dkk/schema/policy.schema.json +1 -1
  178. package/tools/dkk/schema/read-model.schema.json +15 -1
  179. package/tools/dkk/schema/service.schema.json +30 -0
  180. package/.github/skills/domain-knowledge/skill.md +0 -93
@@ -1,11 +1,14 @@
1
1
  ---
2
- name: flow-implementer
3
- description: Portable Agent Skill for guiding developers through framework-agnostic implementation of a flow based on a Domain Knowledge Pack.
2
+ name: dkk-flow-implementer
3
+ description: Portable Agent Skill for guiding developers through framework-agnostic implementation of a flow based directly on a local Domain Knowledge Pack (not external issue trackers).
4
4
  ---
5
5
 
6
6
  # Flow Implementer Skill
7
7
 
8
- > Portable Agent Skill for guiding developers through framework-agnostic implementation of a flow based on a Domain Knowledge Pack.
8
+ > Portable Agent Skill for guiding developers through framework-agnostic implementation of a flow based entirely on a local Domain Knowledge Pack (DKK).
9
+ >
10
+ > **CRITICAL INSTRUCTION FOR AI AGENTS:**
11
+ > Do NOT look for, query, or mention any external issue/ticket management tools (like Jira, GitHub Issues, Linear, Trello, etc.) for requirements. Follow the flow definitions and rules sourced strictly from the local `dkk` CLI tool. All "requirements" and "flows" are documented via the local Domain Knowledge Kit.
9
12
 
10
13
  ## Description
11
14
 
@@ -23,16 +26,22 @@ dkk story <flow-id> --json # Machine-readable output for agents
23
26
  When asked to implement, build, or code a flow/feature:
24
27
 
25
28
  1. **Identify the flow** — Ask the user for the relevant flow ID if not provided, or search for it: \`dkk list --type flow\`.
26
- 2. **Retrieve full context** — Run \`dkk story <flow-id>\` or \`dkk story <flow-id> --json\` to obtain domain rules.
27
- 3. **Present Architectural Constraints** — Before any implementation begins, output the ADRs (Architecture Decision Records) from the context. Ask the user to acknowledge these constraints before proceeding.
28
- 4. **Generate Implementation Checklist** Create a logical, framework-agnostic checklist of work needed. Typical buckets include:
29
+ 2. **Retrieve full context from DKK** — Run \`dkk story <flow-id>\` or \`dkk story <flow-id> --json\` to obtain domain rules and requirements locally. Do NOT request external tickets.
30
+ 3. **Clarify scope** — Use \`askQuestions\` to ask **1–7 clarifying questions** before proceeding. Derive each question, its options, and your recommended default from the DKK output, the project's existing codebase conventions, and any prior ADR decisions — do not use a fixed set. Each question must offer concrete options with one marked as recommended. Skip entirely for trivial flows (≤2 steps, no cross-context effects, no ambiguity). Questions should target **implementation behavior and UX details**, e.g.:
31
+ - What should the user see/experience immediately after this command succeeds?
32
+ - How should validation errors surface to the user (inline, toast, page-level)?
33
+ - Should this action be optimistic (instant UI update) or wait for confirmation?
34
+ - Are there concurrency scenarios — can two users trigger this simultaneously?
35
+ - Should the flow include an undo/cancel path, or is it one-way?
36
+ 4. **Present Architectural Constraints** — Before any implementation begins, output the ADRs (Architecture Decision Records) from the local DKK context. Ask the user to acknowledge these constraints before proceeding.
37
+ 5. **Generate Implementation Checklist** — Create a logical, framework-agnostic checklist of work needed. Typical buckets include:
29
38
  - **Domain/Aggregates**: Entities, state transitions, and invariants to model.
30
39
  - **Commands/Controllers**: Handlers for incoming commands, preconditions, and validations.
31
40
  - **Events**: Domain events to be explicitly published upon successful command validation.
32
41
  - **Policies**: Side-effects and reactive logic that triggers when events occur.
33
42
  - **Read Models**: Projections that need to be updated in response to events.
34
- 5. **Interactive Step-by-step Delivery** — Ask the user which checklist item they want to tackle first. Guide them through the logic without writing framework-specific boilerplate initially (unless explicitly requested by the user's overarching project instructions). Keep guidance focused on the domain logic, invariants, and policies defined in the \`dkk story\` output.
35
- 6. **Noun Enforcement (MANDATORY)** — You MUST use the exact terminology defined in the DKK output. Do not invent new names for entities, commands, or events.
43
+ 6. **Interactive Step-by-step Delivery** — Ask the user which checklist item they want to tackle first. Guide them through the logic without writing framework-specific boilerplate initially (unless explicitly requested by the user's overarching project instructions). Keep guidance focused on the domain logic, invariants, and policies defined in the \`dkk story\` output.
44
+ 7. **Noun Enforcement (MANDATORY)** — You MUST use the exact terminology defined in the DKK output. Do not invent new names for entities, commands, or events.
36
45
 
37
46
  ## Interaction Rules
38
47
  - Do NOT generate full boilerplate application code initially. Wait for the user to request code generation for a specific checklist item.
@@ -1,15 +1,18 @@
1
1
  ---
2
- name: story-analyst
3
- description: Portable Agent Skill for generating, splitting, and reshaping user stories from a Domain Knowledge Pack.
2
+ name: dkk-story-analyst
3
+ description: Portable Agent Skill for generating, splitting, and reshaping user stories based entirely on the local Domain Knowledge Pack (not external issue trackers).
4
4
  ---
5
5
 
6
6
  # Story Analyst Skill
7
7
 
8
- > Portable Agent Skill for generating, splitting, and reshaping user stories from a Domain Knowledge Pack.
8
+ > Portable Agent Skill for generating, splitting, and reshaping user stories and epics directly from a local Domain Knowledge Pack (DKK).
9
+ >
10
+ > **CRITICAL INSTRUCTION FOR AI AGENTS:**
11
+ > Do NOT look for, query, or mention any external issue/ticket management tools (like Jira, GitHub Issues, Linear, Trello, etc.). In this context, "User Stories" and "Epics" refer exclusively to behavioral requirements derived from Domain-Driven Design (DDD) and Event Storming models stored locally in YAML format. Your source of truth is ALWAYS the local `dkk` CLI tool.
9
12
 
10
13
  ## Description
11
14
 
12
- This skill enables an AI agent to generate accurate, domain-grounded user stories, epics, and acceptance criteria by leveraging the structured domain model managed by DKK. It uses the `dkk story` command to aggregate a flow's complete context in a single call, then maps that context onto standard Agile story formats.
15
+ This skill enables an AI agent to generate accurate, domain-grounded user stories, epics, and acceptance criteria by leveraging the structured domain model managed by DKK. It uses the `dkk story` command to aggregate a flow's complete context in a single call, then maps that context onto standard Agile story formats based purely on the domain model.
13
16
 
14
17
  ## Primary Command
15
18
 
@@ -25,16 +28,22 @@ Accepts both `flow.Name` and bare `Name` (auto-prefixes `flow.`).
25
28
  When asked to write, draft, or generate a user story:
26
29
 
27
30
  1. **Identify the flow** — Ask the user for the relevant flow ID, or search for it: `dkk list --type flow`. If the user provides a feature name, run `dkk search "<feature>"` to locate the matching flow or command.
28
- 2. **Retrieve full context** — Run `dkk story <flow-id>`. This returns actors, ordered steps, triggered policies, BDD examples, ADRs, and downstream effects in one call.
29
- 3. **Map to story format** using the output:
31
+ 2. **Retrieve full context** — Run `dkk story <flow-id>`. This returns actors, ordered steps, triggered policies, BDD examples, ADRs, and downstream effects in one call from the local domain model.
32
+ 3. **Clarify scope** — Use `askQuestions` to ask **1–7 clarifying questions** before drafting. Derive each question, its options, and your recommended default from the actual DKK output and the project's conventions — do not use a fixed set. Each question must offer concrete options with one marked as recommended. Skip entirely for trivial flows (≤2 steps, 1 actor, no ambiguity). Questions should target **product behavior and story scope**, e.g.:
33
+ - Which user-facing outcome matters most for this story?
34
+ - Should the user receive confirmation/feedback after this action, and how?
35
+ - When a step fails or is rejected, what should the user experience?
36
+ - Are there optional steps the user can skip, or is the flow strictly linear?
37
+ - Should this story cover the happy path only, or include edge cases?
38
+ 4. **Map to story format** using the output:
30
39
  - **As a** `[Actor from "Actors" section]`
31
40
  - **I want to** `[Command description from Steps]`
32
41
  - **So that** `[Flow description]`
33
- 4. **Write acceptance criteria** from the "Policies" and "BDD Examples" sections:
42
+ 5. **Write acceptance criteria** from the "Policies" and "BDD Examples" sections:
34
43
  - Policies provide the **Given/When/Then** structure: When [triggering event] → Then [consequent command]
35
44
  - BDD Examples from commands and events are pre-written scenarios — use them directly or expand them
36
- 5. **Add an Architectural Constraints section** listing all ADRs from the output. Developers must respect these when implementing the story.
37
- 6. **Add an Implementation Notes section** from "Downstream Effects": read models that must be updated, secondary policies that will fire.
45
+ 6. **Add an Architectural Constraints section** listing all ADRs from the output. Developers must respect these when implementing the story.
46
+ 7. **Add an Implementation Notes section** from "Downstream Effects": read models that must be updated, secondary policies that will fire.
38
47
 
39
48
  ## Noun Enforcement (MANDATORY)
40
49
 
@@ -42,12 +51,13 @@ Only use terminology present in the `dkk story` output. Never:
42
51
  - Invent entity names, command names, or event names not in the output
43
52
  - Rename domain terms (if DKK says `OrderBasket`, the story must not say `ShoppingCart`)
44
53
  - Reference bounded contexts not mentioned in the step refs
54
+ - Pull context from external APIs or issue trackers.
45
55
 
46
56
  If you are uncertain whether a term is canonical, run `dkk search "<term>"` to verify.
47
57
 
48
- ## Epic vs. Story Decision Rules
58
+ ## Epic vs. Story Decision Rules (Domain Level)
49
59
 
50
- After retrieving the flow context, apply these rules:
60
+ After retrieving the flow context from DKK, apply these rules:
51
61
 
52
62
  - **Single story:** Flow has ≤3 command steps and spans ≤1 bounded context.
53
63
  - **Epic with story slices:** Flow has >3 command steps OR spans >1 bounded context. Slice by:
@@ -55,14 +65,14 @@ After retrieving the flow context, apply these rules:
55
65
  2. Each policy trigger becomes an explicit story ("As a system, when X happens, I want Y to be triggered, so that Z")
56
66
  3. Each slice that produces an event consumed by a read model must explicitly include updating that read model in its scope or acceptance criteria
57
67
 
58
- When recommending an epic breakdown, present the slice boundaries and explain which downstream effects belong to each slice.
68
+ When recommending an epic breakdown, present the slice boundaries and explain which downstream effects belong to each slice based on the DKK model.
59
69
 
60
70
  ## Story Reshaping Workflow
61
71
 
62
72
  When asked to refine, split, or revise an existing story:
63
73
 
64
74
  1. Run `dkk story <flow-id>` for the relevant flow to get the current domain truth
65
- 2. Compare the story's entities and terminology against the DKK output
75
+ 2. Compare the text's entities and terminology against the local DKK output
66
76
  3. Flag any mismatches: invented terms, missing actors, acceptance criteria that contradict policies
67
77
  4. Suggest corrections using exact DKK terminology
68
78
  5. Ensure the reshaped story still covers all downstream effects (read models, secondary policies)
package/README.md CHANGED
@@ -24,6 +24,10 @@ Architectural decisions aren't born in a vacuum. Understanding *why* a choice wa
24
24
 
25
25
  Knowledge that lives next to the code is knowledge that gets used. DKK colocates your domain model, ADRs, and generated docs inside the repository itself. AI agents can discover, query, and traverse this knowledge without leaving the codebase — making every interaction domain-aware.
26
26
 
27
+ ### One domain model can span many repositories
28
+
29
+ In enterprise architectures each service lives in its own repo, but the domain it participates in does not. DKK supports **multi-repo federation**: a repo declares itself a service with `.dkk/service.yml`, lists peer services in `.dkk/federation.yml` (by filesystem path or git URL + branch), and the loader transparently merges peer domain models into the local one. Cross-service references use the additive grammar `<service>:<context>.<Item>` — bare refs stay local-only. No CI required, no publish step, no orphan branches: a peer's raw `.dkk/` directory is the artifact. The AI assistant in any repo can answer "what does `ordering:OrderPlaced` contain, and who else consumes it?" without leaving the current working directory.
30
+
27
31
  ---
28
32
 
29
33
  ## Documentation
@@ -38,6 +42,7 @@ All technical details, CLI references, and integration guides live in the [`docs
38
42
  | **[ADR Guide](docs/adr-guide.md)** | Writing, linking, and querying ADRs |
39
43
  | **[AI Agent Integration](docs/ai-agent-integration.md)** | Onboarding agents, context-efficient retrieval |
40
44
  | **[Way of Working](docs/way-of-working.md)** | Team adoption practices, PR review, CI, governance |
45
+ | **[Iterative Modeling](docs/iterative-modeling.md)** | Decision patterns, modeling phases, external constraints |
41
46
 
42
47
  ## License
43
48
 
package/dist/cli.js CHANGED
@@ -16,10 +16,17 @@ import { registerNewDomain } from "./features/scaffold/commands/new-domain.js";
16
16
  import { registerNewContext } from "./features/scaffold/commands/new-context.js";
17
17
  import { registerNewAdr } from "./features/scaffold/commands/new-adr.js";
18
18
  import { registerAddItem } from "./features/scaffold/commands/add-item.js";
19
+ import { registerServiceInit } from "./features/scaffold/commands/service-init.js";
20
+ import { registerPeersAdd } from "./features/federation/commands/peers-add.js";
21
+ import { registerPeersList } from "./features/federation/commands/peers-list.js";
22
+ import { registerPeersStatus } from "./features/federation/commands/peers-status.js";
23
+ import { registerPull } from "./features/federation/commands/pull.js";
24
+ import { registerConsumers } from "./features/federation/commands/consumers.js";
19
25
  import { registerRename } from "./features/refactor/commands/rename.js";
20
26
  import { registerRm } from "./features/refactor/commands/rm.js";
21
27
  import { registerMove } from "./features/refactor/commands/move.js";
22
28
  import { registerStats } from "./features/audit/commands/stats.js";
29
+ import { registerMcp } from "./features/mcp/commands/serve.js";
23
30
  import { formatCliError } from "./shared/errors.js";
24
31
  /** Whether to show full stack traces (set DEBUG=1 in env). */
25
32
  const DEBUG = Boolean(process.env.DEBUG);
@@ -55,6 +62,7 @@ registerRename(program);
55
62
  registerRm(program);
56
63
  registerMove(program);
57
64
  registerStats(program);
65
+ registerMcp(program);
58
66
  // "new" sub-command group
59
67
  const newCmd = program
60
68
  .command("new")
@@ -64,6 +72,18 @@ registerNewContext(newCmd);
64
72
  registerNewAdr(newCmd);
65
73
  // Top-level "add" command for individual domain items
66
74
  registerAddItem(program);
75
+ // Federation: service identity
76
+ registerServiceInit(program);
77
+ // Federation: peer management
78
+ const peersCmd = program
79
+ .command("peers")
80
+ .description("Federation peer management");
81
+ registerPeersAdd(peersCmd);
82
+ registerPeersList(peersCmd);
83
+ registerPeersStatus(peersCmd);
84
+ // Federation: dkk pull + dkk consumers
85
+ registerPull(program);
86
+ registerConsumers(program);
67
87
  // ── Agent mode injection ─────────────────────────────────────────────
68
88
  program.option("--agent", "Enable agent mode (JSON + minify by default)");
69
89
  // Add --no-json to commands that have --json
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../../src/features/agent/commands/init.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,WAAW,CAAC;AAmIhD,sCAAsC;AACtC,wBAAgB,YAAY,CAAC,OAAO,EAAE,GAAG,GAAG,IAAI,CAwC/C"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../../src/features/agent/commands/init.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,WAAW,CAAC;AA+RhD,sCAAsC;AACtC,wBAAgB,YAAY,CAAC,OAAO,EAAE,GAAG,GAAG,IAAI,CA6C/C"}
@@ -1,6 +1,6 @@
1
- import { readFileSync, writeFileSync, existsSync, mkdirSync, readdirSync, statSync } from "node:fs";
1
+ import { readFileSync, writeFileSync, existsSync, mkdirSync, readdirSync, statSync, chmodSync } from "node:fs";
2
2
  import { join } from "node:path";
3
- import { repoRoot, packageSkillsDir } from "../../../shared/paths.js";
3
+ import { repoRoot, packageSkillsDir, packageClaudeDir } from "../../../shared/paths.js";
4
4
  const START_MARKER = "<!-- dkk:start -->";
5
5
  const END_MARKER = "<!-- dkk:end -->";
6
6
  /**
@@ -62,7 +62,10 @@ dkk stats # Domain statistics + orphaned items
62
62
 
63
63
  # Agent
64
64
  dkk init # Create/update AGENTS.md with DKK section
65
+ dkk init --claude # Also scaffold .claude/ (settings, hooks, skills, agents, commands)
66
+ dkk init --skills # Also install agent skills into .github/skills/
65
67
  dkk prime # Output full agent context
68
+ dkk mcp # Run the DKK MCP server (stdio) for Claude Code etc.
66
69
  \`\`\`
67
70
 
68
71
  ### Quality Gates
@@ -118,13 +121,145 @@ function installSkills(root, force) {
118
121
  }
119
122
  }
120
123
  }
124
+ /**
125
+ * Copy every file in `srcDir` (one level deep) into `destDir`. Skips files
126
+ * that already exist unless `force` is true. Reports each file with a
127
+ * `.claude/<relSubpath>/<filename>` label.
128
+ *
129
+ * If `executable` is true, sets 0o755 on each copied file (used for hook
130
+ * scripts).
131
+ */
132
+ function copyFlatDir(opts) {
133
+ const { srcDir, destDir, relSubpath, force, executable } = opts;
134
+ if (!existsSync(srcDir))
135
+ return;
136
+ mkdirSync(destDir, { recursive: true });
137
+ for (const fileName of readdirSync(srcDir)) {
138
+ const srcFile = join(srcDir, fileName);
139
+ if (!statSync(srcFile).isFile())
140
+ continue;
141
+ const destFile = join(destDir, fileName);
142
+ const relPath = `${relSubpath}/${fileName}`;
143
+ if (existsSync(destFile) && !force) {
144
+ console.log(`Skipped ${relPath} (already exists — use --force to overwrite)`);
145
+ continue;
146
+ }
147
+ const alreadyExisted = existsSync(destFile);
148
+ writeFileSync(destFile, readFileSync(srcFile, "utf-8"), "utf-8");
149
+ if (executable) {
150
+ try {
151
+ chmodSync(destFile, 0o755);
152
+ }
153
+ catch {
154
+ // Non-POSIX filesystems may reject chmod — safe to ignore.
155
+ }
156
+ }
157
+ console.log(`${alreadyExisted ? "Updated" : "Created"} ${relPath}`);
158
+ }
159
+ }
160
+ /**
161
+ * Copy a directory of skill subdirectories. Layout is `<srcDir>/<skill>/<file>`,
162
+ * mirrored under `<destDir>/<skill>/<file>`. Skips files that already exist
163
+ * unless `force` is true.
164
+ */
165
+ function copyNestedDir(opts) {
166
+ const { srcDir, destDir, relSubpath, force } = opts;
167
+ if (!existsSync(srcDir))
168
+ return;
169
+ for (const subName of readdirSync(srcDir)) {
170
+ const subSrc = join(srcDir, subName);
171
+ if (!statSync(subSrc).isDirectory())
172
+ continue;
173
+ const subDest = join(destDir, subName);
174
+ mkdirSync(subDest, { recursive: true });
175
+ for (const fileName of readdirSync(subSrc)) {
176
+ const srcFile = join(subSrc, fileName);
177
+ if (!statSync(srcFile).isFile())
178
+ continue;
179
+ const destFile = join(subDest, fileName);
180
+ const relPath = `${relSubpath}/${subName}/${fileName}`;
181
+ if (existsSync(destFile) && !force) {
182
+ console.log(`Skipped ${relPath} (already exists — use --force to overwrite)`);
183
+ continue;
184
+ }
185
+ const alreadyExisted = existsSync(destFile);
186
+ writeFileSync(destFile, readFileSync(srcFile, "utf-8"), "utf-8");
187
+ console.log(`${alreadyExisted ? "Updated" : "Created"} ${relPath}`);
188
+ }
189
+ }
190
+ }
191
+ /**
192
+ * Copy the bundled Claude Code config (`settings.json`, hooks, skills,
193
+ * subagents, slash commands) from the DKK package into the consumer
194
+ * project's `.claude/` directory.
195
+ *
196
+ * Layout produced (all skip-if-present unless `--force`):
197
+ * .claude/
198
+ * settings.json
199
+ * hooks/<hook>.mjs (executable bit set)
200
+ * skills/<skill>/SKILL.md
201
+ * agents/<agent>.md
202
+ * commands/<command>.md
203
+ */
204
+ function installClaudeConfig(root, force) {
205
+ const srcDir = packageClaudeDir();
206
+ const destDir = join(root, ".claude");
207
+ if (!existsSync(srcDir)) {
208
+ console.warn(`Warning: DKK package Claude template not found at ${srcDir}`);
209
+ return;
210
+ }
211
+ mkdirSync(destDir, { recursive: true });
212
+ // 1. settings.json
213
+ const settingsSrc = join(srcDir, "settings.json");
214
+ const settingsDest = join(destDir, "settings.json");
215
+ if (existsSync(settingsSrc)) {
216
+ if (existsSync(settingsDest) && !force) {
217
+ console.log(`Skipped .claude/settings.json (already exists — use --force to overwrite)`);
218
+ }
219
+ else {
220
+ const alreadyExisted = existsSync(settingsDest);
221
+ writeFileSync(settingsDest, readFileSync(settingsSrc, "utf-8"), "utf-8");
222
+ console.log(`${alreadyExisted ? "Updated" : "Created"} .claude/settings.json`);
223
+ }
224
+ }
225
+ // 2. hooks/ (flat, executable)
226
+ copyFlatDir({
227
+ srcDir: join(srcDir, "hooks"),
228
+ destDir: join(destDir, "hooks"),
229
+ relSubpath: ".claude/hooks",
230
+ force,
231
+ executable: true,
232
+ });
233
+ // 3. skills/<skill>/SKILL.md (nested)
234
+ copyNestedDir({
235
+ srcDir: join(srcDir, "skills"),
236
+ destDir: join(destDir, "skills"),
237
+ relSubpath: ".claude/skills",
238
+ force,
239
+ });
240
+ // 4. agents/<agent>.md (flat)
241
+ copyFlatDir({
242
+ srcDir: join(srcDir, "agents"),
243
+ destDir: join(destDir, "agents"),
244
+ relSubpath: ".claude/agents",
245
+ force,
246
+ });
247
+ // 5. commands/<command>.md (flat)
248
+ copyFlatDir({
249
+ srcDir: join(srcDir, "commands"),
250
+ destDir: join(destDir, "commands"),
251
+ relSubpath: ".claude/commands",
252
+ force,
253
+ });
254
+ }
121
255
  /** Register the `init` subcommand. */
122
256
  export function registerInit(program) {
123
257
  program
124
258
  .command("init")
125
259
  .description("Create or update AGENTS.md with DKK onboarding section")
126
260
  .option("--skills", "Also install DKK skill files into .github/skills/")
127
- .option("--force", "Overwrite existing skill files (only applies with --skills)")
261
+ .option("--claude", "Also install Claude Code config (.claude/ settings, hooks, skills, agents, commands)")
262
+ .option("--force", "Overwrite existing skill or Claude files (applies with --skills or --claude)")
128
263
  .option("-r, --root <path>", "Override repository root")
129
264
  .action((opts) => {
130
265
  const root = repoRoot(opts.root);
@@ -157,6 +292,9 @@ export function registerInit(program) {
157
292
  if (opts.skills) {
158
293
  installSkills(root, opts.force ?? false);
159
294
  }
295
+ if (opts.claude) {
296
+ installClaudeConfig(root, opts.force ?? false);
297
+ }
160
298
  });
161
299
  }
162
300
  //# sourceMappingURL=init.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../../src/features/agent/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../../src/features/agent/commands/init.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,17 @@
10
10
  * CLI reference, and file conventions.
11
11
  */
12
12
  import type { Command as Cmd } from "commander";
13
+ /**
14
+ * The full agent context document.
15
+ * Keep the CLI Command Reference tables in sync with the Quick Reference block in init.ts#dkkSection.
16
+ */
17
+ export declare function primeContent(): string;
18
+ /**
19
+ * Build a dynamic "Current Domain Summary" section from the live domain
20
+ * model on disk. Returns the Markdown string to append after the static
21
+ * instructions.
22
+ */
23
+ export declare function buildDomainSummary(root?: string): string;
13
24
  /** Register the `prime` subcommand. */
14
25
  export declare function registerPrime(program: Cmd): void;
15
26
  //# sourceMappingURL=prime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prime.d.ts","sourceRoot":"","sources":["../../../../src/features/agent/commands/prime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,WAAW,CAAC;AAmehD,uCAAuC;AACvC,wBAAgB,aAAa,CAAC,OAAO,EAAE,GAAG,GAAG,IAAI,CAYhD"}
1
+ {"version":3,"file":"prime.d.ts","sourceRoot":"","sources":["../../../../src/features/agent/commands/prime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,WAAW,CAAC;AAOhD;;;GAGG;AACH,wBAAgB,YAAY,IAAI,MAAM,CA6arC;AAID;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAiJxD;AAED,uCAAuC;AACvC,wBAAgB,aAAa,CAAC,OAAO,EAAE,GAAG,GAAG,IAAI,CAYhD"}