@fluentcommerce/ai-skills 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of @fluentcommerce/ai-skills might be problematic. Click here for more details.

Files changed (169) hide show
  1. package/README.md +866 -616
  2. package/bin/cli.mjs +2112 -1973
  3. package/content/cli/agents/fluent-cli/agent.json +149 -149
  4. package/content/cli/agents/fluent-cli.md +132 -132
  5. package/content/cli/skills/fluent-bootstrap/SKILL.md +214 -190
  6. package/content/cli/skills/fluent-cli-index/SKILL.md +1 -1
  7. package/content/cli/skills/fluent-cli-mcp-cicd/SKILL.md +117 -1
  8. package/content/cli/skills/fluent-cli-reference/SKILL.md +1040 -623
  9. package/content/cli/skills/fluent-cli-retailer/SKILL.md +27 -2
  10. package/content/cli/skills/fluent-cli-settings/SKILL.md +21 -1
  11. package/content/cli/skills/fluent-connect/SKILL.md +937 -886
  12. package/content/cli/skills/fluent-module-deploy/SKILL.md +181 -17
  13. package/content/cli/skills/fluent-profile/SKILL.md +73 -0
  14. package/content/cli/skills/fluent-workflow/SKILL.md +360 -310
  15. package/content/dev/agents/fluent-backend-dev/AGENT.md +58 -0
  16. package/content/dev/agents/fluent-backend-dev/agent.json +69 -0
  17. package/content/dev/agents/fluent-backend-dev.md +287 -0
  18. package/content/dev/agents/fluent-dev/AGENT.md +98 -76
  19. package/content/dev/agents/fluent-dev/agent.json +24 -2
  20. package/content/dev/agents/fluent-dev.md +194 -524
  21. package/content/dev/agents/fluent-frontend-dev/AGENT.md +63 -0
  22. package/content/dev/agents/fluent-frontend-dev/agent.json +52 -0
  23. package/content/dev/agents/fluent-frontend-dev.md +323 -0
  24. package/content/dev/skills/fluent-archive/SKILL.md +234 -0
  25. package/content/dev/skills/fluent-build/SKILL.md +312 -170
  26. package/content/dev/skills/fluent-connection-analysis/SKILL.md +422 -386
  27. package/content/dev/skills/fluent-custom-code/SKILL.md +15 -9
  28. package/content/dev/skills/fluent-data-module-scaffold/SKILL.md +731 -0
  29. package/content/dev/skills/fluent-e2e-test/SKILL.md +501 -394
  30. package/content/dev/skills/fluent-event-api/SKILL.md +962 -945
  31. package/content/dev/skills/fluent-feature-explain/SKILL.md +680 -603
  32. package/content/dev/skills/fluent-feature-plan/PLAN_TEMPLATE.md +40 -11
  33. package/content/dev/skills/fluent-feature-plan/SKILL.md +478 -221
  34. package/content/dev/skills/fluent-feature-status/SKILL.md +335 -0
  35. package/content/dev/skills/fluent-feedback/SKILL.md +221 -0
  36. package/content/dev/skills/fluent-implementation-map/SKILL.md +644 -0
  37. package/content/dev/skills/fluent-job-batch/SKILL.md +10 -0
  38. package/content/dev/skills/fluent-module-scaffold/SKILL.md +134 -3
  39. package/content/dev/skills/fluent-module-validate/SKILL.md +778 -775
  40. package/content/dev/skills/fluent-mystique-analyze/SKILL.md +817 -0
  41. package/content/dev/skills/fluent-mystique-builder/COMPONENT_TEMPLATE.md +81 -0
  42. package/content/dev/skills/fluent-mystique-builder/README.md +63 -0
  43. package/content/dev/skills/fluent-mystique-builder/SKILL.md +1294 -0
  44. package/content/dev/skills/fluent-mystique-builder/components/INDEX.md +92 -0
  45. package/content/dev/skills/fluent-mystique-builder/components/fc.accordion.md +48 -0
  46. package/content/dev/skills/fluent-mystique-builder/components/fc.action.field.fulfilmentpack.md +20 -0
  47. package/content/dev/skills/fluent-mystique-builder/components/fc.action.field.multiparcel.md +21 -0
  48. package/content/dev/skills/fluent-mystique-builder/components/fc.action.field.returnitems.md +21 -0
  49. package/content/dev/skills/fluent-mystique-builder/components/fc.action.field.wavepick.md +21 -0
  50. package/content/dev/skills/fluent-mystique-builder/components/fc.action.inline.md +24 -0
  51. package/content/dev/skills/fluent-mystique-builder/components/fc.activity.entity.md +25 -0
  52. package/content/dev/skills/fluent-mystique-builder/components/fc.analytics.viz.md +20 -0
  53. package/content/dev/skills/fluent-mystique-builder/components/fc.attribute.column.md +111 -0
  54. package/content/dev/skills/fluent-mystique-builder/components/fc.attribute.json.md +20 -0
  55. package/content/dev/skills/fluent-mystique-builder/components/fc.attribute.jsoneditor.md +54 -0
  56. package/content/dev/skills/fluent-mystique-builder/components/fc.attribute.locationId.md +51 -0
  57. package/content/dev/skills/fluent-mystique-builder/components/fc.attribute.retailerId.md +52 -0
  58. package/content/dev/skills/fluent-mystique-builder/components/fc.button.bar.md +57 -0
  59. package/content/dev/skills/fluent-mystique-builder/components/fc.button.print.download.md +53 -0
  60. package/content/dev/skills/fluent-mystique-builder/components/fc.button.print.inline.compatibility.md +60 -0
  61. package/content/dev/skills/fluent-mystique-builder/components/fc.button.print.inline.md +53 -0
  62. package/content/dev/skills/fluent-mystique-builder/components/fc.button.print.md +24 -0
  63. package/content/dev/skills/fluent-mystique-builder/components/fc.button.print.pick.md +61 -0
  64. package/content/dev/skills/fluent-mystique-builder/components/fc.buttons.add.reject.md +20 -0
  65. package/content/dev/skills/fluent-mystique-builder/components/fc.card.attribute.md +73 -0
  66. package/content/dev/skills/fluent-mystique-builder/components/fc.card.attributes.grid.md +40 -0
  67. package/content/dev/skills/fluent-mystique-builder/components/fc.card.image.md +37 -0
  68. package/content/dev/skills/fluent-mystique-builder/components/fc.card.map.point.md +24 -0
  69. package/content/dev/skills/fluent-mystique-builder/components/fc.card.multi.md +79 -0
  70. package/content/dev/skills/fluent-mystique-builder/components/fc.card.product.md +27 -0
  71. package/content/dev/skills/fluent-mystique-builder/components/fc.chart.area.md +34 -0
  72. package/content/dev/skills/fluent-mystique-builder/components/fc.chart.area.wrapper.feed.md +98 -0
  73. package/content/dev/skills/fluent-mystique-builder/components/fc.chart.bar.md +52 -0
  74. package/content/dev/skills/fluent-mystique-builder/components/fc.chart.bar.wrapper.source.md +104 -0
  75. package/content/dev/skills/fluent-mystique-builder/components/fc.chart.gauge.md +28 -0
  76. package/content/dev/skills/fluent-mystique-builder/components/fc.chart.gauge.wrapper.threshold.md +118 -0
  77. package/content/dev/skills/fluent-mystique-builder/components/fc.chart.line.md +32 -0
  78. package/content/dev/skills/fluent-mystique-builder/components/fc.conditional.md +62 -0
  79. package/content/dev/skills/fluent-mystique-builder/components/fc.dashboard.threshold.md +65 -0
  80. package/content/dev/skills/fluent-mystique-builder/components/fc.daterange.wrapper.forwarder.md +56 -0
  81. package/content/dev/skills/fluent-mystique-builder/components/fc.drawer.button.md +21 -0
  82. package/content/dev/skills/fluent-mystique-builder/components/fc.event.detail.md +20 -0
  83. package/content/dev/skills/fluent-mystique-builder/components/fc.events.search.md +21 -0
  84. package/content/dev/skills/fluent-mystique-builder/components/fc.field.daterange.md +83 -0
  85. package/content/dev/skills/fluent-mystique-builder/components/fc.field.filterComplex.md +106 -0
  86. package/content/dev/skills/fluent-mystique-builder/components/fc.field.intrange.md +82 -0
  87. package/content/dev/skills/fluent-mystique-builder/components/fc.field.multistring.md +50 -0
  88. package/content/dev/skills/fluent-mystique-builder/components/fc.filterPanel.md +53 -0
  89. package/content/dev/skills/fluent-mystique-builder/components/fc.json.editor.md +22 -0
  90. package/content/dev/skills/fluent-mystique-builder/components/fc.json.viewer.md +21 -0
  91. package/content/dev/skills/fluent-mystique-builder/components/fc.list.customAction.md +79 -0
  92. package/content/dev/skills/fluent-mystique-builder/components/fc.list.md +116 -0
  93. package/content/dev/skills/fluent-mystique-builder/components/fc.list.wrapper.bppmetrics.md +69 -0
  94. package/content/dev/skills/fluent-mystique-builder/components/fc.list.wrapper.feed.md +65 -0
  95. package/content/dev/skills/fluent-mystique-builder/components/fc.list.wrapper.source.md +64 -0
  96. package/content/dev/skills/fluent-mystique-builder/components/fc.modal.button.addItem.md +60 -0
  97. package/content/dev/skills/fluent-mystique-builder/components/fc.modal.button.md +21 -0
  98. package/content/dev/skills/fluent-mystique-builder/components/fc.mutation.inline.md +88 -0
  99. package/content/dev/skills/fluent-mystique-builder/components/fc.mystique.collapsible.attributes.md +83 -0
  100. package/content/dev/skills/fluent-mystique-builder/components/fc.mystique.collapsible.text.md +33 -0
  101. package/content/dev/skills/fluent-mystique-builder/components/fc.mystique.link.md +30 -0
  102. package/content/dev/skills/fluent-mystique-builder/components/fc.order.itemDetails.md +20 -0
  103. package/content/dev/skills/fluent-mystique-builder/components/fc.order.shipmentDetails.md +20 -0
  104. package/content/dev/skills/fluent-mystique-builder/components/fc.page.filter.select.md +87 -0
  105. package/content/dev/skills/fluent-mystique-builder/components/fc.page.md +64 -0
  106. package/content/dev/skills/fluent-mystique-builder/components/fc.page.refresh.md +48 -0
  107. package/content/dev/skills/fluent-mystique-builder/components/fc.page.section.column.md +71 -0
  108. package/content/dev/skills/fluent-mystique-builder/components/fc.page.section.header.md +61 -0
  109. package/content/dev/skills/fluent-mystique-builder/components/fc.page.section.md +59 -0
  110. package/content/dev/skills/fluent-mystique-builder/components/fc.page.wizard.md +45 -0
  111. package/content/dev/skills/fluent-mystique-builder/components/fc.page.wizard.summary.md +56 -0
  112. package/content/dev/skills/fluent-mystique-builder/components/fc.progress.circular.md +20 -0
  113. package/content/dev/skills/fluent-mystique-builder/components/fc.provider.graphql.md +71 -0
  114. package/content/dev/skills/fluent-mystique-builder/components/fc.quantity.list.md +87 -0
  115. package/content/dev/skills/fluent-mystique-builder/components/fc.repeater.md +56 -0
  116. package/content/dev/skills/fluent-mystique-builder/components/fc.reports.ipuipc.md +54 -0
  117. package/content/dev/skills/fluent-mystique-builder/components/fc.return.rowExpansion.md +19 -0
  118. package/content/dev/skills/fluent-mystique-builder/components/fc.scanner.barcode.md +21 -0
  119. package/content/dev/skills/fluent-mystique-builder/components/fc.scanner.barcodeFilter.md +72 -0
  120. package/content/dev/skills/fluent-mystique-builder/components/fc.scanner.camera.md +20 -0
  121. package/content/dev/skills/fluent-mystique-builder/components/fc.settingForm.md +64 -0
  122. package/content/dev/skills/fluent-mystique-builder/components/fc.sourcing.profile.drawer.button.md +19 -0
  123. package/content/dev/skills/fluent-mystique-builder/components/fc.sourcing.profile.modal.button.md +64 -0
  124. package/content/dev/skills/fluent-mystique-builder/components/fc.sourcing.strategy.modal.button.md +20 -0
  125. package/content/dev/skills/fluent-mystique-builder/components/fc.stepper.md +20 -0
  126. package/content/dev/skills/fluent-mystique-builder/components/fc.tab.content.md +56 -0
  127. package/content/dev/skills/fluent-mystique-builder/components/fc.tabs.card.md +64 -0
  128. package/content/dev/skills/fluent-mystique-builder/components/fc.tabs.md +69 -0
  129. package/content/dev/skills/fluent-mystique-builder/components/fc.tile.metric.md +73 -0
  130. package/content/dev/skills/fluent-mystique-builder/components/fc.workflow.provider.md +77 -0
  131. package/content/dev/skills/fluent-mystique-builder/validate-docs.ps1 +260 -0
  132. package/content/dev/skills/fluent-mystique-scaffold/SKILL.md +1830 -0
  133. package/content/dev/skills/fluent-mystique-validate/SKILL.md +646 -0
  134. package/content/dev/skills/fluent-pre-deploy-check/SKILL.md +1144 -1090
  135. package/content/dev/skills/fluent-retailer-config/SKILL.md +1162 -1120
  136. package/content/dev/skills/fluent-rollback/SKILL.md +387 -0
  137. package/content/dev/skills/fluent-rule-scaffold/SKILL.md +515 -394
  138. package/content/dev/skills/fluent-scope-decompose/SKILL.md +1123 -1021
  139. package/content/dev/skills/fluent-session-audit-export/SKILL.md +880 -632
  140. package/content/dev/skills/fluent-session-summary/SKILL.md +320 -195
  141. package/content/dev/skills/fluent-settings/SKILL.md +151 -2
  142. package/content/dev/skills/fluent-source-onboard/SKILL.md +23 -4
  143. package/content/dev/skills/fluent-sourcing/SKILL.md +14 -0
  144. package/content/dev/skills/fluent-system-monitoring/SKILL.md +771 -767
  145. package/content/dev/skills/fluent-test-data/SKILL.md +514 -513
  146. package/content/dev/skills/fluent-trace/SKILL.md +1169 -1143
  147. package/content/dev/skills/fluent-transition-api/SKILL.md +364 -346
  148. package/content/dev/skills/fluent-use-case-discover/SKILL.md +593 -471
  149. package/content/dev/skills/fluent-use-case-discover/SPEC_TEMPLATE.md +22 -1
  150. package/content/dev/skills/fluent-version-manage/SKILL.md +44 -3
  151. package/content/dev/skills/fluent-workflow-analyzer/SKILL.md +995 -959
  152. package/content/dev/skills/fluent-workflow-builder/SKILL.md +668 -326
  153. package/content/dev/skills/fluent-workflow-deploy/SKILL.md +480 -0
  154. package/content/dev/skills/fluent-workspace-tree/SKILL.md +281 -0
  155. package/content/mcp-extn/agents/fluent-mcp.md +133 -132
  156. package/content/mcp-extn/skills/fluent-mcp-tools/SKILL.md +812 -800
  157. package/content/mcp-official/agents/fluent-mcp-core.md +91 -91
  158. package/content/mcp-official/skills/fluent-mcp-core/SKILL.md +94 -94
  159. package/content/rfl/skills/fluent-rfl-assess/SKILL.md +172 -172
  160. package/docs/CAPABILITY_MAP.md +106 -73
  161. package/docs/DEPLOYMENT_PROMOTION_RUNBOOK.md +218 -0
  162. package/docs/DESIGN-implementation-map.md +698 -0
  163. package/docs/DEV_WORKFLOW.md +814 -802
  164. package/docs/FLOW_RUN.md +142 -142
  165. package/docs/GETTING_STARTED.md +427 -0
  166. package/docs/USE_CASES.md +906 -50
  167. package/metadata.json +184 -155
  168. package/package.json +7 -2
  169. package/docs/USE_CASES.pdf +0 -0
@@ -0,0 +1,698 @@
1
+ # Design: `/fluent-implementation-map` Skill
2
+
3
+ **Status:** Implemented (2026-02-25)
4
+ **Implementation:** `content/dev/skills/fluent-implementation-map/SKILL.md`
5
+ **Author:** Auto-generated design document
6
+ **Date:** 2026-02-25
7
+
8
+ > **Note:** This document contains design rationale, architectural context, and decision trail.
9
+ > For usage instructions, see the SKILL.md. For the E2E test run, see `accounts/SAGIRISH/analysis/implementation-map/`.
10
+
11
+ ## Problem
12
+
13
+ When onboarding to an existing Fluent Commerce account — or auditing one you haven't touched in months — there is no single command that answers:
14
+
15
+ > "What has been built here, how does it all fit together, and what are the end-to-end flows?"
16
+
17
+ Today you must manually invoke 4-6 skills in sequence, stitch the outputs together in your head, and hope you didn't miss a cross-entity handoff or an orphaned customisation. This is the most common first question for any new implementation engagement.
18
+
19
+ ## What Exists Today
20
+
21
+ | Skill | Scope | Limitation |
22
+ |-------|-------|------------|
23
+ | `/fluent-feature-explain` | Single named feature → Architecture Document | You must already know the feature name and boundaries |
24
+ | `/fluent-workflow-analyzer` | Single workflow JSON → structure, orphans, triggers | Per-workflow; no cross-workflow or cross-entity view |
25
+ | `/fluent-connection-analysis` | Cross-workflow topology map, static-vs-dynamic diff | Maps connections but doesn't identify logical features |
26
+ | `/fluent-custom-code` | Source code analysis under SOURCE/ | Per-module; no link back to which business flow uses it |
27
+ | `/fluent-workspace-tree` | Directory structure + artifact counts | Structural, not semantic |
28
+ | `/fluent-feature-status` | Dashboard of existing feature directories | Only shows features that have already been decomposed |
29
+ | `/fluent-scope-decompose` | Breaks a scope doc into tasks | Works from documents, not from a live implementation |
30
+
31
+ **The gap:** No skill starts from "I know nothing about this account" and produces a complete feature-level decomposition with end-to-end flows.
32
+
33
+ ## Proposed Skill: `/fluent-implementation-map`
34
+
35
+ ### One-liner
36
+
37
+ Reverse-engineer an entire Fluent Commerce implementation into a feature inventory with end-to-end flow diagrams, cross-feature dependencies, and gap analysis.
38
+
39
+ ### Invocation
40
+
41
+ ```
42
+ /fluent-implementation-map --profile SAGIRISH --retailer "Module Test"
43
+ /fluent-implementation-map --profile HMDEV --retailer HM_TEST --depth summary
44
+ /fluent-implementation-map --profile HMDEV --retailer HM_TEST --depth detailed
45
+ /fluent-implementation-map --profile HMDEV --retailer HM_TEST --focus ORDER
46
+ ```
47
+
48
+ ### Parameters
49
+
50
+ | Parameter | Required | Default | Description |
51
+ |-----------|----------|---------|-------------|
52
+ | `--profile` | Yes | Active CLI profile | Fluent CLI profile |
53
+ | `--retailer` | Yes | Profile default | Target retailer ref |
54
+ | `--depth` | No | `summary` | `summary` = feature list + high-level flows; `detailed` = full per-feature architecture |
55
+ | `--focus` | No | All | Filter to specific entity type (ORDER, FULFILMENT, ARTICLE, etc.) |
56
+ | `--include-ootb` | No | `false` | Include OOTB-only flows (no customisations) in the map |
57
+ | `--create-stubs` | No | `false` | Create `features/<slug>/status.json` for each discovered feature, bridging discovery into the feature lifecycle |
58
+ | `--include-runtime` | No | `false` | Collect runtime evidence per feature via `event.flowInspect` and `entity.get` (significantly slower) |
59
+
60
+ ### Output
61
+
62
+ Written to: `accounts/<PROFILE>/analysis/implementation-map/`
63
+
64
+ ```
65
+ accounts/<PROFILE>/analysis/implementation-map/
66
+ ├── implementation-map.md # Master document: feature inventory + cross-feature map
67
+ ├── features/ # Per-feature summaries (auto-generated, not lifecycle-managed)
68
+ │ ├── home-delivery-order.md
69
+ │ ├── click-collect-order.md
70
+ │ ├── fulfilment-hd.md
71
+ │ ├── sourcing-allocation.md
72
+ │ └── ...
73
+ ├── diagrams/ # Mermaid source files
74
+ │ ├── feature-dependency.mmd # Cross-feature dependency graph
75
+ │ ├── entity-flow.mmd # Entity lifecycle overview
76
+ │ └── <feature>-flow.mmd # Per-feature flow diagram
77
+ ├── gaps.md # Orphaned rules, unused settings, dead-end states
78
+ └── inventory.json # Machine-readable: all workflows, rules, settings, feature clusters
79
+ ```
80
+
81
+ **Important:** These are analysis artifacts, NOT feature lifecycle artifacts. They live under `analysis/`, not `features/`. If the user wants to turn a discovered feature into a lifecycle-managed feature, they run `/fluent-use-case-discover` or `/fluent-feature-explain` to create `features/<slug>/`.
82
+
83
+ ---
84
+
85
+ ## How It Works: 5 Phases
86
+
87
+ ### Phase 1: Inventory Collection (read-only, parallelisable)
88
+
89
+ Collect all raw data from the environment. This phase invokes existing skills and MCP tools.
90
+
91
+ #### 1a. Workflows
92
+
93
+ ```
94
+ Invoke: fluent workflow list -p <PROFILE> -r <RETAILER>
95
+ Invoke: fluent workflow download (if not already cached locally)
96
+ Read: accounts/<PROFILE>/workflows/<RETAILER>/*.json
97
+ ```
98
+
99
+ Produces: List of all workflow names, entity types, subtypes.
100
+
101
+ **Entity type extraction:** Parse workflow JSON `name` field. Convention: `<ENTITY_TYPE>::<SUBTYPE>` (e.g., `ORDER::HD`, `FULFILMENT::CC`, `ARTICLE::DEFAULT`). If no `::`, treat as entity type with DEFAULT subtype.
102
+
103
+ #### 1b. Custom Rules (deployed)
104
+
105
+ ```
106
+ Invoke: MCP plugin.list (live environment)
107
+ ```
108
+
109
+ Produces: List of all deployed rules with module, version, and rule key.
110
+
111
+ #### 1c. Custom Rules (source code)
112
+
113
+ ```
114
+ Scan: accounts/<PROFILE>/SOURCE/*/resources/module.json
115
+ Scan: accounts/<PROFILE>/SOURCE/*/src/main/java/**/*.java
116
+ ```
117
+
118
+ Produces: Per-rule metadata (class name, annotations, entity context, referenced settings).
119
+
120
+ #### 1d. Settings
121
+
122
+ ```
123
+ Invoke: MCP graphql.query — query settings by context (RETAILER, ACCOUNT)
124
+ OR
125
+ Invoke: fluent setting list -p <PROFILE> -r <RETAILER> -q '*'
126
+ ```
127
+
128
+ Produces: All settings with their keys, values, and contexts.
129
+
130
+ #### 1e. Entity Type Catalogue
131
+
132
+ ```
133
+ Invoke: MCP graphql.query — list entity types and subtypes in use
134
+ Suggested query: orderTypes, fulfilmentTypes, articleTypes, etc.
135
+ ```
136
+
137
+ Produces: Which entity types and subtypes are configured.
138
+
139
+ #### 1f. Webhook / Integration Inventory
140
+
141
+ ```
142
+ Grep: Workflow JSONs for SendWebhook rule invocations
143
+ Grep: Settings for webhook-related keys (*.url, *.endpoint, webhook.*)
144
+ ```
145
+
146
+ Produces: Outbound integration points.
147
+
148
+ ### Phase 2: Feature Identification (analytical, no external calls)
149
+
150
+ This is the core intelligence of the skill. It groups raw inventory into logical features.
151
+
152
+ #### 2a. Primary Grouping: Entity Type + Subtype
153
+
154
+ Each workflow defines a scope of entity management. Group workflows by entity type:
155
+
156
+ ```
157
+ ORDER workflows: ORDER::HD, ORDER::CC, ORDER::MULTI
158
+ FULFILMENT workflows: FULFILMENT::HD, FULFILMENT::CC
159
+ ARTICLE workflows: ARTICLE::DEFAULT
160
+ WAVE workflows: WAVE::DEFAULT
161
+ ```
162
+
163
+ #### 2b. Feature Boundary Heuristics
164
+
165
+ A "feature" is a user-facing business capability that typically spans one or more entity types. Heuristics for identifying feature boundaries:
166
+
167
+ 1. **Subtype alignment**: An ORDER subtype (e.g., `HD`) usually pairs with a FULFILMENT subtype (e.g., `HD`) → group as one feature "Home Delivery"
168
+ 2. **Cross-entity events**: If ORDER::HD sends events that FULFILMENT::HD workflows consume → same feature
169
+ 3. **Shared custom rules**: If a custom rule is referenced by both ORDER::HD and FULFILMENT::HD workflows → same feature
170
+ 4. **Naming convention**: Subtypes with the same suffix (HD, CC, MULTI) suggest feature families
171
+ 5. **Standalone entity types**: WAVE, ARTICLE often serve infrastructure rather than a single feature — mark as "shared infrastructure"
172
+
173
+ #### 2b-ii. Confidence Levels
174
+
175
+ Each feature cluster carries a confidence indicator:
176
+
177
+ | Level | Meaning | Trigger |
178
+ |-------|---------|---------|
179
+ | `HIGH` | Subtype family match + event chain confirmed | Heuristics 1+2 agree |
180
+ | `MEDIUM` | Subtype family match only (no event chain confirmation) | Heuristic 1 only |
181
+ | `INFERRED` | Naming/rule pattern analysis | Heuristic 3 fallback |
182
+ | `UNCLUSTERED` | Could not assign to any feature | No heuristic matched |
183
+
184
+ #### 2c. Feature Classification
185
+
186
+ | Category | Definition | Example |
187
+ |----------|-----------|---------|
188
+ | **Business Feature** | End-to-end customer-facing flow spanning ORDER→FULFILMENT | Home Delivery, Click & Collect |
189
+ | **Processing Feature** | Backend automation within a single entity type | Wave management, Article pick/pack |
190
+ | **Infrastructure** | Shared services consumed by multiple features | Sourcing, Inventory, Settings |
191
+ | **Integration** | Outbound/inbound data flows to external systems | Webhook delivery, Batch ingestion |
192
+
193
+ #### 2d. Customisation Depth Scoring
194
+
195
+ For each identified feature, score the customisation depth:
196
+
197
+ | Score | Meaning | Criteria |
198
+ |-------|---------|----------|
199
+ | 0 — OOTB | No customisations | All rules are OOTB, no custom settings |
200
+ | 1 — Configured | OOTB rules with custom settings/props | OOTB rules but custom prop values or settings |
201
+ | 2 — Extended | Mix of OOTB and custom rules | Some custom rules alongside OOTB |
202
+ | 3 — Custom | Mostly custom rules | >50% of rules in the workflow are custom |
203
+ | 4 — Bespoke | Entirely custom implementation | All rules are custom, non-standard entity usage |
204
+
205
+ ### Phase 3: Flow Mapping (per feature)
206
+
207
+ For each identified feature, trace the complete end-to-end flow.
208
+
209
+ #### 3a. Entry Point Identification
210
+
211
+ - What triggers this feature? (User action, scheduled event, inbound webhook, batch ingestion)
212
+ - What entity is created/modified first?
213
+ - What status does the entity start in?
214
+
215
+ #### 3b. Workflow Path Tracing
216
+
217
+ For each workflow in the feature:
218
+
219
+ ```
220
+ For each ruleset in workflow:
221
+ - Trigger: status + event name
222
+ - Rules: ordered list of rule keys (mark OOTB vs CUSTOM)
223
+ - Outcomes: status transitions (success path, error path)
224
+ - Cross-entity handoffs: events sent to other entity types
225
+ - Settings consumed: rule prop references to settings keys
226
+ - Webhooks fired: SendWebhook invocations with target URLs
227
+ ```
228
+
229
+ #### 3c. Cross-Entity Flow Stitching
230
+
231
+ Follow the chain across entity types:
232
+
233
+ ```
234
+ ORDER::HD (BOOKED)
235
+ → CreateFulfilment rule
236
+ → FULFILMENT::HD created (CREATED)
237
+ → AllocateArticles rule
238
+ → ARTICLE created (CREATED)
239
+ → ...
240
+ ```
241
+
242
+ This requires matching:
243
+ - `SendEvent` rule outputs in workflow A → `eventName` triggers in workflow B
244
+ - `CreateEntity` rule invocations → entity type + subtype + initial status → matching workflow
245
+
246
+ #### 3d. Mermaid Diagram Generation
247
+
248
+ For each feature, generate:
249
+
250
+ **Sequence diagram** (entity lifecycle):
251
+ ```mermaid
252
+ sequenceDiagram
253
+ participant OMS as ORDER::HD
254
+ participant FUL as FULFILMENT::HD
255
+ participant ART as ARTICLE
256
+
257
+ OMS->>OMS: CREATED → BOOKED (SourceOrder)
258
+ OMS->>FUL: CreateFulfilment
259
+ FUL->>ART: AllocateArticles
260
+ ART->>ART: CREATED → ACTIVE (AssignLocation)
261
+ ART-->>FUL: ArticleComplete event
262
+ FUL->>OMS: FulfilmentComplete event
263
+ ```
264
+
265
+ **State diagram** (per entity):
266
+ ```mermaid
267
+ stateDiagram-v2
268
+ [*] --> CREATED
269
+ CREATED --> BOOKED: SourceOrder
270
+ BOOKED --> FULFILLED: AllItemsComplete
271
+ FULFILLED --> COMPLETE: CompleteOrder
272
+ ```
273
+
274
+ ### Phase 4: Gap Analysis
275
+
276
+ #### 4a. Orphaned Rules
277
+ Rules registered in `module.json` or deployed via `plugin.list` but NOT referenced in any workflow ruleset.
278
+
279
+ ```
280
+ Invoke (internally): /fluent-workflow-analyzer orphan detection logic
281
+ Cross-reference: plugin.list output vs. all workflow rule references
282
+ ```
283
+
284
+ #### 4b. Unused Settings
285
+ Settings that exist in the environment but are not referenced by any rule (via prop values or direct setting reads).
286
+
287
+ ```
288
+ Cross-reference: settings list vs. rule prop definitions in workflow JSONs
289
+ ```
290
+
291
+ #### 4c. Dead-End States
292
+ Workflow states with no outbound transitions (not marked as terminal/final).
293
+
294
+ ```
295
+ Invoke (internally): /fluent-workflow-analyzer state graph analysis
296
+ ```
297
+
298
+ #### 4d. Missing Cross-Entity Handlers
299
+ Events sent by one workflow that no other workflow has a trigger for.
300
+
301
+ ```
302
+ Invoke (internally): /fluent-connection-analysis cross-entity event matching
303
+ ```
304
+
305
+ #### 4e. Undocumented Customisations
306
+ Custom rules with no Javadoc, no test class, or no matching feature documentation.
307
+
308
+ ```
309
+ Cross-reference: SOURCE/ Java files vs. features/ directory for documentation
310
+ ```
311
+
312
+ ### Phase 5: Report Generation
313
+
314
+ #### Master Document (`implementation-map.md`)
315
+
316
+ ```markdown
317
+ # Implementation Map: <RETAILER> on <PROFILE>
318
+
319
+ Generated: <timestamp>
320
+ Environment: <base-url>
321
+
322
+ ## Executive Summary
323
+
324
+ | Metric | Count |
325
+ |--------|-------|
326
+ | Workflows | 18 |
327
+ | Custom rules (deployed) | 45 |
328
+ | Custom rules (source) | 52 |
329
+ | Settings | 120 |
330
+ | Identified features | 8 |
331
+ | Shared infrastructure | 3 |
332
+ | Integrations | 5 |
333
+ | Customisation depth (avg) | 2.4 / 4 |
334
+
335
+ ## Feature Inventory
336
+
337
+ | # | Feature | Category | Entity Types | Customisation | Workflows | Custom Rules | Key Integration |
338
+ |---|---------|----------|-------------|---------------|-----------|-------------|-----------------|
339
+ | 1 | Home Delivery | Business | ORDER::HD, FULFILMENT::HD, ARTICLE | 3 — Custom | 3 | 12 | Webhook: shipping |
340
+ | 2 | Click & Collect | Business | ORDER::CC, FULFILMENT::CC | 2 — Extended | 2 | 5 | — |
341
+ | 3 | Sourcing | Infrastructure | — (invoked within ORDER flows) | 3 — Custom | 0 | 3 | — |
342
+ | ... | | | | | | | |
343
+
344
+ ## Cross-Feature Dependency Map
345
+
346
+ [Mermaid diagram: which features depend on which]
347
+
348
+ ## Per-Feature Summaries
349
+
350
+ ### 1. Home Delivery
351
+
352
+ **Entry point:** Order created via API with type=HD
353
+ **End state:** ORDER::HD reaches COMPLETE
354
+ **Flow:** ORDER::HD → FULFILMENT::HD → ARTICLE → (pick/pack/ship) → COMPLETE
355
+ **Custom rules:** CreateFulfilmentFromSourcingLocation, CalculateShippingCost, ...
356
+ **Settings:** 15 (webhook.shipping.url, fulfilment.hd.auto-complete, ...)
357
+ **Integrations:** Outbound webhook to shipping provider
358
+
359
+ [Link to detailed flow: features/home-delivery-order.md]
360
+
361
+ ### 2. Click & Collect
362
+ ...
363
+
364
+ ## Gaps & Risks
365
+
366
+ | # | Type | Description | Severity | Recommendation |
367
+ |---|------|-------------|----------|----------------|
368
+ | 1 | Orphaned Rule | `LegacyDiscountRule` deployed but not in any workflow | LOW | Remove or document |
369
+ | 2 | Dead-End State | FULFILMENT::HD `ON_HOLD` has no outbound transition | MEDIUM | Add manual release path |
370
+ | 3 | Missing Handler | ORDER::HD sends `FulfilmentException` but no workflow handles it | HIGH | Add error handling ruleset |
371
+ ```
372
+
373
+ ---
374
+
375
+ ## Skills Invoked (Orchestration Map)
376
+
377
+ The implementation-map skill is an **orchestrator** that invokes existing skills and MCP tools. It should NOT duplicate their logic.
378
+
379
+ ### Required Invocations
380
+
381
+ | Phase | Tool/Skill | Purpose | Parallelisable? |
382
+ |-------|-----------|---------|-----------------|
383
+ | 1a | `fluent workflow list` (CLI) | Enumerate workflows | Yes |
384
+ | 1a | `fluent workflow download` (CLI) | Cache workflow JSONs locally | Yes (after list) |
385
+ | 1b | `plugin.list` (MCP) | Deployed rule inventory | Yes |
386
+ | 1c | Glob + Read (local) | Source code analysis | Yes |
387
+ | 1d | `graphql.query` (MCP) or CLI settings | Settings inventory | Yes |
388
+ | 1e | `graphql.query` (MCP) | Entity type catalogue | Yes |
389
+ | 1f | Grep (local) | Webhook/integration extraction from workflow JSONs | Yes |
390
+ | 2 | Internal logic | Feature identification (no external calls) | N/A |
391
+ | 3 | Internal logic + `/fluent-connection-analysis` patterns | Flow tracing | Per-feature |
392
+ | 4a | `/fluent-workflow-analyzer` logic | Orphan detection | Yes |
393
+ | 4b | Cross-reference (internal) | Unused settings | Yes |
394
+ | 4c | `/fluent-workflow-analyzer` logic | Dead-end states | Yes |
395
+ | 4d | `/fluent-connection-analysis` logic | Missing handlers | Yes |
396
+ | 5 | Write (local) | Report generation | Sequential |
397
+
398
+ ### Optional Follow-up Invocations
399
+
400
+ After the map is generated, the user can drill deeper:
401
+
402
+ | User Request | Skill to Invoke |
403
+ |-------------|-----------------|
404
+ | "Explain feature X in detail" | `/fluent-feature-explain --feature <slug>` |
405
+ | "I want to extend feature X" | `/fluent-use-case-discover` (with `extends: <slug>`) |
406
+ | "Turn this into lifecycle features" | `/fluent-scope-decompose` (from the feature inventory) |
407
+ | "What's the full connection map?" | `/fluent-connection-analysis --validate` |
408
+ | "Analyze the custom code" | `/fluent-custom-code` |
409
+ | "Check if this is production-ready" | `/fluent-rfl-assess` |
410
+
411
+ ---
412
+
413
+ ## Implementation Considerations
414
+
415
+ ### Skill Frontmatter
416
+
417
+ ```yaml
418
+ ---
419
+ name: fluent-implementation-map
420
+ description: Reverse-engineer an entire Fluent Commerce implementation into a feature inventory with end-to-end flows, cross-feature dependencies, and gap analysis. Triggers on "implementation map", "what's been built", "analyze implementation", "reverse engineer account", "feature inventory", "end to end flows", "map this account".
421
+ user-invocable: true
422
+ allowed-tools: Bash, Read, Write, Edit, Glob, Grep
423
+ argument-hint: --profile PROFILE --retailer RETAILER [--depth summary|detailed] [--focus ENTITY_TYPE]
424
+ ---
425
+ ```
426
+
427
+ ### Planning Gate
428
+
429
+ **No.** This is a read-only analysis skill. It writes analysis artifacts to `analysis/implementation-map/` but does not modify workflows, settings, or entities. Same category as `/fluent-feature-explain` and `/fluent-workflow-analyzer`.
430
+
431
+ ### MCP Tool Dependencies
432
+
433
+ The skill needs MCP tools to be available for full capability:
434
+
435
+ | MCP Tool | Used For | Graceful Degradation |
436
+ |----------|----------|---------------------|
437
+ | `plugin.list` | Deployed rule inventory | Fall back to SOURCE/ scan only |
438
+ | `graphql.query` | Settings, entity types | Fall back to CLI commands or skip |
439
+ | `workflow.transitions` | Live workflow versions | Fall back to local JSON only |
440
+
441
+ If MCP is unavailable, the skill should still work from local files (downloaded workflows + SOURCE/) with reduced coverage. Report which phases were skipped.
442
+
443
+ ### Size & Complexity
444
+
445
+ This is one of the larger skills. Estimated SKILL.md size: 400-600 lines. The core complexity is in Phase 2 (feature identification heuristics) and Phase 3 (cross-entity flow stitching).
446
+
447
+ Consider splitting into two files if it exceeds 500 lines:
448
+ - `SKILL.md` — main skill with phases 1-5
449
+ - `HEURISTICS.md` — companion doc with detailed feature identification rules and examples
450
+
451
+ ### Relationship to Existing Skills
452
+
453
+ ```
454
+ /fluent-implementation-map (NEW — discovers everything, produces feature inventory)
455
+ ├── /fluent-feature-explain (EXISTING — deep-dive single feature)
456
+ ├── /fluent-workflow-analyzer (EXISTING — per-workflow structure)
457
+ ├── /fluent-connection-analysis (EXISTING — topology map)
458
+ ├── /fluent-custom-code (EXISTING — source code analysis)
459
+ └── /fluent-scope-decompose (EXISTING — can consume the feature inventory)
460
+ ```
461
+
462
+ The implementation-map skill is the **top of the analysis pyramid**. It's the first thing you run. Everything else drills deeper.
463
+
464
+ ### Handoff Protocol
465
+
466
+ ```
467
+ -> READY: accounts/<PROFILE>/analysis/implementation-map/implementation-map.md
468
+ -> NEXT: /fluent-feature-explain --feature "<slug>" (for any feature needing deeper analysis)
469
+ -> NEXT: /fluent-scope-decompose (to convert inventory into lifecycle features)
470
+ -> NEXT: /fluent-rfl-assess (for production readiness check)
471
+ -> BLOCKED: No workflows found. Download workflows first: fluent workflow download -p <PROFILE> -r <RETAILER>
472
+ ```
473
+
474
+ ### Agent Registration
475
+
476
+ Add to `fluent-dev` agent (`content/dev/agents/fluent-dev.md`) trigger list:
477
+ - "implementation map", "what's been built", "analyze implementation", "reverse engineer account", "feature inventory", "map this account", "end to end flows", "onboard to account", "what exists"
478
+
479
+ Add to `metadata.json` in the `dev` group skills array.
480
+
481
+ ---
482
+
483
+ ## Worked Example
484
+
485
+ Given an account with these workflows:
486
+ - `ORDER::HD`, `ORDER::CC`, `ORDER::MULTI`
487
+ - `FULFILMENT::HD`, `FULFILMENT::CC`
488
+ - `ARTICLE::DEFAULT`
489
+ - `WAVE::DEFAULT`
490
+
491
+ And these custom rules (from plugin.list):
492
+ - `CreateFulfilmentFromSourcingLocation` (ORDER context)
493
+ - `CalculateShippingCost` (FULFILMENT context)
494
+ - `AutoCompleteOrder` (ORDER context)
495
+ - `NotifyCustomerViaWebhook` (FULFILMENT context)
496
+ - `BulkArticleStatusUpdate` (ARTICLE context)
497
+ - `CustomSourceOrder` (ORDER context)
498
+
499
+ **Phase 2 would identify:**
500
+
501
+ | Feature | Why |
502
+ |---------|-----|
503
+ | Home Delivery (HD) | ORDER::HD + FULFILMENT::HD share `HD` subtype; `CreateFulfilmentFromSourcingLocation` bridges them |
504
+ | Click & Collect (CC) | ORDER::CC + FULFILMENT::CC share `CC` subtype |
505
+ | Multi-Location (MULTI) | ORDER::MULTI — may share fulfilment with HD or have its own |
506
+ | Article Management | ARTICLE::DEFAULT — shared infrastructure, used by HD and CC |
507
+ | Wave Management | WAVE::DEFAULT — shared infrastructure for warehouse operations |
508
+ | Sourcing | No dedicated workflow — `CustomSourceOrder` runs within ORDER flows |
509
+ | Shipping Integration | `CalculateShippingCost` + `NotifyCustomerViaWebhook` + webhook settings |
510
+
511
+ **Phase 3 for "Home Delivery" would produce:**
512
+
513
+ ```
514
+ ORDER::HD FULFILMENT::HD ARTICLE
515
+ ──────────── ────────────── ───────
516
+ CREATED
517
+ │ CustomSourceOrder
518
+ BOOKED
519
+ │ CreateFulfilmentFromSL
520
+ │──────────────────────────> CREATED
521
+ │ AllocateArticles
522
+ │─────────────────────────> CREATED
523
+ │ AssignLocation
524
+ ACTIVE
525
+ │ PickArticle
526
+ PICKED
527
+ │─────────────────> ArticleComplete
528
+ FULFILLED ◄───────────────
529
+ │ CalculateShippingCost
530
+ │ NotifyCustomerViaWebhook
531
+ COMPLETE
532
+ │ AutoCompleteOrder ◄──────
533
+ COMPLETE
534
+ ```
535
+
536
+ ---
537
+
538
+ ## Build Steps
539
+
540
+ To implement this skill:
541
+
542
+ 1. **Create the skill directory:**
543
+ ```
544
+ fluent-ai-skills/content/dev/skills/fluent-implementation-map/SKILL.md
545
+ ```
546
+
547
+ 2. **Write the SKILL.md** using this design doc as the specification. Key sections:
548
+ - Frontmatter (name, description, allowed-tools, argument-hint)
549
+ - Purpose & When to Use
550
+ - No Planning Gate (read-only)
551
+ - Inputs table
552
+ - Phase 1-5 detailed instructions (adapt from this doc)
553
+ - Output format with worked examples
554
+ - Graceful degradation for missing MCP
555
+ - Handoff Protocol
556
+ - Error Reporting
557
+ - Session Tracking
558
+
559
+ 3. **Register in metadata.json:**
560
+ ```json
561
+ "fluent-implementation-map" // add to dev.skills and dev.commands arrays
562
+ ```
563
+
564
+ 4. **Update fluent-dev agent** trigger list with new keywords.
565
+
566
+ 5. **Update README.md** capabilities table with new row.
567
+
568
+ 6. **Update CHANGELOG.md** `[Unreleased]` section.
569
+
570
+ 7. **Run tests:**
571
+ ```bash
572
+ cd fluent-ai-skills && npm test
573
+ ```
574
+
575
+ 8. **Reinstall all targets:**
576
+ ```bash
577
+ node bin/cli.mjs install --target claude
578
+ node bin/cli.mjs install --target cursor
579
+ # ... etc
580
+ ```
581
+
582
+ 9. **Test against live account:**
583
+ ```
584
+ /fluent-implementation-map --profile SAGIRISH --retailer "Module Test"
585
+ ```
586
+
587
+ ## Machine-Readable Output (`inventory.json`)
588
+
589
+ The `inventory.json` file provides a structured output for downstream tooling:
590
+
591
+ ```json
592
+ {
593
+ "generated": "2026-02-25T14:30:00Z",
594
+ "profile": "HMDEV",
595
+ "retailer": "HM_TEST",
596
+ "features": [
597
+ {
598
+ "slug": "home-delivery",
599
+ "confidence": "HIGH",
600
+ "clusterMethod": "subtype-family + event-chain",
601
+ "category": "Business Feature",
602
+ "customisationScore": 3,
603
+ "workflows": ["ORDER::HD", "FULFILMENT::HD_WH", "ARTICLE::HD"],
604
+ "primaryEntity": "ORDER::HD",
605
+ "entryEvents": ["CreateOrder"],
606
+ "terminalStatuses": ["COMPLETE", "CANCELLED"],
607
+ "crossEntityEvents": ["CreateFulfilment", "FulfilmentComplete"],
608
+ "ruleCount": { "custom": 12, "ootb": 34 },
609
+ "settingsReferenced": ["WEBHOOK_ENDPOINT_ORDER_BOOK", "INVENTORY_STRATEGY"],
610
+ "webhooks": ["NotifyWarehouse"],
611
+ "scheduledEvents": ["RetryAllocation"]
612
+ }
613
+ ],
614
+ "unclustered": [
615
+ { "workflow": "VIRTUAL_CATALOGUE::DEFAULT", "reason": "Standalone entity, no event connections" }
616
+ ],
617
+ "crossFeatureConnections": [
618
+ { "from": "home-delivery", "to": "inventory-management", "via": "UpdateInventory", "direction": "outbound" }
619
+ ]
620
+ }
621
+ ```
622
+
623
+ ---
624
+
625
+ ## Feature Stub Creation (`--create-stubs`)
626
+
627
+ When `--create-stubs` is passed, create `features/<slug>/status.json` for each discovered feature:
628
+
629
+ ```json
630
+ {
631
+ "$schema": "feature-status-v1",
632
+ "feature": "home-delivery",
633
+ "retailers": ["HM_TEST"],
634
+ "status": "DISCOVERY",
635
+ "created": "2026-02-25",
636
+ "updated": "2026-02-25",
637
+ "spec": null,
638
+ "plan": null,
639
+ "planRevision": null,
640
+ "architecture": false,
641
+ "basedOn": null,
642
+ "next": "/fluent-feature-explain",
643
+ "sessions": [],
644
+ "_discoveredBy": "/fluent-implementation-map",
645
+ "_workflows": ["ORDER::HD", "FULFILMENT::HD_WH", "ARTICLE::HD"],
646
+ "_confidence": "HIGH"
647
+ }
648
+ ```
649
+
650
+ The `_discoveredBy`, `_workflows`, and `_confidence` fields are prefixed with `_` to indicate discovery metadata (not part of the standard schema). Downstream skills like `/fluent-feature-explain` can read `_workflows` to know which workflows to analyze without asking the user.
651
+
652
+ **Lifecycle bridge:** After running with `--create-stubs`, the user can:
653
+ - Run `/fluent-feature-status` to see all discovered features
654
+ - Run `/fluent-feature-explain <slug>` on any feature (reads `_workflows` from status.json)
655
+ - Start the planning chain on any feature via `/fluent-use-case-discover`
656
+
657
+ ---
658
+
659
+ ## Edge Cases
660
+
661
+ | Case | Handling |
662
+ |------|----------|
663
+ | Account with 0 workflows | Report "No workflows found" with guidance to deploy |
664
+ | Account with 1 workflow | Single-feature output (no clustering needed) |
665
+ | All workflows same entity type | Cluster by subtype only; if same subtype, treat as single feature |
666
+ | Workflow with no subtype (e.g., `ORDER::ORDER`) | Use Heuristic 3 (naming patterns) or mark as UNCLUSTERED |
667
+ | 50+ workflows | Paginate output; recommend `--depth summary` + `--focus` filter |
668
+ | No custom rules (pure OOTB) | Still valid; report rule counts as 0/N; customisation score = 0 |
669
+ | No SOURCE/ directory | Skip code analysis; note in gap analysis |
670
+ | Circular event chains | Detect and flag as cross-feature loops (not errors) |
671
+ | Multiple retailers sharing workflows | Analyze per-retailer; note shared patterns |
672
+
673
+ ---
674
+
675
+ ## Estimated Token Budget
676
+
677
+ | Phase | Summary depth | Detailed (per feature) |
678
+ |-------|---------------|------------------------|
679
+ | Phase 1: Inventory collection | ~3k (workflow list + plugin.list + env.discover) | Same |
680
+ | Phase 2: Feature identification | ~1k + 2k per workflow (parse JSON) | Same |
681
+ | Phase 3: Flow mapping | ~2k per feature (summary tables) | ~8-15k (full architecture) |
682
+ | Phase 4: Gap analysis | ~1k | Same |
683
+ | Phase 5: Report generation | ~3k | ~5k |
684
+ | **Total (10 workflows, 3 features)** | **~30k tokens** | **~70k tokens** |
685
+
686
+ ---
687
+
688
+ ## Open Questions (Resolved)
689
+
690
+ 1. **Should `--depth detailed` auto-invoke `/fluent-feature-explain`?** → **No.** Use the same analysis patterns inline but link to `/fluent-feature-explain --feature <slug>` for deeper drill-down. Keeps the skill self-contained without subprocess coordination.
691
+
692
+ 2. **Should the skill create `features/<slug>/` directories?** → **Yes, but opt-in via `--create-stubs`.** Not by default. This bridges discovery into the feature lifecycle without forcing it. See "Feature Stub Creation" section above.
693
+
694
+ 3. **How to handle accounts with 50+ workflows?** → **Use `--focus` filter + `--depth summary` as default.** Edge cases table covers pagination guidance. Progressive output: emit features as they're identified.
695
+
696
+ 4. **Should it diff against a previous map?** → **v2 feature.** Not in initial implementation. The `inventory.json` output enables external diffing.
697
+
698
+ 5. **Naming** → **Resolved: `/fluent-implementation-map`.** Already registered in metadata.json, CHANGELOG, README. Name emphasises the output (a map of the implementation).