showdar-skills 0.2.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.
Files changed (304) hide show
  1. package/LICENSE +9 -0
  2. package/README.md +322 -0
  3. package/bin/showdar.js +118 -0
  4. package/bundles/bugfix.yaml +4 -0
  5. package/bundles/design.yaml +4 -0
  6. package/bundles/feature.yaml +4 -0
  7. package/bundles/release.yaml +4 -0
  8. package/bundles/upgrade.yaml +4 -0
  9. package/commands/opencode/showdar/build.md +6 -0
  10. package/commands/opencode/showdar/debug.md +6 -0
  11. package/commands/opencode/showdar/design.md +6 -0
  12. package/commands/opencode/showdar/git.md +6 -0
  13. package/commands/opencode/showdar/ops.md +7 -0
  14. package/commands/opencode/showdar/plan.md +6 -0
  15. package/commands/opencode/showdar/quality.md +7 -0
  16. package/commands/opencode/showdar/recover.md +6 -0
  17. package/commands/opencode/showdar/requirements.md +7 -0
  18. package/commands/opencode/showdar/review.md +6 -0
  19. package/commands/opencode/showdar/security.md +7 -0
  20. package/commands/opencode/showdar/ship.md +6 -0
  21. package/commands/opencode/showdar/skill.md +6 -0
  22. package/commands/opencode/showdar/test.md +6 -0
  23. package/commands/opencode/showdar/understand.md +6 -0
  24. package/commands/opencode/showdar/upgrade.md +6 -0
  25. package/engine/csv.mjs +45 -0
  26. package/engine/detect-stack.mjs +48 -0
  27. package/engine/rank.mjs +40 -0
  28. package/engine/search.mjs +20 -0
  29. package/package.json +28 -0
  30. package/profiles/backend.json +1 -0
  31. package/profiles/developer.json +1 -0
  32. package/profiles/full.json +1 -0
  33. package/profiles/minimal.json +1 -0
  34. package/profiles/product.json +1 -0
  35. package/profiles/qa.json +1 -0
  36. package/router/conflicts.yaml +50 -0
  37. package/router/skill-map.yaml +54 -0
  38. package/router/triggers.yaml +30 -0
  39. package/skills/showdar-build/SKILL.md +154 -0
  40. package/skills/showdar-build/data/change-smells.csv +24 -0
  41. package/skills/showdar-build/data/index.json +14 -0
  42. package/skills/showdar-build/examples/change-surface.md +18 -0
  43. package/skills/showdar-build/references/architecture-boundaries.md +3 -0
  44. package/skills/showdar-build/references/error-handling.md +3 -0
  45. package/skills/showdar-build/references/feature-flags.md +3 -0
  46. package/skills/showdar-build/references/minimal-change.md +3 -0
  47. package/skills/showdar-build/scripts/change-surface.mjs +5 -0
  48. package/skills/showdar-build/stacks/dart.md +3 -0
  49. package/skills/showdar-build/stacks/flutter.md +3 -0
  50. package/skills/showdar-build/stacks/kotlin.md +3 -0
  51. package/skills/showdar-build/stacks/nextjs.md +3 -0
  52. package/skills/showdar-build/stacks/node-fastify.md +3 -0
  53. package/skills/showdar-build/stacks/node-nestjs.md +3 -0
  54. package/skills/showdar-build/stacks/react-native.md +3 -0
  55. package/skills/showdar-build/stacks/react.md +3 -0
  56. package/skills/showdar-build/stacks/rust-tauri.md +3 -0
  57. package/skills/showdar-build/stacks/swift.md +3 -0
  58. package/skills/showdar-build/stacks/typescript.md +3 -0
  59. package/skills/showdar-debug/SKILL.md +179 -0
  60. package/skills/showdar-debug/data/failure-patterns.csv +34 -0
  61. package/skills/showdar-debug/data/index.json +14 -0
  62. package/skills/showdar-debug/examples/evidence-log.md +19 -0
  63. package/skills/showdar-debug/references/async-races.md +3 -0
  64. package/skills/showdar-debug/references/build-failures.md +3 -0
  65. package/skills/showdar-debug/references/hypothesis-driven-debugging.md +3 -0
  66. package/skills/showdar-debug/references/memory.md +3 -0
  67. package/skills/showdar-debug/references/networking.md +3 -0
  68. package/skills/showdar-debug/references/performance.md +3 -0
  69. package/skills/showdar-debug/scripts/collect-context.mjs +8 -0
  70. package/skills/showdar-debug/scripts/lib/detect-stack.mjs +48 -0
  71. package/skills/showdar-debug/stacks/android.md +21 -0
  72. package/skills/showdar-debug/stacks/docker.md +21 -0
  73. package/skills/showdar-debug/stacks/flutter.md +21 -0
  74. package/skills/showdar-debug/stacks/ios.md +21 -0
  75. package/skills/showdar-debug/stacks/nextjs.md +21 -0
  76. package/skills/showdar-debug/stacks/node.md +21 -0
  77. package/skills/showdar-debug/stacks/react-native.md +21 -0
  78. package/skills/showdar-debug/stacks/react.md +21 -0
  79. package/skills/showdar-debug/stacks/tauri.md +21 -0
  80. package/skills/showdar-design/SKILL.md +179 -0
  81. package/skills/showdar-design/data/accessibility.csv +16 -0
  82. package/skills/showdar-design/data/colors.csv +13 -0
  83. package/skills/showdar-design/data/components.csv +20 -0
  84. package/skills/showdar-design/data/index.json +25 -0
  85. package/skills/showdar-design/data/motion.csv +13 -0
  86. package/skills/showdar-design/data/products.csv +19 -0
  87. package/skills/showdar-design/data/stacks/compose.csv +9 -0
  88. package/skills/showdar-design/data/stacks/flutter.csv +9 -0
  89. package/skills/showdar-design/data/stacks/html-tailwind.csv +9 -0
  90. package/skills/showdar-design/data/stacks/nextjs.csv +9 -0
  91. package/skills/showdar-design/data/stacks/nuxt.csv +9 -0
  92. package/skills/showdar-design/data/stacks/react-native.csv +9 -0
  93. package/skills/showdar-design/data/stacks/react.csv +9 -0
  94. package/skills/showdar-design/data/stacks/svelte.csv +9 -0
  95. package/skills/showdar-design/data/stacks/swiftui.csv +9 -0
  96. package/skills/showdar-design/data/stacks/tauri.csv +9 -0
  97. package/skills/showdar-design/data/stacks/vue.csv +9 -0
  98. package/skills/showdar-design/data/styles.csv +13 -0
  99. package/skills/showdar-design/data/typography.csv +13 -0
  100. package/skills/showdar-design/data/ui-patterns.csv +19 -0
  101. package/skills/showdar-design/examples/design-brief.md +19 -0
  102. package/skills/showdar-design/references/accessibility.md +5 -0
  103. package/skills/showdar-design/references/anti-ai-ui.md +5 -0
  104. package/skills/showdar-design/references/architecture.md +12 -0
  105. package/skills/showdar-design/references/interaction.md +5 -0
  106. package/skills/showdar-design/references/layout.md +5 -0
  107. package/skills/showdar-design/references/release-readiness.md +12 -0
  108. package/skills/showdar-design/references/responsive.md +5 -0
  109. package/skills/showdar-design/references/security.md +12 -0
  110. package/skills/showdar-design/references/visual-hierarchy.md +7 -0
  111. package/skills/showdar-design/scripts/lib/csv.mjs +40 -0
  112. package/skills/showdar-design/scripts/lib/rank.mjs +35 -0
  113. package/skills/showdar-design/scripts/lib/search.mjs +20 -0
  114. package/skills/showdar-design/scripts/search.mjs +38 -0
  115. package/skills/showdar-design/stacks/flutter.md +13 -0
  116. package/skills/showdar-design/stacks/html-tailwind.md +12 -0
  117. package/skills/showdar-design/stacks/jetpack-compose.md +13 -0
  118. package/skills/showdar-design/stacks/nextjs.md +12 -0
  119. package/skills/showdar-design/stacks/nuxt.md +11 -0
  120. package/skills/showdar-design/stacks/react-native.md +13 -0
  121. package/skills/showdar-design/stacks/react.md +12 -0
  122. package/skills/showdar-design/stacks/svelte.md +11 -0
  123. package/skills/showdar-design/stacks/swiftui.md +12 -0
  124. package/skills/showdar-design/stacks/tauri.md +12 -0
  125. package/skills/showdar-design/stacks/vue.md +12 -0
  126. package/skills/showdar-git/SKILL.md +291 -0
  127. package/skills/showdar-git/data/git-workflows.csv +7 -0
  128. package/skills/showdar-git/data/index.json +14 -0
  129. package/skills/showdar-git/examples/commit-task-only.md +15 -0
  130. package/skills/showdar-git/examples/conflict-stop.md +7 -0
  131. package/skills/showdar-git/examples/explicit-push.md +7 -0
  132. package/skills/showdar-git/examples/feature-merge-no-push.md +13 -0
  133. package/skills/showdar-git/references/operation-safety.md +34 -0
  134. package/skills/showdar-git/scripts/inspect-git-state.mjs +53 -0
  135. package/skills/showdar-ops/SKILL.md +160 -0
  136. package/skills/showdar-ops/data/index.json +14 -0
  137. package/skills/showdar-ops/data/ops-patterns.csv +12 -0
  138. package/skills/showdar-ops/examples/explicit-deployment.md +5 -0
  139. package/skills/showdar-ops/examples/fix-existing-ci.md +5 -0
  140. package/skills/showdar-ops/examples/inspect-ci-readonly.md +7 -0
  141. package/skills/showdar-ops/examples/rollback-plan.md +5 -0
  142. package/skills/showdar-ops/examples/staging-plan.md +5 -0
  143. package/skills/showdar-ops/references/ci-cd.md +5 -0
  144. package/skills/showdar-ops/references/containers.md +5 -0
  145. package/skills/showdar-ops/references/deployment.md +5 -0
  146. package/skills/showdar-ops/references/desktop-release.md +3 -0
  147. package/skills/showdar-ops/references/environments.md +5 -0
  148. package/skills/showdar-ops/references/mobile-release.md +3 -0
  149. package/skills/showdar-ops/references/observability.md +5 -0
  150. package/skills/showdar-ops/references/rollback.md +5 -0
  151. package/skills/showdar-ops/scripts/inspect-ops-state.mjs +54 -0
  152. package/skills/showdar-plan/SKILL.md +159 -0
  153. package/skills/showdar-plan/data/index.json +14 -0
  154. package/skills/showdar-plan/data/planning-checklists.csv +25 -0
  155. package/skills/showdar-plan/examples/feature-plan.md +19 -0
  156. package/skills/showdar-plan/references/architecture.md +5 -0
  157. package/skills/showdar-plan/references/requirements.md +5 -0
  158. package/skills/showdar-plan/references/risk-analysis.md +5 -0
  159. package/skills/showdar-plan/references/scope.md +5 -0
  160. package/skills/showdar-plan/references/task-decomposition.md +5 -0
  161. package/skills/showdar-plan/scripts/collect-planning-context.mjs +9 -0
  162. package/skills/showdar-plan/scripts/lib/detect-stack.mjs +48 -0
  163. package/skills/showdar-plan/stacks/backend.md +3 -0
  164. package/skills/showdar-plan/stacks/mobile.md +3 -0
  165. package/skills/showdar-plan/stacks/web.md +3 -0
  166. package/skills/showdar-quality/SKILL.md +166 -0
  167. package/skills/showdar-quality/data/index.json +14 -0
  168. package/skills/showdar-quality/data/quality-patterns.csv +11 -0
  169. package/skills/showdar-quality/references/qa-guide.md +20 -0
  170. package/skills/showdar-recover/SKILL.md +164 -0
  171. package/skills/showdar-recover/data/index.json +14 -0
  172. package/skills/showdar-recover/data/recovery-signals.csv +23 -0
  173. package/skills/showdar-recover/examples/recovery-report.md +18 -0
  174. package/skills/showdar-recover/references/failed-runs.md +3 -0
  175. package/skills/showdar-recover/references/interrupted-session.md +3 -0
  176. package/skills/showdar-recover/references/merge-conflicts.md +3 -0
  177. package/skills/showdar-recover/references/partial-implementation.md +3 -0
  178. package/skills/showdar-recover/scripts/inspect-state.mjs +5 -0
  179. package/skills/showdar-requirements/SKILL.md +172 -0
  180. package/skills/showdar-requirements/data/index.json +14 -0
  181. package/skills/showdar-requirements/data/requirements-patterns.csv +11 -0
  182. package/skills/showdar-requirements/references/analysis-guide.md +30 -0
  183. package/skills/showdar-review/SKILL.md +155 -0
  184. package/skills/showdar-review/data/index.json +14 -0
  185. package/skills/showdar-review/data/review-patterns.csv +27 -0
  186. package/skills/showdar-review/examples/finding.md +16 -0
  187. package/skills/showdar-review/references/architecture.md +3 -0
  188. package/skills/showdar-review/references/correctness.md +3 -0
  189. package/skills/showdar-review/references/maintainability.md +3 -0
  190. package/skills/showdar-review/references/performance.md +3 -0
  191. package/skills/showdar-review/references/security.md +3 -0
  192. package/skills/showdar-review/references/testing.md +3 -0
  193. package/skills/showdar-review/scripts/collect-diff.mjs +5 -0
  194. package/skills/showdar-review/stacks/android.md +3 -0
  195. package/skills/showdar-review/stacks/flutter.md +3 -0
  196. package/skills/showdar-review/stacks/ios.md +3 -0
  197. package/skills/showdar-review/stacks/nextjs.md +3 -0
  198. package/skills/showdar-review/stacks/node-backend.md +3 -0
  199. package/skills/showdar-review/stacks/react-native.md +3 -0
  200. package/skills/showdar-review/stacks/react.md +3 -0
  201. package/skills/showdar-review/stacks/swift-kotlin.md +3 -0
  202. package/skills/showdar-review/stacks/typescript.md +3 -0
  203. package/skills/showdar-security/SKILL.md +169 -0
  204. package/skills/showdar-security/data/index.json +14 -0
  205. package/skills/showdar-security/data/security-patterns.csv +13 -0
  206. package/skills/showdar-security/examples/api-authorization-review.md +9 -0
  207. package/skills/showdar-security/examples/mobile-deeplink-review.md +7 -0
  208. package/skills/showdar-security/examples/secret-exposure-review.md +5 -0
  209. package/skills/showdar-security/examples/threat-model-open-assumptions.md +11 -0
  210. package/skills/showdar-security/references/authz-secrets.md +7 -0
  211. package/skills/showdar-security/references/mobile-security.md +7 -0
  212. package/skills/showdar-security/references/supply-chain.md +5 -0
  213. package/skills/showdar-security/references/threat-modeling.md +12 -0
  214. package/skills/showdar-security/scripts/inspect-security-surface.mjs +47 -0
  215. package/skills/showdar-ship/SKILL.md +234 -0
  216. package/skills/showdar-ship/data/index.json +14 -0
  217. package/skills/showdar-ship/data/release-checks.csv +28 -0
  218. package/skills/showdar-ship/examples/release-report.md +25 -0
  219. package/skills/showdar-ship/references/migrations.md +12 -0
  220. package/skills/showdar-ship/references/post-deploy.md +12 -0
  221. package/skills/showdar-ship/references/release-readiness.md +13 -0
  222. package/skills/showdar-ship/references/rollback.md +12 -0
  223. package/skills/showdar-ship/references/secrets.md +3 -0
  224. package/skills/showdar-ship/scripts/detect-targets.mjs +5 -0
  225. package/skills/showdar-ship/scripts/lib/detect-stack.mjs +48 -0
  226. package/skills/showdar-ship/scripts/release-check.mjs +6 -0
  227. package/skills/showdar-ship/stacks/android.md +33 -0
  228. package/skills/showdar-ship/stacks/docker.md +30 -0
  229. package/skills/showdar-ship/stacks/electron.md +7 -0
  230. package/skills/showdar-ship/stacks/ios.md +34 -0
  231. package/skills/showdar-ship/stacks/nextjs.md +30 -0
  232. package/skills/showdar-ship/stacks/node-backend.md +37 -0
  233. package/skills/showdar-ship/stacks/orchestration.md +12 -0
  234. package/skills/showdar-ship/stacks/tauri.md +35 -0
  235. package/skills/showdar-ship/stacks/web.md +35 -0
  236. package/skills/showdar-test/SKILL.md +164 -0
  237. package/skills/showdar-test/data/index.json +14 -0
  238. package/skills/showdar-test/data/test-strategy.csv +22 -0
  239. package/skills/showdar-test/examples/regression.md +14 -0
  240. package/skills/showdar-test/references/e2e.md +3 -0
  241. package/skills/showdar-test/references/integration.md +3 -0
  242. package/skills/showdar-test/references/regression.md +3 -0
  243. package/skills/showdar-test/references/test-smells.md +3 -0
  244. package/skills/showdar-test/references/unit.md +3 -0
  245. package/skills/showdar-test/scripts/detect-test-tools.mjs +6 -0
  246. package/skills/showdar-test/stacks/android-testing.md +13 -0
  247. package/skills/showdar-test/stacks/detox.md +13 -0
  248. package/skills/showdar-test/stacks/flutter-test.md +13 -0
  249. package/skills/showdar-test/stacks/integration-test.md +13 -0
  250. package/skills/showdar-test/stacks/jest.md +13 -0
  251. package/skills/showdar-test/stacks/playwright.md +13 -0
  252. package/skills/showdar-test/stacks/react-native-testing.md +17 -0
  253. package/skills/showdar-test/stacks/react-testing-library.md +13 -0
  254. package/skills/showdar-test/stacks/vitest.md +13 -0
  255. package/skills/showdar-test/stacks/xctest.md +13 -0
  256. package/skills/showdar-understand/SKILL.md +159 -0
  257. package/skills/showdar-understand/data/architecture-signals.csv +28 -0
  258. package/skills/showdar-understand/data/index.json +14 -0
  259. package/skills/showdar-understand/examples/repository-audit.md +17 -0
  260. package/skills/showdar-understand/references/architecture-signals.md +25 -0
  261. package/skills/showdar-understand/references/dependency-analysis.md +9 -0
  262. package/skills/showdar-understand/references/repository-analysis.md +24 -0
  263. package/skills/showdar-understand/scripts/inspect-repo.mjs +16 -0
  264. package/skills/showdar-understand/scripts/lib/detect-stack.mjs +48 -0
  265. package/skills/showdar-understand/stacks/android.md +3 -0
  266. package/skills/showdar-understand/stacks/backend.md +5 -0
  267. package/skills/showdar-understand/stacks/electron.md +3 -0
  268. package/skills/showdar-understand/stacks/fastify.md +3 -0
  269. package/skills/showdar-understand/stacks/flutter.md +3 -0
  270. package/skills/showdar-understand/stacks/ios.md +3 -0
  271. package/skills/showdar-understand/stacks/mobile.md +5 -0
  272. package/skills/showdar-understand/stacks/nestjs.md +3 -0
  273. package/skills/showdar-understand/stacks/nextjs.md +3 -0
  274. package/skills/showdar-understand/stacks/node.md +3 -0
  275. package/skills/showdar-understand/stacks/react-native.md +3 -0
  276. package/skills/showdar-understand/stacks/react.md +3 -0
  277. package/skills/showdar-understand/stacks/tauri.md +3 -0
  278. package/skills/showdar-upgrade/SKILL.md +162 -0
  279. package/skills/showdar-upgrade/data/compatibility-checklist.csv +24 -0
  280. package/skills/showdar-upgrade/data/index.json +14 -0
  281. package/skills/showdar-upgrade/examples/upgrade-report.md +18 -0
  282. package/skills/showdar-upgrade/references/breaking-changes.md +3 -0
  283. package/skills/showdar-upgrade/references/compatibility.md +3 -0
  284. package/skills/showdar-upgrade/references/dependency-resolution.md +3 -0
  285. package/skills/showdar-upgrade/references/migration-strategy.md +3 -0
  286. package/skills/showdar-upgrade/references/rollback.md +3 -0
  287. package/skills/showdar-upgrade/scripts/inspect-dependencies.mjs +6 -0
  288. package/skills/showdar-upgrade/scripts/lib/detect-stack.mjs +48 -0
  289. package/skills/showdar-upgrade/stacks/android.md +15 -0
  290. package/skills/showdar-upgrade/stacks/cocoapods-spm.md +17 -0
  291. package/skills/showdar-upgrade/stacks/expo.md +17 -0
  292. package/skills/showdar-upgrade/stacks/flutter.md +17 -0
  293. package/skills/showdar-upgrade/stacks/gradle.md +13 -0
  294. package/skills/showdar-upgrade/stacks/ios.md +15 -0
  295. package/skills/showdar-upgrade/stacks/nextjs.md +17 -0
  296. package/skills/showdar-upgrade/stacks/node.md +17 -0
  297. package/skills/showdar-upgrade/stacks/react-native.md +17 -0
  298. package/skills/showdar-upgrade/stacks/react.md +17 -0
  299. package/skills/showdar-upgrade/stacks/tauri-rust.md +15 -0
  300. package/src/adapters.js +44 -0
  301. package/src/catalog.js +57 -0
  302. package/src/project.js +287 -0
  303. package/src/runtime.js +9 -0
  304. package/src/validate.js +310 -0
@@ -0,0 +1,164 @@
1
+ ---
2
+ name: showdar-recover
3
+ description: Use when interrupted or partial engineering work must be reconstructed from repository evidence before continuing.
4
+ ---
5
+
6
+ # Showdar Recover
7
+
8
+ ## Purpose
9
+
10
+ - Recover context after session interruption, compaction, agent failure, crash, or handoff.
11
+ - Distinguish completed-and-proven work from partial, broken, unrelated, and merely claimed work.
12
+ - Prevent duplicate edits or accidental overwrite of user/uncommitted state.
13
+ - Resume from the smallest verified checkpoint.
14
+ - Read `references/interrupted-session.md` and `references/partial-implementation.md` before editing anything.
15
+
16
+ ## When to use
17
+
18
+ - Agent/task stopped mid-run.
19
+ - New session needs to continue previous repository work.
20
+ - Context was compacted and exact progress is uncertain.
21
+ - Merge/rebase/conflict or failed automation left ambiguous partial state.
22
+ - User asks “where were we?”, “continue from current state”, or “recover this task”.
23
+
24
+ ## When not to use
25
+
26
+ - Clean new task with no prior partial work.
27
+ - Normal code review or architecture understanding.
28
+ - Do not infer original goal from unrelated git history when user/task context is available.
29
+ - Do not auto-resolve conflicts before understanding both sides.
30
+
31
+ ## Inputs and assumptions
32
+
33
+ - Repository/worktree state and any task/spec/plan/chat summary available.
34
+ - Git history/status/diff are evidence but may contain unrelated user changes.
35
+ - Previous agent narration is a hint, not proof.
36
+ - `scripts/inspect-state.mjs` performs read-only git-state collection.
37
+ - Fresh tests/builds are needed before classifying a change as proven complete.
38
+
39
+ ## Non-negotiable rules
40
+
41
+ - Do not edit files until current state and ownership of dirty changes are understood.
42
+ - Never discard, reset, checkout over, or clean uncommitted work without explicit user approval.
43
+ - Classify previous claims by filesystem/test evidence, not trust.
44
+ - Preserve unrelated user changes.
45
+ - Identify last known-good checkpoint and first unverified/broken step.
46
+ - Re-run relevant verification before declaring recovered work complete.
47
+ - Conflict resolution must preserve semantic intent from both sides, not just remove markers.
48
+
49
+ ## Workflow
50
+
51
+ ### Phase 1 — reconstruct goal
52
+ - Read task/spec/plan/commit messages and current conversation context.
53
+ - State the original goal and known constraints in one short block.
54
+ - Mark inferred goal details explicitly.
55
+
56
+ ### Phase 2 — inspect durable state
57
+ - Run `node scripts/inspect-state.mjs <repo>` or equivalent git status/diff/log commands.
58
+ - Identify staged, unstaged, untracked, conflict, generated, and unrelated files.
59
+ - Read partial implementation and tests before editing.
60
+
61
+ ### Phase 3 — classify progress
62
+ - **completed-and-proven**: behavior exists and fresh/reliable proof is available.
63
+ - **implemented-unverified**: code appears complete but proof is absent/stale.
64
+ - **partial**: interfaces/paths incomplete.
65
+ - **broken**: known failing build/test/runtime behavior.
66
+ - **unrelated**: pre-existing/user changes outside recovered task.
67
+
68
+ ### Phase 4 — identify checkpoint and dependency edges
69
+ - Find the smallest coherent completed slice.
70
+ - Identify interfaces later partial work relies on.
71
+ - Read `references/failed-runs.md` when previous automation claimed success/failure inconsistently.
72
+
73
+ ### Phase 5 — choose next safest action
74
+ - Prefer verifying an existing partial/completed slice before writing new code.
75
+ - Resume the first unmet dependency in the original plan.
76
+ - For conflicts, read `references/merge-conflicts.md` and resolve semantics before feature work.
77
+
78
+ ### Phase 6 — re-enter normal workflow
79
+ - If root cause unknown -> showdar-debug.
80
+ - If plan is stale because scope changed -> showdar-plan.
81
+ - If implementation is clear -> showdar-build.
82
+ - If only verification remains -> showdar-test/review as appropriate.
83
+
84
+ ## Decision points
85
+
86
+ - Dirty file belongs to user/unrelated task? Preserve it and exclude from recovered change surface.
87
+ - Partial interface consumed elsewhere? Verify/finish producer before consumer edits.
88
+ - Previous test output says pass but code changed since? Treat as stale and rerun.
89
+ - Conflict markers present? Resolve merge semantics before continuing task.
90
+ - No git repository? Use filesystem timestamps/task artifacts cautiously and state lower confidence.
91
+ - Original goal ambiguous? Ask user rather than reconstructing from broad history.
92
+ - Conflict markers? Stop feature work; read both sides and base, resolve semantics, then re-run targeted proof.
93
+ - Migration or generated/native state? Freeze destructive actions, identify source-of-truth owner, and verify status before retrying.
94
+ - Only stale narration remains? Treat the task as unverified and use the smallest read-only inspection script plus fresh test.
95
+
96
+ ## Stack detection
97
+
98
+ - Recovery is stack-agnostic, but detected stack determines which build/test/runtime evidence can prove completion.
99
+ - Mobile changes may require both shared and native project state inspection.
100
+ - Backend changes may include migration/generated schema/job state not obvious from source diff.
101
+ - Web changes may include generated build artifacts that should not be mistaken for source completion.
102
+ - Use repository-native verification commands once task classification is known.
103
+
104
+ ## Failure modes
105
+
106
+ - Trusting previous agent “done” message without current proof.
107
+ - Running git reset/clean/checkout and destroying user work.
108
+ - Starting new implementation while an earlier dependency is broken.
109
+ - Treating every dirty file as part of recovered task.
110
+ - Resolving conflict mechanically by choosing ours/theirs.
111
+ - Declaring complete because expected files exist.
112
+ - Replanning everything instead of resuming smallest verified checkpoint.
113
+
114
+ ## Stop conditions
115
+
116
+ - Stop when the requested outcome is outside this skill and hand off to the more appropriate workflow.
117
+ - Stop before destructive, irreversible, production, credential, publishing, or deployment actions unless the user explicitly approved them.
118
+ - Stop when required evidence is unavailable and proceeding would require guessing about behavior, ownership, or safety.
119
+ - Stop when a repository instruction conflicts with this playbook; repository/user instructions win.
120
+ - Stop recovery when goal, current classified state, known failures, and next safest action are clear; then transition to the appropriate execution skill.
121
+
122
+ ## Escalation conditions
123
+
124
+ - Ask the user when dirty state cannot be confidently assigned to the recovered task.
125
+ - Ask before destructive git operations or dropping generated/user files.
126
+ - Escalate missing external state such as deployment/migration/store actions rather than assuming they happened.
127
+ - If original task context is unavailable and multiple goals fit the diff, request the missing goal.
128
+
129
+ ## Verification
130
+
131
+ - Re-run status/diff after any recovery edits to confirm unrelated files stayed untouched.
132
+ - Freshly run the tests/builds that prove completed slices.
133
+ - Compare current task state against original plan/spec requirements.
134
+ - Verify conflict markers are gone only after semantic resolution.
135
+ - Confirm next action is dependency-safe and does not redo proven work.
136
+ - State any prior claims that could not be verified.
137
+
138
+ ## Output contract
139
+
140
+ - **Original goal** — stated vs inferred.
141
+ - **Completed and proven**.
142
+ - **Implemented but unverified**.
143
+ - **Partial**.
144
+ - **Broken / known failures**.
145
+ - **Unrelated protected changes**.
146
+ - **Remaining work**.
147
+ - **Next safest action** with reason and verification needed.
148
+
149
+ ## Anti-patterns
150
+
151
+ - “Looks mostly done, continue coding.”
152
+ - Trusting task checkboxes without code/test evidence.
153
+ - Cleaning the worktree to simplify analysis.
154
+ - Starting from newest changed file instead of dependency order.
155
+ - Resolving conflicts before reading both sides and tests.
156
+ - Hiding uncertainty about which changes belong to the task.
157
+
158
+ ## Example
159
+
160
+ Goal: add cache invalidation after sync.
161
+ - Status shows cache helper committed, sync path modified but integration test failing, unrelated README dirty.
162
+ - Classify helper as completed if fresh unit test passes; sync integration as broken/partial; README protected/unrelated.
163
+ - Next action: reproduce integration failure and trace sync invalidation call before editing.
164
+ - See `examples/recovery-report.md`.
@@ -0,0 +1,14 @@
1
+ {
2
+ "version": 1,
3
+ "skill": "showdar-recover",
4
+ "datasets": [
5
+ {
6
+ "file": "data/recovery-signals.csv",
7
+ "idField": "id",
8
+ "requiredColumns": ["id", "category", "signal", "meaning", "confidence", "action", "evidence", "stop_condition", "tags", "reference", "stack"],
9
+ "searchableFields": ["category", "signal", "meaning", "action", "evidence", "stop_condition", "tags"],
10
+ "filterFields": ["category", "confidence", "stack"],
11
+ "reference": "references/interrupted-session.md"
12
+ }
13
+ ]
14
+ }
@@ -0,0 +1,23 @@
1
+ id,category,signal,meaning,confidence,action,evidence,stop_condition,tags,reference,stack
2
+ goal-source,session,task or user request is available,original intent is anchored,high,copy exact goal and constraints into recovery note,task text or issue,stop if multiple goals conflict,goal context,references/interrupted-session.md,*
3
+ plan-source,session,plan/spec has explicit tasks,planned scope is a hint not proof,medium,map each checkbox to current evidence,plan plus files/tests,stop treating checkboxes as completion,plan evidence,references/interrupted-session.md,*
4
+ clean-checkpoint,git,clean status after relevant commit,work may be checkpointed,medium,inspect commit files and rerun tests before resuming,status log commit and tests,stop if commit is unrelated,checkpoint,references/failed-runs.md,*
5
+ dirty-source,git,dirty source with matching failing test,active incomplete implementation,high,read diff and failure before editing,diff and fresh failure,stop if ownership is unclear,dirty work,references/partial-implementation.md,*
6
+ dirty-unrelated,git,dirty file outside task,pre-existing user work,high,protect it and exclude from scope,status diff and task map,stop before broad cleanup,ownership,references/interrupted-session.md,*
7
+ untracked-generated,artifacts,untracked generated output,tool may have run partially,medium,identify source owner and whether artifact is tracked,artifact path timestamps and config,stop before deleting unknown output,generated output,references/partial-implementation.md,*
8
+ conflict-markers,conflict,conflict markers in source,merge or rebase is unresolved,high,read both semantic sides before resolution,marker locations and branch context,stop feature work until resolved,merge conflict,references/merge-conflicts.md,*
9
+ stale-test-log,verification,test log predates current files,recorded result is not current proof,medium,rerun relevant command and compare first failure,log timestamp plus fresh output,stop claiming pass from log,test evidence,references/failed-runs.md,*
10
+ missing-test,test,implementation has no behavior proof,completion is unverified,high,write lowest-level regression before changing more,changed path and invariant,stop before declaring complete,test gap,references/partial-implementation.md,*
11
+ failing-test,test,targeted test fails after partial patch,implementation is broken or fixture is wrong,high,classify failure and trace owning boundary,full failure output and diff,stop broad refactor until cause known,failing proof,references/failed-runs.md,*
12
+ stale-generated,artifacts,generated file disagrees with source,build may use stale output,medium,identify generator then regenerate only owned output,source hash generator command and diff,stop if ownership unclear,stale generated,references/partial-implementation.md,*
13
+ failed-migration,data,migration applied partially,rollback and data safety are uncertain,critical,inspect migration status and backup before app edits,DB status and migration logs,stop before retrying mutation,migration recovery,references/merge-conflicts.md,node
14
+ failed-refactor,source,imports or types broken after refactor,interface migration is incomplete,high,find first compiler/test error and map old callers,compiler output and search,stop before compatibility cleanup,refactor recovery,references/partial-implementation.md,typescript
15
+ missing-consumer,source,new producer exists but caller still old,feature path is incomplete,high,trace producer to all consumers and update contract tests,call graph and fixture,stop if public contract intent unclear,consumer migration,references/partial-implementation.md,*
16
+ partial-native,native,shared code changed without native proof,mobile release may be broken,high,inspect iOS Android or desktop diffs and run narrow platform check,native project status and build,stop release claim without target proof,native recovery,references/partial-implementation.md,react-native
17
+ context-loss,session,chat or agent context is missing,previous narration cannot establish state,high,use durable files logs commits and fresh tests,task docs status diff and tests,stop if goal cannot be reconstructed,context recovery,references/interrupted-session.md,*
18
+ unknown-agent-change,ownership,previous agent changes have no attribution,intent and safety are ambiguous,high,preserve files and audit each changed boundary,diff timestamps tests and surrounding contracts,stop before overwriting,unknown changes,references/interrupted-session.md,*
19
+ recovered-green,verification,fresh targeted and affected checks pass,small slice is proven,high,record command output and move to next unmet dependency,test output and diff,stop only if all requirements mapped,proven slice,references/failed-runs.md,*
20
+ recovered-unverified,verification,code appears complete but no fresh proof,implementation may be correct but cannot be claimed,medium,run exact relevant verification before edit,source plus missing proof,stop completion claim until fresh run,unverified,references/failed-runs.md,*
21
+ safe-next-action,decision,one dependency is clearly next,progress can resume without redoing work,high,perform smallest read/test action that proves boundary,plan dependency and command,stop when action requires user choice,next action,references/partial-implementation.md,*
22
+ destructive-boundary,safety,next action would delete/reset/migrate/overwrite,irreversible risk exceeds inferred authority,critical,ask for explicit approval and preserve evidence,command target and recovery path,stop before destructive action,safety gate,references/interrupted-session.md,*
23
+ recovery-report,output,recovery note has completed partial broken remaining,another engineer can resume without guessing,high,write evidence-backed handoff,report fields and command results,stop once next safe action is executable,recovery output,references/partial-implementation.md,*
@@ -0,0 +1,18 @@
1
+ # Example recovery report
2
+
3
+ Original goal: add cache invalidation after sync.
4
+
5
+ Durable evidence: the cache-key helper exists and its unit test passes. The sync
6
+ path calls the helper, but the integration test still observes zero invalidations.
7
+ `README.md` has an unrelated user edit and must remain untouched. No conflict
8
+ markers are present; the previous “done” narration is not proof.
9
+
10
+ Classification:
11
+ - Completed-and-proven: cache-key helper and unit test.
12
+ - Partial: sync commit path and integration proof.
13
+ - Broken: integration expectation currently fails.
14
+ - Protected: unrelated README change.
15
+
16
+ Next safest action: trace the sync commit path, reproduce the integration test,
17
+ and inspect the invalidation event boundary before editing. Do not reset or
18
+ replay broad history. Completion requires a fresh integration pass.
@@ -0,0 +1,3 @@
1
+ # Failed agent runs
2
+
3
+ Treat previous agent narration, task checkboxes, and stale logs as hints, not proof. Verify filesystem, status/diff, current tests, build artifacts, and command exit codes directly. Capture the last fresh successful invariant, first failing command, changed ownership, and uncommitted partial patch before selecting the next action. If a command timed out, re-check its process/authoritative state before restarting.
@@ -0,0 +1,3 @@
1
+ # Interrupted session
2
+
3
+ Reconstruct from durable evidence: exact user goal, task/spec/plan, status/diff/log, recent commits, test results, generated artifacts, and explicit notes. Rank evidence as fresh executable proof, current source/config, durable history, then narration/checkboxes. Do not infer completion from files merely existing. Distinguish intended work from accidental or unrelated dirty state and preserve unknown ownership.
@@ -0,0 +1,3 @@
1
+ # Merge conflicts
2
+
3
+ Understand both sides and the base before resolving. Preserve semantic changes, tests, generated-source ownership, version/config intent, and migration ordering. Resolve by behavior, not by choosing ours/theirs or merely deleting markers. After resolution, confirm no markers remain, inspect the diff, and run targeted behavior tests plus broader build/type verification for touched boundaries.
@@ -0,0 +1,3 @@
1
+ # Partial implementation
2
+
3
+ Classify each changed area as complete-and-proven, implemented-but-unverified, partial, broken, or unrelated. For each area record owner, changed contract, current consumer state, first failing proof, and next dependency. Verify interfaces before continuing and protect unrelated dirty files. Prefer finishing the smallest coherent slice over opening new fronts; never hide a broken producer behind consumer guards.
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env node
2
+ import { spawnSync } from 'node:child_process'; import path from 'node:path';
3
+ const cwd=path.resolve(process.argv[2]??process.cwd()); const run=a=>{const r=spawnSync('git',a,{cwd,encoding:'utf8'});return {ok:r.status===0,out:r.stdout.trim(),err:r.stderr.trim()}};
4
+ const status=run(['status','--short']); const diff=run(['diff','--stat']); const names=run(['diff','--name-only']); const log=run(['log','-5','--oneline','--decorate']);
5
+ console.log(JSON.stringify({cwd,gitAvailable:status.ok,status:status.out||null,diffStat:diff.out||null,changed:names.out?names.out.split('\n'):[],recentCommits:log.out?log.out.split('\n'):[],errors:[status.err,diff.err,names.err,log.err].filter(Boolean)},null,2));
@@ -0,0 +1,172 @@
1
+ ---
2
+ name: showdar-requirements
3
+ description: Use when product or business input needs explicit behavior, rules, acceptance criteria, assumptions, or open decisions.
4
+ ---
5
+
6
+ # Showdar Requirements
7
+
8
+ ## Purpose
9
+
10
+ - Convert tickets, briefs, conversations, API notes, and observed repository behavior into implementation-ready requirements.
11
+ - Make behavior, actors, states, rules, constraints, and acceptance evidence explicit without fabricating stakeholder intent.
12
+ - Produce a useful review, story, acceptance-criteria, or requirements-matrix artifact for product, BA, QA, and engineering.
13
+ - Use `data/requirements-patterns.csv` as a searchable prompt and read `references/analysis-guide.md` for deeper analysis structure.
14
+
15
+ ## When to use
16
+
17
+ - A ticket, BRD, brief, or request is vague, incomplete, contradictory, or difficult to test.
18
+ - The user needs functional/non-functional requirements, user stories, use cases, business rules, acceptance criteria, or a traceability matrix.
19
+ - A flow needs actors, permissions, states, validation, alternate/negative paths, edge cases, or boundary conditions.
20
+ - Repository evidence is needed to distinguish current behavior from requested behavior.
21
+ - A team needs an implementation-readiness verdict and explicit decisions before planning.
22
+ - The final review must state implementation readiness plainly, with blockers rather than implied confidence.
23
+
24
+ ## When not to use
25
+
26
+ - Do not use this to decide engineering sequencing or file ownership; use `showdar-plan` after the requirement is agreed.
27
+ - Do not use this to discover an unfamiliar repository as the primary task; use `showdar-understand`.
28
+ - Do not implement application code, alter product data, update tickets, or commit changes by default.
29
+ - This skill does not modify application code by default; it produces analysis and documentation artifacts.
30
+ - Do not use this for automated test implementation; use `showdar-test`.
31
+
32
+ ## Inputs and assumptions
33
+
34
+ - Prefer the original request, source document, ticket identifiers, examples, wireframes, API schemas, current code, models, tests, and observed behavior.
35
+ - Record which statements are directly supplied, which are observed in the repository, and which are assumptions.
36
+ - Preserve domain terminology and existing identifiers; do not create replacement vocabulary without noting the mapping.
37
+ - If a source requirement ID exists, retain it. Create local labels only when needed for traceability and mark them as analysis IDs.
38
+ - State the product context, affected actors, platforms, relevant version, and evidence boundary before deriving behavior.
39
+
40
+ ## Non-negotiable rules
41
+
42
+ - Separate facts, repository observations, assumptions, decisions required, and recommendations.
43
+ - Separate facts from assumptions before writing recommendations or acceptance criteria.
44
+ - Do not invent business rules, permissions, thresholds, priorities, stakeholder intent, or success metrics.
45
+ - Distinguish must-have behavior from optional, deferred, or out-of-scope behavior.
46
+ - Expose conflicting requirements and missing actors, states, data, error behavior, and ownership.
47
+ - Make acceptance criteria observable and testable; use Given/When/Then when it improves precision, not as ceremony.
48
+ - Identify who can trigger, view, approve, modify, retry, cancel, or recover each important behavior.
49
+ - State evidence and source for repository-derived requirements; never present current implementation as requested product behavior.
50
+ - A bounded assumption is allowed only when it cannot change business meaning; otherwise ask an open question.
51
+ - Present unresolved items under an explicit `Open questions` heading when stakeholder input is required.
52
+ - Do not claim a requirement is ready merely because a happy path is described.
53
+
54
+ ## Workflow
55
+
56
+ ### Phase 1 — establish the source of truth
57
+
58
+ - Read the supplied material first and quote terminology faithfully in the analysis.
59
+ - Inspect only relevant README, docs, API schemas, types, models, state machines, navigation, flags, validation code, and tests when implementation context matters.
60
+ - Build a source ledger: `source`, `statement`, `kind` (`fact`, `observed`, `assumption`, `open question`), and confidence.
61
+
62
+ ### Phase 2 — decompose behavior
63
+
64
+ - Identify actor, trigger, precondition, input, system behavior, observable result, postcondition, and failure/recovery behavior.
65
+ - Split functional behavior from non-functional constraints such as latency, availability, privacy, accessibility, localization, auditability, and compatibility.
66
+ - Identify business rules, validation rules, permissions, data ownership, dependencies, constraints, non-goals, and rollout assumptions.
67
+ - Model the happy path, alternate flows, negative flows, edge cases, and boundary values before writing a readiness verdict.
68
+
69
+ ### Phase 3 — check consistency and readiness
70
+
71
+ - Compare statements for contradictions in terminology, roles, states, timing, data shape, priority, and acceptance evidence.
72
+ - Trace each important requirement to its source, actor, affected surface, and acceptance evidence.
73
+ - Mark unresolved decisions with owner/context when known; do not silently choose between competing interpretations.
74
+ - Classify readiness as `ready`, `ready with explicit assumptions`, or `not ready`; explain the blockers.
75
+
76
+ ## Decision points
77
+
78
+ - Use a user story when the work is actor/outcome-oriented; use a use case when alternate flows, permissions, or state transitions dominate.
79
+ - Use a requirement matrix when there are multiple actors, surfaces, priorities, or traceability links.
80
+ - Use Given/When/Then for stateful, conditional, or externally observable behavior; use concise assertions for simple rules.
81
+ - Treat an unspecified failure path as a gap, not as permission to choose a fallback.
82
+ - Treat current code as evidence of existing behavior, never as proof that the requested behavior is correct.
83
+ - If a requirement affects native/web/backend surfaces differently, split acceptance by surface rather than hiding platform differences.
84
+
85
+ ## Stack detection
86
+
87
+ - Web/Next.js: distinguish browser/server/edge behavior, build-time versus runtime configuration, URL/cache semantics, accessibility, and responsive boundaries.
88
+ - Backend/API/Node: inspect request validation, authorization, idempotency, timeouts, persistence, versioned contracts, migrations, and observability.
89
+ - React Native: include permission states, app lifecycle, deep links, OS versions, offline/retry behavior, push flows, and native bridge boundaries.
90
+ - Flutter: include widget/state lifecycle, platform channels, isolates, plugin behavior, generated platform files, and Android/iOS differences.
91
+ - iOS/Android: identify permission prompts, background/foreground transitions, store constraints, OS support, and native configuration.
92
+ - Tauri/Electron: identify frontend/native command boundaries, capability/permission policy, serialization, packaging, and desktop OS differences.
93
+
94
+ ## Failure modes
95
+
96
+ - Rephrasing a vague request without identifying what is still unknown.
97
+ - Calling an implementation detail a business requirement or treating an existing bug as intended behavior.
98
+ - Writing acceptance criteria that repeat the action but cannot distinguish pass from failure.
99
+ - Omitting denied, expired, duplicate, offline, timeout, cancellation, partial, or concurrent paths.
100
+ - Combining actors or states because the happy path is shorter.
101
+ - Adding invented numeric limits, roles, retention rules, or error messages.
102
+ - Producing a giant matrix with fake precision and no traceable source.
103
+
104
+ ## Stop conditions
105
+
106
+ - Stop before declaring readiness when a missing decision changes scope, authorization, money/data integrity, safety, or externally visible behavior.
107
+ - Stop before implementation when facts and assumptions cannot be separated from the supplied evidence.
108
+ - Stop when the user asks for source mutation, ticket updates, or release actions; obtain explicit scope or hand off to the appropriate skill.
109
+ - Stop when repository evidence conflicts with the supplied requirement and report both versions.
110
+
111
+ ## Escalation conditions
112
+
113
+ - Escalate conflicting stakeholder requirements with the exact conflict and the decision owner if known.
114
+ - Escalate missing authorization, data ownership, privacy, compliance, money, deletion, or irreversible-action rules.
115
+ - Escalate a missing platform/version decision when acceptance differs across web, backend, mobile, or desktop.
116
+ - Escalate an implementation-readiness blocker rather than hiding it in a recommendation.
117
+
118
+ ## Verification
119
+
120
+ - Verify each requirement has an observable result, actor, source/evidence, and relevant failure behavior.
121
+ - Check that acceptance criteria cover happy, negative, alternate, edge, and boundary behavior where applicable.
122
+ - Trace requirements to impacted surfaces, states, data, dependencies, tests, and open decisions.
123
+ - Re-read the final artifact for invented rules, unlabelled assumptions, contradictions, fake IDs, and terminology drift.
124
+ - If repository evidence was inspected, list the exact files or commands used; do not imply execution of tests unless it occurred.
125
+
126
+ ## Output contract
127
+
128
+ ### Requirement review
129
+
130
+ 1. Summary and scope
131
+ 2. Known requirements, labelled by source
132
+ 3. Missing or ambiguous requirements
133
+ 4. Actors, permissions, states, and business rules
134
+ 5. Happy, alternate, negative, edge, and boundary flows
135
+ 6. Data, dependencies, constraints, assumptions, and out-of-scope items
136
+ 7. Risks, conflicts, questions, and decisions required
137
+ 8. Traceability and readiness verdict
138
+
139
+ ### User stories and use cases
140
+
141
+ - Use `As a ... I want ... So that ...` only when it clarifies actor/value.
142
+ - Add preconditions, trigger, main flow, alternate/negative flows, postconditions, and unresolved questions for a use case.
143
+
144
+ ### Acceptance criteria
145
+
146
+ - Prefer a compact criterion per observable behavior: `Given`, `When`, `Then`, plus examples or boundary values where needed.
147
+ - Include denial, validation, duplicate, timeout, cancellation, offline, and recovery criteria when the requirement implies them.
148
+
149
+ ### Requirement matrix
150
+
151
+ | ID | Requirement | Type | Priority | Actor | Acceptance evidence | Dependencies | Status/ambiguity |
152
+ | --- | --- | --- | --- | --- | --- | --- | --- |
153
+ | source ID or analysis ID | observable behavior | functional/NFR/rule | supplied or unknown | actor/role | testable result | known dependency | ready/gap |
154
+
155
+ ## Anti-patterns
156
+
157
+ - “The user probably means…” without a labelled assumption or question.
158
+ - Acceptance criteria that say “works correctly” or “is user-friendly” without observable evidence.
159
+ - A plan disguised as requirements: file list, implementation sequence, or chosen library without a source requirement.
160
+ - A repository audit disguised as product intent.
161
+ - Gherkin for every sentence when a short observable rule is clearer.
162
+ - Claiming sign-off, acceptance, or stakeholder agreement that was not supplied.
163
+
164
+ ## Example
165
+
166
+ **Request:** “Let customers retry a failed transfer.”
167
+
168
+ - **Fact:** the request names a retry action; it does not define when a transfer is actually failed.
169
+ - **Observed:** the API exposes an idempotency key in `POST /transfers` (source: API schema).
170
+ - **Open question:** can a timed-out request be retried, and who may retry a transfer created by another role?
171
+ - **Acceptance criterion:** Given a transfer is in the documented retryable state, when the authorised actor retries with the same idempotency key, then the system returns the original transfer outcome and does not create a duplicate debit.
172
+ - **Readiness:** not ready until retryable states, authorization, timeout semantics, and user-visible status are decided.
@@ -0,0 +1,14 @@
1
+ {
2
+ "version": 1,
3
+ "skill": "showdar-requirements",
4
+ "datasets": [
5
+ {
6
+ "file": "data/requirements-patterns.csv",
7
+ "idField": "id",
8
+ "requiredColumns": ["id", "category", "prompt", "evidence", "output", "risk", "tags", "reference", "stack"],
9
+ "searchableFields": ["category", "prompt", "evidence", "output", "risk", "tags"],
10
+ "filterFields": ["category", "stack"],
11
+ "reference": "references/analysis-guide.md"
12
+ }
13
+ ]
14
+ }
@@ -0,0 +1,11 @@
1
+ id,category,prompt,evidence,output,risk,tags,reference,stack
2
+ functional-decomposition,functional,What actor trigger input and observable result define this behavior?,ticket examples API contract current flow,functional requirement with actor trigger input result and failure behavior,implementation starts from vague prose,functional requirement,references/analysis-guide.md,*
3
+ business-rule,business-rule,Which rule decides eligibility permission amount or state transition?,policy source domain code approval matrix,explicit rule with source owner and unresolved decision,invented policy changes product meaning,business rules,references/analysis-guide.md,*
4
+ acceptance-criteria,acceptance,Can the behavior be proven with observable Given When Then evidence?,test fixtures API response UI state,compact testable acceptance criteria,works correctly cannot distinguish pass from failure,acceptance criteria,references/analysis-guide.md,*
5
+ ambiguity,ambiguity,Which missing or ambiguous requirement has an unspecified actor state timing threshold or error behavior?,contradictory ticket terms missing examples repository mismatch,open question or labelled bounded assumption,team silently chooses incompatible behavior,ambiguity missing decision,references/analysis-guide.md,*
6
+ flow-edge-cases,flow,Which alternate negative edge and boundary flows can change the outcome?,state machine validation limits timeout retry cancellation offline,flow matrix with preconditions and postconditions,happy path hides duplicate partial and recovery defects,negative path boundary state transition,references/analysis-guide.md,*
7
+ state-transition,state,What states and events can this feature enter leave or refuse?,model reducer persistence API tests,state transition table with guards and terminal behavior,invalid transitions corrupt data or confuse UI,state transitions,references/analysis-guide.md,*
8
+ mobile-requirements,platform,Which permission lifecycle deep-link OS and offline behavior is required on mobile?,React Native or Flutter navigation permissions platform tests,platform-specific acceptance split by OS and lifecycle,web assumptions fail on background or denied permission,mobile permissions lifecycle offline,references/analysis-guide.md,react-native;flutter
9
+ api-requirements,platform,Which validation authorization idempotency timeout and compatibility rules cross the API boundary?,OpenAPI types handlers integration tests,API requirement with old-client and failure contract,client and server disagree on retry or error shape,API compatibility idempotency,references/analysis-guide.md,node
10
+ desktop-requirements,platform,What crosses the desktop frontend native command and packaging boundary?,Tauri or Electron commands capabilities serialization,desktop requirement with permission and payload evidence,frontend appears successful while native command rejects,desktop IPC permissions,references/analysis-guide.md,tauri;electron
11
+ non-functional,non-functional,What measurable quality constraint applies to latency availability privacy accessibility localization or compatibility?,SLO accessibility target supported OS browser matrix,non-functional requirement with metric scope and evidence,qualitative non-functional claims cannot be verified,NFR quality constraint,references/analysis-guide.md,*
@@ -0,0 +1,30 @@
1
+ # Requirements analysis guide
2
+
3
+ Use this reference when a request spans several actors, states, platforms, or source documents.
4
+
5
+ ## Evidence ledger
6
+
7
+ Keep each statement in one of four buckets:
8
+
9
+ - **Supplied fact:** directly stated by the user or source document.
10
+ - **Repository observation:** current behavior found in code, schema, config, or tests.
11
+ - **Bounded assumption:** safe working interpretation that does not decide business meaning.
12
+ - **Open decision:** missing stakeholder choice that can change behavior, scope, risk, or acceptance.
13
+
14
+ Never merge these buckets in a polished summary.
15
+
16
+ ## Flow coverage
17
+
18
+ For each meaningful action, check:
19
+
20
+ 1. actor and permission;
21
+ 2. precondition and current state;
22
+ 3. trigger and input validation;
23
+ 4. happy result and postcondition;
24
+ 5. alternate result, denial, duplicate, timeout, cancellation, offline, and retry behavior;
25
+ 6. boundary values, concurrent requests, partial completion, and recovery;
26
+ 7. evidence that can prove the result.
27
+
28
+ ## Traceability
29
+
30
+ Use source IDs when available. Otherwise use a local analysis label and mark it as such. Link each requirement to the affected surface, business rule, acceptance criterion, dependency, and unresolved decision. A matrix is useful only when these links reduce ambiguity.