agile-context-engineering 0.3.0 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (139) hide show
  1. package/.claude-plugin/marketplace.json +18 -0
  2. package/.claude-plugin/plugin.json +10 -0
  3. package/CHANGELOG.md +7 -1
  4. package/LICENSE +51 -51
  5. package/README.md +330 -318
  6. package/agents/ace-code-discovery-analyst.md +245 -245
  7. package/agents/ace-code-integration-analyst.md +248 -248
  8. package/agents/ace-code-reviewer.md +375 -375
  9. package/agents/ace-product-owner.md +365 -361
  10. package/agents/ace-project-researcher.md +606 -606
  11. package/agents/ace-research-synthesizer.md +228 -228
  12. package/agents/ace-technical-application-architect.md +315 -315
  13. package/agents/ace-wiki-mapper.md +449 -445
  14. package/bin/install.js +605 -195
  15. package/hooks/ace-check-update.js +71 -62
  16. package/hooks/ace-statusline.js +107 -89
  17. package/hooks/hooks.json +14 -0
  18. package/package.json +7 -5
  19. package/shared/lib/ace-core.js +361 -0
  20. package/shared/lib/ace-core.test.js +308 -0
  21. package/shared/lib/ace-github.js +753 -0
  22. package/shared/lib/ace-story.js +400 -0
  23. package/shared/lib/ace-story.test.js +250 -0
  24. package/{agile-context-engineering → shared}/utils/questioning.xml +110 -110
  25. package/{agile-context-engineering → shared}/utils/ui-formatting.md +299 -299
  26. package/{commands/ace/execute-story.md → skills/execute-story/SKILL.md} +116 -138
  27. package/skills/execute-story/script.js +291 -0
  28. package/skills/execute-story/script.test.js +261 -0
  29. package/{agile-context-engineering/templates/product/story.xml → skills/execute-story/story-template.xml} +451 -451
  30. package/skills/execute-story/walkthrough-template.xml +255 -0
  31. package/{agile-context-engineering/workflows/execute-story.xml → skills/execute-story/workflow.xml} +1221 -1219
  32. package/skills/help/SKILL.md +71 -0
  33. package/skills/help/script.js +315 -0
  34. package/skills/help/script.test.js +183 -0
  35. package/{agile-context-engineering/workflows/help.xml → skills/help/workflow.xml} +544 -533
  36. package/{commands/ace/init-coding-standards.md → skills/init-coding-standards/SKILL.md} +91 -83
  37. package/{agile-context-engineering/templates/wiki/coding-standards.xml → skills/init-coding-standards/coding-standards-template.xml} +531 -531
  38. package/skills/init-coding-standards/script.js +50 -0
  39. package/skills/init-coding-standards/script.test.js +70 -0
  40. package/{agile-context-engineering/workflows/init-coding-standards.xml → skills/init-coding-standards/workflow.xml} +381 -386
  41. package/skills/map-cross-cutting/SKILL.md +126 -0
  42. package/{agile-context-engineering/templates/wiki → skills/map-cross-cutting}/system-cross-cutting.xml +197 -197
  43. package/skills/map-cross-cutting/workflow.xml +330 -0
  44. package/skills/map-guide/SKILL.md +126 -0
  45. package/{agile-context-engineering/templates/wiki → skills/map-guide}/guide.xml +137 -137
  46. package/skills/map-guide/workflow.xml +320 -0
  47. package/skills/map-pattern/SKILL.md +125 -0
  48. package/{agile-context-engineering/templates/wiki → skills/map-pattern}/pattern.xml +159 -159
  49. package/skills/map-pattern/workflow.xml +331 -0
  50. package/{commands/ace/map-story.md → skills/map-story/SKILL.md} +180 -165
  51. package/{agile-context-engineering/templates/wiki → skills/map-story/templates}/decizions.xml +115 -115
  52. package/skills/map-story/templates/guide.xml +137 -0
  53. package/skills/map-story/templates/pattern.xml +159 -0
  54. package/skills/map-story/templates/system-cross-cutting.xml +197 -0
  55. package/{agile-context-engineering/templates/wiki → skills/map-story/templates}/system.xml +381 -381
  56. package/{agile-context-engineering/templates/wiki → skills/map-story/templates}/tech-debt-index.xml +125 -125
  57. package/{agile-context-engineering/templates/wiki → skills/map-story/templates}/walkthrough.xml +255 -255
  58. package/{agile-context-engineering/workflows/map-story.xml → skills/map-story/workflow.xml} +1046 -1046
  59. package/{commands/ace/map-subsystem.md → skills/map-subsystem/SKILL.md} +155 -140
  60. package/skills/map-subsystem/script.js +51 -0
  61. package/skills/map-subsystem/script.test.js +68 -0
  62. package/skills/map-subsystem/templates/decizions.xml +115 -0
  63. package/skills/map-subsystem/templates/guide.xml +137 -0
  64. package/{agile-context-engineering/templates/wiki → skills/map-subsystem/templates}/module-discovery.xml +174 -174
  65. package/skills/map-subsystem/templates/pattern.xml +159 -0
  66. package/{agile-context-engineering/templates/wiki → skills/map-subsystem/templates}/subsystem-architecture.xml +343 -343
  67. package/{agile-context-engineering/templates/wiki → skills/map-subsystem/templates}/subsystem-structure.xml +234 -234
  68. package/skills/map-subsystem/templates/system-cross-cutting.xml +197 -0
  69. package/skills/map-subsystem/templates/system.xml +381 -0
  70. package/skills/map-subsystem/templates/walkthrough.xml +255 -0
  71. package/{agile-context-engineering/workflows/map-subsystem.xml → skills/map-subsystem/workflow.xml} +1173 -1178
  72. package/skills/map-sys-doc/SKILL.md +125 -0
  73. package/skills/map-sys-doc/system.xml +381 -0
  74. package/skills/map-sys-doc/workflow.xml +336 -0
  75. package/{commands/ace/map-system.md → skills/map-system/SKILL.md} +103 -92
  76. package/skills/map-system/script.js +75 -0
  77. package/skills/map-system/script.test.js +73 -0
  78. package/{agile-context-engineering/templates/wiki → skills/map-system/templates}/system-architecture.xml +254 -254
  79. package/{agile-context-engineering/templates/wiki → skills/map-system/templates}/system-structure.xml +177 -177
  80. package/{agile-context-engineering/templates/wiki → skills/map-system/templates}/testing-framework.xml +283 -283
  81. package/{agile-context-engineering/templates/wiki → skills/map-system/templates}/wiki-readme.xml +296 -296
  82. package/{agile-context-engineering/workflows/map-system.xml → skills/map-system/workflow.xml} +667 -672
  83. package/{commands/ace/map-walkthrough.md → skills/map-walkthrough/SKILL.md} +140 -127
  84. package/skills/map-walkthrough/walkthrough.xml +255 -0
  85. package/{agile-context-engineering/workflows/map-walkthrough.xml → skills/map-walkthrough/workflow.xml} +457 -457
  86. package/{commands/ace/plan-backlog.md → skills/plan-backlog/SKILL.md} +93 -83
  87. package/{agile-context-engineering/templates/product/product-backlog.xml → skills/plan-backlog/product-backlog-template.xml} +231 -231
  88. package/skills/plan-backlog/script.js +121 -0
  89. package/skills/plan-backlog/script.test.js +83 -0
  90. package/{agile-context-engineering/workflows/plan-backlog.xml → skills/plan-backlog/workflow.xml} +1348 -1356
  91. package/{commands/ace/plan-feature.md → skills/plan-feature/SKILL.md} +99 -89
  92. package/{agile-context-engineering/templates/product/feature.xml → skills/plan-feature/feature-template.xml} +361 -361
  93. package/skills/plan-feature/script.js +131 -0
  94. package/skills/plan-feature/script.test.js +80 -0
  95. package/{agile-context-engineering/workflows/plan-feature.xml → skills/plan-feature/workflow.xml} +1487 -1495
  96. package/{commands/ace/plan-product-vision.md → skills/plan-product-vision/SKILL.md} +91 -81
  97. package/{agile-context-engineering/templates/product/product-vision.xml → skills/plan-product-vision/product-vision-template.xml} +227 -227
  98. package/skills/plan-product-vision/script.js +51 -0
  99. package/skills/plan-product-vision/script.test.js +69 -0
  100. package/{agile-context-engineering/workflows/plan-product-vision.xml → skills/plan-product-vision/workflow.xml} +337 -342
  101. package/{commands/ace/plan-story.md → skills/plan-story/SKILL.md} +139 -159
  102. package/skills/plan-story/script.js +295 -0
  103. package/skills/plan-story/script.test.js +240 -0
  104. package/skills/plan-story/story-template.xml +458 -0
  105. package/{agile-context-engineering/workflows/plan-story.xml → skills/plan-story/workflow.xml} +1301 -944
  106. package/{commands/ace/research-external-solution.md → skills/research-external-solution/SKILL.md} +120 -138
  107. package/{agile-context-engineering/templates/product/external-solution.xml → skills/research-external-solution/external-solution-template.xml} +832 -832
  108. package/skills/research-external-solution/script.js +229 -0
  109. package/skills/research-external-solution/script.test.js +134 -0
  110. package/{agile-context-engineering/workflows/research-external-solution.xml → skills/research-external-solution/workflow.xml} +657 -659
  111. package/{commands/ace/research-integration-solution.md → skills/research-integration-solution/SKILL.md} +121 -135
  112. package/{agile-context-engineering/templates/product/story-integration-solution.xml → skills/research-integration-solution/integration-solution-template.xml} +1015 -1015
  113. package/skills/research-integration-solution/script.js +223 -0
  114. package/skills/research-integration-solution/script.test.js +134 -0
  115. package/{agile-context-engineering/workflows/research-integration-solution.xml → skills/research-integration-solution/workflow.xml} +711 -713
  116. package/{commands/ace/research-story-wiki.md → skills/research-story-wiki/SKILL.md} +101 -116
  117. package/skills/research-story-wiki/script.js +223 -0
  118. package/skills/research-story-wiki/script.test.js +138 -0
  119. package/{agile-context-engineering/templates/product/story-wiki.xml → skills/research-story-wiki/story-wiki-template.xml} +194 -194
  120. package/{agile-context-engineering/workflows/research-story-wiki.xml → skills/research-story-wiki/workflow.xml} +473 -475
  121. package/{commands/ace/research-technical-solution.md → skills/research-technical-solution/SKILL.md} +131 -147
  122. package/skills/research-technical-solution/script.js +223 -0
  123. package/skills/research-technical-solution/script.test.js +134 -0
  124. package/{agile-context-engineering/templates/product/story-technical-solution.xml → skills/research-technical-solution/technical-solution-template.xml} +1025 -1025
  125. package/{agile-context-engineering/workflows/research-technical-solution.xml → skills/research-technical-solution/workflow.xml} +761 -763
  126. package/{commands/ace/review-story.md → skills/review-story/SKILL.md} +99 -109
  127. package/skills/review-story/script.js +249 -0
  128. package/skills/review-story/script.test.js +169 -0
  129. package/skills/review-story/story-template.xml +451 -0
  130. package/{agile-context-engineering/workflows/review-story.xml → skills/review-story/workflow.xml} +279 -281
  131. package/{commands/ace/update.md → skills/update/SKILL.md} +65 -56
  132. package/{agile-context-engineering/workflows/update.xml → skills/update/workflow.xml} +33 -18
  133. package/agile-context-engineering/src/ace-tools.js +0 -2881
  134. package/agile-context-engineering/src/ace-tools.test.js +0 -1089
  135. package/agile-context-engineering/templates/_command.md +0 -54
  136. package/agile-context-engineering/templates/_workflow.xml +0 -17
  137. package/agile-context-engineering/templates/config.json +0 -0
  138. package/agile-context-engineering/templates/product/integration-solution.xml +0 -0
  139. package/commands/ace/help.md +0 -93
@@ -1,127 +1,140 @@
1
- ---
2
- name: ace:map-walkthrough
3
- description: Create deep tutorial-style flow walkthroughs in .docs/wiki/subsystems/[name]/walkthroughs/
4
- argument-hint: "flow='tick data from bybit websocket to timescaledb' subsystem='data-ingestion' emphasis-frameworks='SignalR,Redis Streams'"
5
- allowed-tools:
6
- - Read
7
- - Bash
8
- - Glob
9
- - Grep
10
- - Write
11
- - Edit
12
- - LSP
13
- - AskUserQuestion
14
- - WebSearch
15
- - WebFetch
16
- - mcp__context7__resolve-library-id
17
- - mcp__context7__query-docs
18
- ---
19
-
20
- ```xml
21
- <command>
22
-
23
- <execution-time>
24
- <runs-after>
25
- <trigger>After /ace:map-subsystem to create deep walkthroughs for complex flows</trigger>
26
- <trigger>Anytime a complex multi-class flow needs human-readable documentation</trigger>
27
- <trigger>When onboarding new developers who need to understand specific flows</trigger>
28
- </runs-after>
29
- <use-when>
30
- <condition>A flow spans 3+ classes across multiple architectural layers</condition>
31
- <condition>External frameworks/libraries are involved that need explanation</condition>
32
- <condition>An intern reading the code alone would not understand what's happening</condition>
33
- <condition>A system doc would need paragraphs of explanation with code snippets</condition>
34
- </use-when>
35
- </execution-time>
36
-
37
- <input>
38
- <flags>
39
- </flags>
40
-
41
- <parameters>
42
- <required>
43
- <param name="flow" type="text">
44
- Natural language description of the end-to-end flow — WHERE it starts
45
- and WHERE it ends. The agent finds the entry point, follows every call
46
- through the entire code, and traces it to the exit point.
47
-
48
- E.g.:
49
- - "tick data from bybit websocket to timescaledb"
50
- - "user message from SignalR hub until LLM response is sent back"
51
- - "order placement from API endpoint to payment confirmation"
52
-
53
- If not provided, pause and ask the user.
54
- </param>
55
- <param name="subsystem" type="path | text">
56
- Subsystem where the walkthrough wiki file is placed.
57
- The flow itself may span MULTIPLE subsystems — the agent follows
58
- the code wherever it goes. This parameter only determines the
59
- wiki location: `.docs/wiki/subsystems/[subsystem]/walkthroughs/`.
60
- If not provided, pause and ask the user.
61
- </param>
62
- </required>
63
-
64
- <optional>
65
- <param name="emphasis-frameworks" type="csv">
66
- Comma-separated frameworks/libraries/APIs/SDKs that should receive deep
67
- explanation throughout the walkthrough. When specified:
68
- - EVERY step touching the framework gets a framework info box
69
- - ALL code interacting with the framework is shown and explained
70
- - The Framework Concepts Reference table becomes MANDATORY
71
-
72
- Each entry is EITHER:
73
- - A name (agent researches via WebSearch/context7):
74
- "SignalR" or "SignalR,EF Core"
75
- - A file path or URL to documentation (agent reads the page, follows
76
- internal links to find pages covering the specific concepts used in
77
- the code, and infers the framework name from content):
78
- "https://learn.microsoft.com/aspnet/signalr/overview" or "docs/signalr-guide.md"
79
- - A mix of both:
80
- "SignalR,docs/custom-redis-wrapper.md,EF Core"
81
- </param>
82
- </optional>
83
- </parameters>
84
- </input>
85
-
86
- <execution-context>
87
- <map-walkthrough-workflow>@~/.claude/agile-context-engineering/workflows/map-walkthrough.xml</map-walkthrough-workflow>
88
- <walkthrough-template>@~/.claude/agile-context-engineering/templates/wiki/walkthrough.xml</walkthrough-template>
89
- <questioning>@~/.claude/agile-context-engineering/utils/questioning.xml</questioning>
90
- <ui-formatting>@~/.claude/agile-context-engineering/utils/ui-formatting.md</ui-formatting>
91
- </execution-context>
92
-
93
- <output>
94
- <objective>
95
- Create or update a deep tutorial-style walkthrough that traces a flow end-to-end.
96
-
97
- The agent reads the flow description, finds the entry point in the codebase,
98
- then follows EVERY SINGLE CALL through the entire code — handler to service
99
- to repository to database (or whatever the flow touches) — using LSP and code
100
- reading. It discovers all files automatically, extracts emphasis framework
101
- usages from the actual code, researches those specific concepts, and writes
102
- the walkthrough with real code snippets and framework info boxes.
103
- </objective>
104
-
105
- <artifacts>
106
- .docs/wiki/subsystems/[subsystem-name]/walkthroughs/[flow-name].md
107
- </artifacts>
108
- </output>
109
-
110
- <process>
111
- For this command use the `ace-wiki-mapper` agent
112
- that's specialized in wiki exploration and documentation writing.
113
-
114
- Execute the map-walkthrough workflow from
115
- `@~/.claude/agile-context-engineering/workflows/map-walkthrough.xml` end-to-end.
116
- Preserve all workflow gates (validation, user questions, commits).
117
- </process>
118
-
119
- <next-steps>
120
- <step>/clear first for a fresh context window</step>
121
- <step>/ace:map-walkthrough — create another walkthrough</step>
122
- <step>/ace:map-subsystem [subsystem] — map or refresh an entire subsystem</step>
123
- <step>Review and edit files in .docs/wiki/subsystems/[subsystem-name]/walkthroughs/</step>
124
- </next-steps>
125
-
126
- </command>
127
- ```
1
+ ---
2
+ name: map-walkthrough
3
+ description: Create deep tutorial-style flow walkthroughs in .docs/wiki/subsystems/[name]/walkthroughs/
4
+ argument-hint: "flow='tick data from bybit websocket to timescaledb' subsystem='data-ingestion' emphasis-frameworks='SignalR,Redis Streams'"
5
+ disable-model-invocation: false
6
+ allowed-tools:
7
+ - Read
8
+ - Bash
9
+ - Glob
10
+ - Grep
11
+ - Write
12
+ - Edit
13
+ - LSP
14
+ - AskUserQuestion
15
+ - WebSearch
16
+ - WebFetch
17
+ - mcp__context7__resolve-library-id
18
+ - mcp__context7__query-docs
19
+ model: opus
20
+ effort: max
21
+ context: fork
22
+ agent: ace-wiki-mapper
23
+ ---
24
+
25
+ ## Supporting Resources (auto-loaded)
26
+
27
+ !`cat "${CLAUDE_SKILL_DIR}/workflow.xml"`
28
+
29
+ !`cat "${CLAUDE_SKILL_DIR}/walkthrough-template.xml"`
30
+
31
+ !`cat "${CLAUDE_SKILL_DIR}/../../shared/utils/questioning.xml"`
32
+
33
+ !`cat "${CLAUDE_SKILL_DIR}/../../shared/utils/ui-formatting.md"`
34
+
35
+ ```xml
36
+ <command>
37
+
38
+ <execution-time>
39
+ <runs-after>
40
+ <trigger>After /ace:map-subsystem — to create deep walkthroughs for complex flows</trigger>
41
+ <trigger>Anytime a complex multi-class flow needs human-readable documentation</trigger>
42
+ <trigger>When onboarding new developers who need to understand specific flows</trigger>
43
+ </runs-after>
44
+ <use-when>
45
+ <condition>A flow spans 3+ classes across multiple architectural layers</condition>
46
+ <condition>External frameworks/libraries are involved that need explanation</condition>
47
+ <condition>An intern reading the code alone would not understand what's happening</condition>
48
+ <condition>A system doc would need paragraphs of explanation with code snippets</condition>
49
+ </use-when>
50
+ </execution-time>
51
+
52
+ <input>
53
+ <flags>
54
+ </flags>
55
+
56
+ <parameters>
57
+ <required>
58
+ <param name="flow" type="text">
59
+ Natural language description of the end-to-end flow — WHERE it starts
60
+ and WHERE it ends. The agent finds the entry point, follows every call
61
+ through the entire code, and traces it to the exit point.
62
+
63
+ E.g.:
64
+ - "tick data from bybit websocket to timescaledb"
65
+ - "user message from SignalR hub until LLM response is sent back"
66
+ - "order placement from API endpoint to payment confirmation"
67
+
68
+ If not provided, pause and ask the user.
69
+ </param>
70
+ <param name="subsystem" type="path | text">
71
+ Subsystem where the walkthrough wiki file is placed.
72
+ The flow itself may span MULTIPLE subsystems — the agent follows
73
+ the code wherever it goes. This parameter only determines the
74
+ wiki location: `.docs/wiki/subsystems/[subsystem]/walkthroughs/`.
75
+ If not provided, pause and ask the user.
76
+ </param>
77
+ </required>
78
+
79
+ <optional>
80
+ <param name="emphasis-frameworks" type="csv">
81
+ Comma-separated frameworks/libraries/APIs/SDKs that should receive deep
82
+ explanation throughout the walkthrough. When specified:
83
+ - EVERY step touching the framework gets a framework info box
84
+ - ALL code interacting with the framework is shown and explained
85
+ - The Framework Concepts Reference table becomes MANDATORY
86
+
87
+ Each entry is EITHER:
88
+ - A name (agent researches via WebSearch/context7):
89
+ "SignalR" or "SignalR,EF Core"
90
+ - A file path or URL to documentation (agent reads the page, follows
91
+ internal links to find pages covering the specific concepts used in
92
+ the code, and infers the framework name from content):
93
+ "https://learn.microsoft.com/aspnet/signalr/overview" or "docs/signalr-guide.md"
94
+ - A mix of both:
95
+ "SignalR,docs/custom-redis-wrapper.md,EF Core"
96
+ </param>
97
+ </optional>
98
+ </parameters>
99
+ </input>
100
+
101
+ <execution-context>
102
+ <!-- All supporting files are auto-loaded in the Supporting Resources section above.
103
+ The model does NOT need to Read these files — they are already in context. -->
104
+ </execution-context>
105
+
106
+ <output>
107
+ <objective>
108
+ Create or update a deep tutorial-style walkthrough that traces a flow end-to-end.
109
+
110
+ The agent reads the flow description, finds the entry point in the codebase,
111
+ then follows EVERY SINGLE CALL through the entire code — handler to service
112
+ to repository to database (or whatever the flow touches) — using LSP and code
113
+ reading. It discovers all files automatically, extracts emphasis framework
114
+ usages from the actual code, researches those specific concepts, and writes
115
+ the walkthrough with real code snippets and framework info boxes.
116
+ </objective>
117
+
118
+ <artifacts>
119
+ .docs/wiki/subsystems/[subsystem-name]/walkthroughs/[flow-name].md
120
+ </artifacts>
121
+ </output>
122
+
123
+ <process>
124
+ For this command use the `ace-wiki-mapper` agent
125
+ that's specialized in wiki exploration and documentation writing.
126
+
127
+ Execute the map-walkthrough workflow from
128
+ `workflow.xml` end-to-end.
129
+ Preserve all workflow gates (validation, user questions, commits).
130
+ </process>
131
+
132
+ <next-steps>
133
+ <step>/clear first for a fresh context window</step>
134
+ <step>/ace:map-walkthrough — create another walkthrough</step>
135
+ <step>/ace:map-subsystem [subsystem] — map or refresh an entire subsystem</step>
136
+ <step>Review and edit files in .docs/wiki/subsystems/[subsystem-name]/walkthroughs/</step>
137
+ </next-steps>
138
+
139
+ </command>
140
+ ```
@@ -0,0 +1,255 @@
1
+ <walkthrough>
2
+ <purpose>
3
+ Template for `.docs/wiki/subsystems/[subsystem-name]/walkthroughs/<flow-name>.md` — a deep,
4
+ tutorial-style explanation of a complex end-to-end flow. Answers "Walk me through EXACTLY
5
+ what happens when X."
6
+
7
+ Each walkthrough traces a single flow from entry point to exit point, showing ACTUAL code
8
+ from the codebase at every step, explaining what each piece does and WHY, and calling out
9
+ framework/library concepts with info boxes when external tools are involved.
10
+
11
+ Written for humans (especially new developers and interns) who need to UNDERSTAND a flow
12
+ before they can work with it. Unlike system docs (terse references for AI agents),
13
+ walkthroughs prioritize completeness of information — but deliver it in minimal words.
14
+
15
+ A "walkthrough" is a traced execution flow through multiple classes and layers:
16
+ e.g., "Message arrives via SignalR until it reaches the LLM", "LLM calls a tool until
17
+ the drawing appears on the chart", "User places an order until it's confirmed".
18
+
19
+ Create a walkthrough when:
20
+ - A flow spans 3+ classes across multiple architectural layers
21
+ - External frameworks/libraries are involved that need explanation (MAF, SignalR, EF Core)
22
+ - A system doc would need paragraphs of explanation with code snippets (that's a walkthrough, not a system doc)
23
+ - An intern reading the code alone would not understand what's happening without guidance
24
+
25
+ **Emphasis Frameworks:**
26
+ Walkthroughs can specify one or more "emphasis frameworks" — external frameworks,
27
+ libraries, APIs, or SDKs that deserve deep explanation throughout the walkthrough.
28
+ When an emphasis framework is specified:
29
+ - EVERY step where the flow touches that framework MUST have a framework info box
30
+ - The info box explains the specific framework concept used in that step
31
+ - ALL code from ALL steps that interact with the emphasis framework is shown and explained
32
+ - The agent researches the framework (via WebSearch/context7 or provided docs) if needed
33
+ - The Framework Concepts Reference table at the end is MANDATORY
34
+
35
+ Examples of emphasis frameworks: SignalR, EF Core, MAF (Microsoft Agent Framework),
36
+ React Query, gRPC, MediatR, AutoMapper. Can be specified by name (agent researches)
37
+ or with documentation paths/URLs (agent reads provided docs).
38
+
39
+ Complements:
40
+ - systems/ docs (terse WHAT reference — walkthroughs explain the HOW in depth)
41
+ - patterns/ docs (reusable structural patterns — walkthroughs trace specific flows through them)
42
+ - guides/ docs (procedural recipes for DOING — walkthroughs explain for UNDERSTANDING)
43
+ - cross-cutting/ docs (shared infrastructure — walkthroughs show how flows pass through them)
44
+ </purpose>
45
+
46
+ <template>
47
+ <title>
48
+ # [Flow Name]
49
+
50
+ One line: what this flow does and when it triggers.
51
+ </title>
52
+
53
+ <file-map>
54
+ ## Files Involved
55
+
56
+ Every file this flow touches, in execution order.
57
+
58
+ ```
59
+ src/[layer]/[area]/
60
+ |-- FileA.cs # Entry point
61
+ |-- FileB.cs # Orchestrates flow
62
+ |-- FileC.cs # Core logic
63
+ `-- FileD.cs # Sends result
64
+ ```
65
+ </file-map>
66
+
67
+ <flow-diagram>
68
+ ## Flow Overview
69
+
70
+ ```mermaid
71
+ sequenceDiagram
72
+ participant A as ComponentA
73
+ participant B as ComponentB
74
+ participant C as ComponentC
75
+ participant D as ExternalSystem
76
+
77
+ A->>B: step description
78
+ B->>C: step description
79
+ C->>D: step description
80
+ D-->>C: response
81
+ C-->>B: result
82
+ B-->>A: result
83
+ ```
84
+
85
+ Participants = real classes/components. Arrows = real method calls.
86
+ Steps below explain each arrow.
87
+ </flow-diagram>
88
+
89
+ <steps>
90
+ ## Step-by-Step
91
+
92
+ ### Step 1: [What happens]
93
+
94
+ **File:** `path/to/File.cs:ClassName.MethodName`
95
+
96
+ [1-2 sentences: what this step does and WHY. No filler.]
97
+
98
+ ```csharp
99
+ // Actual code from the codebase
100
+ public async Task MethodName(string param1, string param2)
101
+ {
102
+ var result = await _dependency.DoSomething(param1);
103
+ }
104
+ ```
105
+
106
+ `_dependency` — injected via constructor, does X.
107
+ `param1` — the Y received from Z.
108
+ [Only explain what's non-obvious. Skip what the code already says clearly.]
109
+
110
+ ---
111
+
112
+ ### Step 2: [What happens]
113
+
114
+ **File:** `path/to/AnotherFile.cs:ClassName.MethodName`
115
+
116
+ [What and why — terse.]
117
+
118
+ ```csharp
119
+ // Actual code...
120
+ ```
121
+
122
+ > **[Framework]: [Concept]**
123
+ >
124
+ > [Succinct explanation of the framework concept. What it is, what it does for us.
125
+ > No history, no alternatives, no "in general" — just what the reader needs to
126
+ > understand THIS code.]
127
+ >
128
+ > *Source: [link to official docs]*
129
+
130
+ ---
131
+
132
+ ### Step 3: [What happens]
133
+
134
+ ...continue for every step in the flow...
135
+ </steps>
136
+
137
+ <framework-concepts>
138
+ ## Framework Concepts Reference
139
+
140
+ Consolidated lookup for framework concepts explained inline above.
141
+
142
+ | Concept | Framework | What It Does | First Appearance |
143
+ |---------|-----------|-------------|------------------|
144
+ | `AIFunctionFactory.Create()` | MS Agent Framework | C# method -> LLM tool | [Step N](#step-n) |
145
+ | `ChatClientAgent` | MS Agent Framework | Wraps IChatClient with auto tool loop | [Step M](#step-m) |
146
+
147
+ Include ONLY if external frameworks/libraries are involved.
148
+ </framework-concepts>
149
+
150
+ <related-docs>
151
+ ## Related Documentation
152
+
153
+ - [System Doc](../systems/relevant-system.md) — terse reference
154
+ - [Guide](../guides/relevant-guide.md) — recipe for adding to this flow
155
+ - [Official Docs](../framework-docs/relevant-page.md) — framework docs
156
+ </related-docs>
157
+ </template>
158
+
159
+ <guidelines>
160
+
161
+ ### Density Over Prose
162
+ - **EXTREMELY SUCCINCT** — every word must add value. If a word does not add value, remove it.
163
+ - **NO FLUFF** — no introductions, no summaries of what the section will contain, no transitions
164
+ - Bullet points over paragraphs. Tables over bullet points when comparing.
165
+ - If you can say it in 3 words, don't use 10. Then try to say it in 2.
166
+ - **BUT: ALL needed information MUST be present.** Succinctness means cutting WORDS, not cutting INFORMATION. Every concept, every parameter, every non-obvious behavior must be explained — just in fewer words.
167
+
168
+ ### Complete but Dense Explanations
169
+ - Explain the WHY, not just the WHAT — "X because Y" not "X happens"
170
+ - After each code snippet: explain ONLY what's non-obvious. If the code says `price > 0`, don't write "checks that price is positive" — the code already says that. DO explain hidden behaviors, framework magic, non-obvious field origins.
171
+ - Use inline code references for fields/params: `` `_connectionId` — captured from `Context.ConnectionId` in AgentHub ``
172
+ - One-line explanations preferred. Multi-line only when genuinely complex.
173
+
174
+ ### Code Snippets (MANDATORY per step)
175
+ - ALWAYS from the actual codebase — verified by reading the file
176
+ - NEVER pseudocode, NEVER summaries, NEVER fabricated
177
+ - Use correct language tag: ```csharp, ```typescript, ```json
178
+ - **FOCUSED**: show ONLY the lines relevant to what the step is explaining. If a method has 50 lines but this step is about lines 10-15, show lines 10-15 with a `// ... (validation above)` or `// ... (setup omitted)` comment for context. The snippet serves the step's explanation, not the other way around.
179
+ - Short methods (under 20 lines) where the ENTIRE method is relevant: show entirely
180
+ - Long methods: show the relevant portion only. Use `// ...` comments to indicate omitted sections above/below.
181
+
182
+ ### Flow Diagram (MANDATORY)
183
+ - Every walkthrough MUST start with a mermaid sequenceDiagram
184
+ - Participants = real classes/components, not abstract concepts
185
+ - Arrows = real method calls, labeled with method name
186
+ - The diagram is the map; the steps are the guided tour
187
+
188
+ ### Framework Info Boxes (when applicable)
189
+ - Use markdown blockquotes (`>`) with `> **[Framework]: [Concept]**` header
190
+ - Explain as if the reader has NEVER used this framework — but in minimal words
191
+ - Place IMMEDIATELY after the first code snippet that uses the concept
192
+ - Each concept explained ONCE — do not repeat
193
+ - Link to official docs with `*Source: [link]*`
194
+ - Keep it dense: what it is, what it does for us, done. No history, no alternatives.
195
+
196
+ ### Emphasis Frameworks (when specified)
197
+ - When emphasis-frameworks are specified, framework info boxes become MANDATORY
198
+ for EVERY step that touches the emphasis framework — not just the first occurrence
199
+ - ALL code that interacts with the emphasis framework must be shown in full
200
+ - The Framework Concepts Reference table is MANDATORY (not optional)
201
+ - If the agent does not know the framework: use WebSearch or context7 MCP to research it
202
+ - If framework docs are provided (file paths or URLs): read them BEFORE writing any steps
203
+
204
+ ### Minimum Length
205
+ - At least 300 lines — length comes from code snippets and completeness, not from prose
206
+ - Complex flows (3+ frameworks, 10+ classes): 500-1000 lines
207
+ - Under 200 lines = not enough information, add more steps/explanations
208
+
209
+ ### Section Inclusion
210
+ - Title, File Map, Flow Diagram, Step-by-Step: ALWAYS required
211
+ - Framework Concepts Reference: MANDATORY if emphasis-frameworks specified; otherwise ONLY if external frameworks involved
212
+ - Related Documentation: ALWAYS required
213
+
214
+ ### What Does NOT Belong Here
215
+ - Terse bullet-point references (that's systems/)
216
+ - Structural pattern descriptions (that's patterns/)
217
+ - Procedural "how to add X" recipes (that's guides/)
218
+ - Architecture decision rationale (that's decisions/)
219
+ - Story numbers, sprint context, revision history
220
+ - Testing instructions or test code
221
+ - Frontend code in a backend walkthrough (or vice versa) — scope to ONE side
222
+ - Speculation about future changes — document what IS, not what might be
223
+ - Filler phrases: "Let's look at", "Now we'll examine", "As mentioned above", "It's worth noting"
224
+
225
+ </guidelines>
226
+
227
+ <evolution>
228
+
229
+ This is a LIVING document — updated when the flow it describes changes.
230
+
231
+ **Update triggers:**
232
+ - New step added to the flow
233
+ - Step removed from the flow
234
+ - Step logic changed significantly
235
+ - Framework/library upgraded, APIs changed
236
+ - Code snippets no longer match codebase
237
+ - New framework concept introduced
238
+
239
+ **NOT an update trigger:**
240
+ - Bug fixes that don't change flow structure
241
+ - Internal refactoring within a single step
242
+ - New feature using a DIFFERENT flow (create a new walkthrough)
243
+ - Style/formatting changes to the code
244
+
245
+ **Update rules:**
246
+ - UPDATE code snippets to match current codebase — stale snippets are worse than no docs
247
+ - ADD new steps when the flow gains a stage
248
+ - REMOVE steps that no longer exist
249
+ - UPDATE framework info boxes when APIs change
250
+ - UPDATE mermaid diagram to reflect current flow
251
+ - Document must always reflect CURRENT code state, not history
252
+
253
+ </evolution>
254
+
255
+ </walkthrough>