devendra-skill-package 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (223) hide show
  1. package/.github/skills/boiler-project-generator/SKILL.md +103 -0
  2. package/.github/skills/boiler-project-generator/assets/templates/android/README.md +3 -0
  3. package/.github/skills/boiler-project-generator/assets/templates/angular/README.md +3 -0
  4. package/.github/skills/boiler-project-generator/assets/templates/flutter/README.md +3 -0
  5. package/.github/skills/boiler-project-generator/assets/templates/ios/README.md +3 -0
  6. package/.github/skills/boiler-project-generator/assets/templates/react/README.md +3 -0
  7. package/.github/skills/boiler-project-generator/assets/templates/react-native/README.md +3 -0
  8. package/.github/skills/boiler-project-generator/assets/templates/react-native/api-setup.ts +76 -0
  9. package/.github/skills/boiler-project-generator/assets/templates/react-native/component-primary-button.tsx +29 -0
  10. package/.github/skills/boiler-project-generator/assets/templates/react-native/env-config.env +4 -0
  11. package/.github/skills/boiler-project-generator/assets/templates/react-native/feature-auth-screen.tsx +45 -0
  12. package/.github/skills/boiler-project-generator/assets/templates/react-native/feature-dashboard-screen.tsx +45 -0
  13. package/.github/skills/boiler-project-generator/assets/templates/react-native/feature-profile-screen.tsx +45 -0
  14. package/.github/skills/boiler-project-generator/assets/templates/react-native/hook-use-app-boot.ts +11 -0
  15. package/.github/skills/boiler-project-generator/assets/templates/react-native/navigation-setup.tsx +25 -0
  16. package/.github/skills/boiler-project-generator/assets/templates/react-native/project-structure.md +24 -0
  17. package/.github/skills/boiler-project-generator/assets/templates/react-native/redux-hooks.ts +5 -0
  18. package/.github/skills/boiler-project-generator/assets/templates/react-native/redux-session-slice.ts +29 -0
  19. package/.github/skills/boiler-project-generator/assets/templates/react-native/redux-store.ts +15 -0
  20. package/.github/skills/boiler-project-generator/assets/templates/react-native/theme-index.ts +23 -0
  21. package/.github/skills/boiler-project-generator/assets/templates/react-native/utils-helpers.ts +7 -0
  22. package/.github/skills/boiler-project-generator/metadata.yaml +29 -0
  23. package/.github/skills/boiler-project-generator/references/android.md +19 -0
  24. package/.github/skills/boiler-project-generator/references/angular.md +14 -0
  25. package/.github/skills/boiler-project-generator/references/flutter.md +17 -0
  26. package/.github/skills/boiler-project-generator/references/ios.md +17 -0
  27. package/.github/skills/boiler-project-generator/references/react-native.md +103 -0
  28. package/.github/skills/boiler-project-generator/references/react.md +17 -0
  29. package/.github/skills/boiler-project-generator/scripts/angular.js +43 -0
  30. package/.github/skills/boiler-project-generator/scripts/generate-project.mjs +107 -0
  31. package/.github/skills/boiler-project-generator/scripts/init.js +105 -0
  32. package/.github/skills/boiler-project-generator/scripts/react-native.js +1041 -0
  33. package/.github/skills/boiler-project-generator/scripts/react.js +32 -0
  34. package/.github/skills/clean-architecture-generator/SKILL.md +235 -0
  35. package/.github/skills/clean-architecture-generator/references/architecture-core.md +126 -0
  36. package/.github/skills/clean-architecture-generator/references/platform-angular.md +374 -0
  37. package/.github/skills/clean-architecture-generator/references/platform-flutter.md +366 -0
  38. package/.github/skills/clean-architecture-generator/references/platform-react-native.md +590 -0
  39. package/.github/skills/clean-architecture-generator/references/platform-react.md +261 -0
  40. package/.github/skills/code-test-coverage-analyzer/SKILL.md +1358 -0
  41. package/.github/skills/code-test-coverage-analyzer/assets/config-questionnaire.md +118 -0
  42. package/.github/skills/code-test-coverage-analyzer/assets/conflict-resolution-protocol.md +99 -0
  43. package/.github/skills/code-test-coverage-analyzer/assets/coverage-calculation-rules.md +294 -0
  44. package/.github/skills/code-test-coverage-analyzer/assets/multi-strategy-search.md +145 -0
  45. package/.github/skills/code-test-coverage-analyzer/assets/output-file-contracts.md +651 -0
  46. package/.github/skills/code-test-coverage-analyzer/assets/status-definitions.md +273 -0
  47. package/.github/skills/code-test-coverage-analyzer/examples/example-invocation.md +208 -0
  48. package/.github/skills/code-test-coverage-analyzer/references/android-patterns.md +229 -0
  49. package/.github/skills/code-test-coverage-analyzer/references/angular-patterns.md +177 -0
  50. package/.github/skills/code-test-coverage-analyzer/references/backend-patterns.md +383 -0
  51. package/.github/skills/code-test-coverage-analyzer/references/flutter-patterns.md +254 -0
  52. package/.github/skills/code-test-coverage-analyzer/references/ios-patterns.md +228 -0
  53. package/.github/skills/code-test-coverage-analyzer/references/react-native-patterns.md +431 -0
  54. package/.github/skills/code-test-coverage-analyzer/references/react-patterns.md +206 -0
  55. package/.github/skills/code-test-coverage-analyzer/scripts/detect-platform.ps1 +261 -0
  56. package/.github/skills/code-test-coverage-analyzer/scripts/scan-repository.ps1 +242 -0
  57. package/.github/skills/code-test-coverage-analyzer/templates/brd-compliance-row.md +107 -0
  58. package/.github/skills/code-test-coverage-analyzer/templates/test-case-row.md +130 -0
  59. package/.github/skills/code-test-coverage-analyzer/templates/user-story-compliance-row.md +170 -0
  60. package/.github/skills/custom-font-integrator/SKILL.md +373 -0
  61. package/.github/skills/custom-font-integrator/assets/FontTestScreen.js +150 -0
  62. package/.github/skills/custom-font-integrator/references/example-info-plist.xml +21 -0
  63. package/.github/skills/custom-font-integrator/scripts/setup-fonts.sh +99 -0
  64. package/.github/skills/encryption-decryption-utility/Instructions.md +282 -0
  65. package/.github/skills/encryption-decryption-utility/README.md +222 -0
  66. package/.github/skills/encryption-decryption-utility/SKILL.md +645 -0
  67. package/.github/skills/encryption-decryption-utility/assets/encryption-config-template.json +13 -0
  68. package/.github/skills/encryption-decryption-utility/assets/platform-matrix.json +180 -0
  69. package/.github/skills/encryption-decryption-utility/metadata.yaml +51 -0
  70. package/.github/skills/encryption-decryption-utility/references/android-crypto.md +157 -0
  71. package/.github/skills/encryption-decryption-utility/references/angular-crypto.md +130 -0
  72. package/.github/skills/encryption-decryption-utility/references/approach-1-webcrypto.md +95 -0
  73. package/.github/skills/encryption-decryption-utility/references/approach-2-rsa-aes-cbc.md +111 -0
  74. package/.github/skills/encryption-decryption-utility/references/approach-3-aes-sharedkey.md +114 -0
  75. package/.github/skills/encryption-decryption-utility/references/architecture.md +233 -0
  76. package/.github/skills/encryption-decryption-utility/references/backend-alignment.md +506 -0
  77. package/.github/skills/encryption-decryption-utility/references/dependency-guidance.md +234 -0
  78. package/.github/skills/encryption-decryption-utility/references/ec-implementation.md +832 -0
  79. package/.github/skills/encryption-decryption-utility/references/error-handling-playbook.md +234 -0
  80. package/.github/skills/encryption-decryption-utility/references/flutter-crypto.md +105 -0
  81. package/.github/skills/encryption-decryption-utility/references/ios-crypto.md +338 -0
  82. package/.github/skills/encryption-decryption-utility/references/native-rsa-implementation.md +373 -0
  83. package/.github/skills/encryption-decryption-utility/references/node-crypto.md +86 -0
  84. package/.github/skills/encryption-decryption-utility/references/react-crypto.md +105 -0
  85. package/.github/skills/encryption-decryption-utility/references/react-native-crypto.md +1001 -0
  86. package/.github/skills/encryption-decryption-utility/references/react-web-crypto.md +668 -0
  87. package/.github/skills/encryption-decryption-utility/references/security-checklist.md +176 -0
  88. package/.github/skills/encryption-decryption-utility/references/web-crypto.md +74 -0
  89. package/.github/skills/encryption-decryption-utility/scripts/detect.js +128 -0
  90. package/.github/skills/encryption-decryption-utility/scripts/install.js +1713 -0
  91. package/.github/skills/encryption-decryption-utility/scripts/setup.js +800 -0
  92. package/.github/skills/encryption-decryption-utility/template.md +241 -0
  93. package/.github/skills/encryption-decryption-utility/templates/config-questionnaire.md +467 -0
  94. package/.github/skills/encryption-decryption-utility/templates/delivery-checklist.md +206 -0
  95. package/.github/skills/encryption-decryption-utility/templates/implementation-plan.md +304 -0
  96. package/.github/skills/feature-generator/SKILL.MD +2741 -0
  97. package/.github/skills/feature-generator/assets/fingerprint-schema.json +385 -0
  98. package/.github/skills/feature-generator/assets/spec-template.md +172 -0
  99. package/.github/skills/feature-generator/assets/transform-rules.json +82 -0
  100. package/.github/skills/feature-generator/references/api-envelope-patterns.md +327 -0
  101. package/.github/skills/feature-generator/references/screen-logic-patterns.md +399 -0
  102. package/.github/skills/feature-generator/references/state-library-patterns.md +464 -0
  103. package/.github/skills/figma-ui-mapper/README.md +34 -0
  104. package/.github/skills/figma-ui-mapper/SKILL.md +101 -0
  105. package/.github/skills/figma-ui-mapper/assets/templates/component-map-template.md +30 -0
  106. package/.github/skills/figma-ui-mapper/assets/templates/generation-report-template.md +49 -0
  107. package/.github/skills/figma-ui-mapper/metadata.yaml +22 -0
  108. package/.github/skills/figma-ui-mapper/references/android.md +11 -0
  109. package/.github/skills/figma-ui-mapper/references/angular.md +18 -0
  110. package/.github/skills/figma-ui-mapper/references/capacitor.md +18 -0
  111. package/.github/skills/figma-ui-mapper/references/common.md +23 -0
  112. package/.github/skills/figma-ui-mapper/references/expo.md +18 -0
  113. package/.github/skills/figma-ui-mapper/references/flutter.md +18 -0
  114. package/.github/skills/figma-ui-mapper/references/frameworks/angular/rules.md +23 -0
  115. package/.github/skills/figma-ui-mapper/references/frameworks/capacitor/rules.md +23 -0
  116. package/.github/skills/figma-ui-mapper/references/frameworks/expo/rules.md +23 -0
  117. package/.github/skills/figma-ui-mapper/references/frameworks/flutter/rules.md +23 -0
  118. package/.github/skills/figma-ui-mapper/references/frameworks/ionic/rules.md +23 -0
  119. package/.github/skills/figma-ui-mapper/references/frameworks/kotlin-multiplatform/rules.md +23 -0
  120. package/.github/skills/figma-ui-mapper/references/frameworks/native-android/rules.md +23 -0
  121. package/.github/skills/figma-ui-mapper/references/frameworks/native-ios/rules.md +23 -0
  122. package/.github/skills/figma-ui-mapper/references/frameworks/next/rules.md +23 -0
  123. package/.github/skills/figma-ui-mapper/references/frameworks/nuxt/rules.md +23 -0
  124. package/.github/skills/figma-ui-mapper/references/frameworks/react/rules.md +19 -0
  125. package/.github/skills/figma-ui-mapper/references/frameworks/react-native/rules.md +23 -0
  126. package/.github/skills/figma-ui-mapper/references/frameworks/svelte/rules.md +23 -0
  127. package/.github/skills/figma-ui-mapper/references/frameworks/vue/rules.md +23 -0
  128. package/.github/skills/figma-ui-mapper/references/ionic.md +18 -0
  129. package/.github/skills/figma-ui-mapper/references/ios.md +11 -0
  130. package/.github/skills/figma-ui-mapper/references/kotlin-multiplatform.md +18 -0
  131. package/.github/skills/figma-ui-mapper/references/native-android.md +18 -0
  132. package/.github/skills/figma-ui-mapper/references/native-ios.md +18 -0
  133. package/.github/skills/figma-ui-mapper/references/next.md +18 -0
  134. package/.github/skills/figma-ui-mapper/references/nuxt.md +18 -0
  135. package/.github/skills/figma-ui-mapper/references/react-figma-guideline.md +21 -0
  136. package/.github/skills/figma-ui-mapper/references/react-native.md +18 -0
  137. package/.github/skills/figma-ui-mapper/references/react.md +18 -0
  138. package/.github/skills/figma-ui-mapper/references/script-usage.md +46 -0
  139. package/.github/skills/figma-ui-mapper/references/svelte.md +18 -0
  140. package/.github/skills/figma-ui-mapper/references/vue.md +18 -0
  141. package/.github/skills/figma-ui-mapper/references/workflow.md +74 -0
  142. package/.github/skills/figma-ui-mapper/scripts/generate-page-through-figma.js +635 -0
  143. package/.github/skills/figma-ui-mapper/scripts/generate-react-page-through-figma.js +4 -0
  144. package/.github/skills/frontend-task-breakdown/SKILL.md +734 -0
  145. package/.github/skills/md-file-converter/SKILL.md +291 -0
  146. package/.github/skills/md-file-converter/config/formats.json +114 -0
  147. package/.github/skills/md-file-converter/extractors/extract-docx.sh +120 -0
  148. package/.github/skills/md-file-converter/extractors/extract-eml.py +108 -0
  149. package/.github/skills/md-file-converter/extractors/extract-pdf.sh +97 -0
  150. package/.github/skills/md-file-converter/extractors/extract-pptx.py +143 -0
  151. package/.github/skills/md-file-converter/extractors/extract-xlsx.py +175 -0
  152. package/.github/skills/md-file-converter/scripts/check-tools.sh +47 -0
  153. package/.github/skills/md-file-converter/scripts/extract-archive.sh +83 -0
  154. package/.github/skills/md-file-converter/scripts/extract-ocr.sh +77 -0
  155. package/.github/skills/md-file-converter/scripts/get-metadata.sh +57 -0
  156. package/.github/skills/md-file-converter/templates/output.md +73 -0
  157. package/.github/skills/md-file-converter/templates/unsupported-object.md +6 -0
  158. package/.github/skills/mockAPI-contract-generator/SKILL.md +607 -0
  159. package/.github/skills/test-case-validator/CHANGELOG.md +155 -0
  160. package/.github/skills/test-case-validator/CONFIGURATION.md +130 -0
  161. package/.github/skills/test-case-validator/EXAMPLES.md +50 -0
  162. package/.github/skills/test-case-validator/QUALITY_SCORING.md +98 -0
  163. package/.github/skills/test-case-validator/README.md +111 -0
  164. package/.github/skills/test-case-validator/REPORT_TEMPLATE.md +116 -0
  165. package/.github/skills/test-case-validator/SKILL.md +209 -0
  166. package/.github/skills/test-case-validator/SYSTEM_PROMPT.md +127 -0
  167. package/.github/skills/test-case-validator/TRACEABILITY_ENGINE.md +152 -0
  168. package/.github/skills/test-case-validator/VALIDATION_RULES.md +411 -0
  169. package/.github/skills/test-case-validator/config/default.config.yaml +62 -0
  170. package/.github/skills/test-case-validator/docs/ARCHITECTURE.md +66 -0
  171. package/.github/skills/test-case-validator/docs/EXTENDING.md +85 -0
  172. package/.github/skills/test-case-validator/docs/FAQ.md +88 -0
  173. package/.github/skills/test-case-validator/docs/VERSIONING.md +55 -0
  174. package/.github/skills/test-case-validator/examples/example-1-manual-qa-ecommerce/input-brd.md +43 -0
  175. package/.github/skills/test-case-validator/examples/example-1-manual-qa-ecommerce/input-test-cases.csv +9 -0
  176. package/.github/skills/test-case-validator/examples/example-1-manual-qa-ecommerce/input-user-story.md +29 -0
  177. package/.github/skills/test-case-validator/examples/example-1-manual-qa-ecommerce/output-report.md +303 -0
  178. package/.github/skills/test-case-validator/examples/example-2-automated-frontend-suite/input-spec.md +43 -0
  179. package/.github/skills/test-case-validator/examples/example-2-automated-frontend-suite/input-test-files-index.md +56 -0
  180. package/.github/skills/test-case-validator/examples/example-2-automated-frontend-suite/output-report.md +274 -0
  181. package/.github/skills/test-case-validator/prompts/00-applicability-resolution.md +61 -0
  182. package/.github/skills/test-case-validator/prompts/01-extraction-user-story.md +58 -0
  183. package/.github/skills/test-case-validator/prompts/02-extraction-brd.md +64 -0
  184. package/.github/skills/test-case-validator/prompts/03-extraction-test-cases.md +92 -0
  185. package/.github/skills/test-case-validator/prompts/04-traceability-matrix.md +41 -0
  186. package/.github/skills/test-case-validator/prompts/05-coverage-analysis.md +46 -0
  187. package/.github/skills/test-case-validator/prompts/06-missing-scenario-detection.md +32 -0
  188. package/.github/skills/test-case-validator/prompts/07-duplicate-detection.md +36 -0
  189. package/.github/skills/test-case-validator/prompts/08-risk-analysis.md +39 -0
  190. package/.github/skills/test-case-validator/prompts/09-gated-wiring-validation.md +53 -0
  191. package/.github/skills/test-case-validator/prompts/10-observation-report.md +56 -0
  192. package/.github/skills/test-case-validator/prompts/11-final-report-assembly.md +57 -0
  193. package/.github/skills/test-case-validator/templates/coverage-table.md +25 -0
  194. package/.github/skills/test-case-validator/templates/executive-summary.md +38 -0
  195. package/.github/skills/test-case-validator/templates/final-summary-block.md +87 -0
  196. package/.github/skills/test-case-validator/templates/observation-entry.md +41 -0
  197. package/.github/skills/test-case-validator/templates/rtm-row.md +25 -0
  198. package/.github/skills/validation-engine-builder/README.md +50 -0
  199. package/.github/skills/validation-engine-builder/SKILL.md +241 -0
  200. package/.github/skills/validation-engine-builder/references/core.md +158 -0
  201. package/.github/skills/validation-engine-builder/references/platform-angular.md +166 -0
  202. package/.github/skills/validation-engine-builder/references/platform-flutter.md +118 -0
  203. package/.github/skills/validation-engine-builder/references/platform-react-native.md +170 -0
  204. package/.github/skills/validation-engine-builder/references/platform-react.md +94 -0
  205. package/.github/skills/validation-engine-builder/scripts/apply-to-project.js +80 -0
  206. package/.github/skills/validation-engine-builder/scripts/generate-angular.js +271 -0
  207. package/.github/skills/validation-engine-builder/scripts/generate-flutter.js +298 -0
  208. package/.github/skills/validation-engine-builder/scripts/generate-react-native.js +217 -0
  209. package/.github/skills/validation-engine-builder/scripts/generate-react.js +163 -0
  210. package/.github/skills/validation-engine-builder/scripts/install-deps.js +53 -0
  211. package/.github/skills/validation-engine-builder/scripts/shared/detect-platform.js +68 -0
  212. package/.github/skills/validation-engine-builder/scripts/shared/npm-deps.js +103 -0
  213. package/.github/skills/validation-engine-builder/scripts/shared/rhf-hook.js +43 -0
  214. package/.github/skills/validation-engine-builder/scripts/shared/ts-messages-regex.js +62 -0
  215. package/.github/skills/validation-engine-builder/scripts/shared/util.js +44 -0
  216. package/.github/skills/validation-engine-builder/scripts/shared/yup-schemas.js +80 -0
  217. package/.github/skills/validation-engine-builder/template.md +73 -0
  218. package/.github/skills/validation-engine-builder/templates/messages.json +22 -0
  219. package/.github/skills/validation-engine-builder/templates/regex.json +16 -0
  220. package/.github/skills/validation-engine-builder/templates/schemas.json +48 -0
  221. package/bin/index.js +145 -0
  222. package/package.json +22 -0
  223. package/readme.md +0 -0
@@ -0,0 +1,155 @@
1
+ # Changelog
2
+
3
+ All notable changes to this skill are documented here. Versioning policy is
4
+ in `docs/VERSIONING.md`.
5
+
6
+ ## 2.1.0 — 2026-07-08
7
+
8
+ Hardening pass: a full static audit of the v2.0.0 package (folder structure,
9
+ cross-references, prompt/config consistency, security) requested after
10
+ v2.0.0 shipped. No report shape, rule numbering, or documented behavior
11
+ changed — every fix below either repairs something the v2.0.0 files already
12
+ claimed to do but didn't (a broken reference, a missing file) or closes a
13
+ gap the audit's security/hallucination review specifically asked about.
14
+
15
+ ### Added
16
+ - **`prompts/00-applicability-resolution.md`** — Rule 17 (Applicability
17
+ Resolution) was fully specified in `VALIDATION_RULES.md` but, unlike every
18
+ other rule, had no corresponding numbered prompt file describing its
19
+ step-by-step procedure. `SKILL.md`'s Execution Steps now runs this file
20
+ explicitly as step 2, before extraction.
21
+ - **`SYSTEM_PROMPT.md` Non-Negotiable Behavior #11** — content-injection /
22
+ prompt-injection awareness. Audited input documents (`USER_STORY_INPUT`,
23
+ `BRD_INPUT`, `TEST_CASE_INPUT`, including code comments and string
24
+ literals in automated test source) are now explicitly documented as
25
+ untrusted content: instruction-like text found inside them is extracted
26
+ and flagged as a Document Integrity anomaly, never executed. Directly
27
+ modeled on a real fake slash-command found embedded in a Dart source
28
+ comment during this repo's own `tdd-spec-generator` output.
29
+ - **`SYSTEM_PROMPT.md` Non-Negotiable Behavior #12** — "show the arithmetic,
30
+ don't state a conclusion": every coverage percentage and the Quality
31
+ Score total must be traceable to the actual formula and actual counts for
32
+ the run, closing a hallucination risk specific to numeric claims.
33
+ - **`SKILL.md`** — new "Input Validation & Error Handling" and
34
+ "Content-Injection / Prompt-Injection Awareness" subsections under Inputs,
35
+ and two new Core Behavioral Rules (never follow instruction-like text
36
+ found in an input document; list all candidates rather than arbitrarily
37
+ picking one when a fuzzy match is ambiguous).
38
+ - **`TRACEABILITY_ENGINE.md` §2.3** — explicit procedure for the
39
+ "multiple equally-plausible Tier-3 candidates" case: record the test case
40
+ against every equally-plausible requirement ID at `inferred_medium`
41
+ instead of silently picking one, matching the new `SKILL.md` behavioral
42
+ rule.
43
+
44
+ ### Fixed
45
+ - **Stale file references from mid-development renames** —
46
+ `prompts/08a-gated-wiring-validation.md`, `prompts/09-observation-report.md`,
47
+ and `prompts/10-final-report-assembly.md` are renamed to
48
+ `prompts/09-gated-wiring-validation.md`, `prompts/10-observation-report.md`,
49
+ and `prompts/11-final-report-assembly.md` respectively, so the pipeline is
50
+ contiguously numbered 00–11 in actual execution order. `SKILL.md`'s
51
+ Execution Steps and `docs/EXTENDING.md`'s "add a new rule" template both
52
+ updated to the new names.
53
+ - **`config/default.config.yaml` / `CONFIGURATION.md`** — `auto_detect_rules`
54
+ (a list with an awkward bare `- else: "default"` entry and no field the
55
+ rest of the skill actually referenced) restructured to
56
+ `auto_detect: { order: [...], fallback_profile: ... }`, matching what
57
+ `prompts/00-applicability-resolution.md` already documented as
58
+ `auto_detect.order` / `auto_detect.fallback_profile`. `docs/EXTENDING.md`
59
+ updated to reference the new field names.
60
+ - **`QUALITY_SCORING.md` worked example** — removed two parenthetical asides
61
+ referencing "a report you may have seen elsewhere" and an unresolved
62
+ 4-vs-5 point discrepancy; the worked example's arithmetic is unchanged,
63
+ only the confusing self-referential commentary was removed.
64
+ - **`VALIDATION_RULES.md` Rule 15** — no longer restates the scoring
65
+ weights inline (they had already drifted slightly out of sync with
66
+ `QUALITY_SCORING.md`'s wording); now points to `QUALITY_SCORING.md` as
67
+ the sole source of truth.
68
+ - **`VALIDATION_RULES.md` Rule 17** — added an explicit pointer to
69
+ `prompts/00-applicability-resolution.md`, consistent with how other rules
70
+ reference their procedure file.
71
+ - **`VALIDATION_RULES.md` Rule 8** — added a note on why comparing test
72
+ cases within their mapped requirement (rather than across the whole
73
+ suite) keeps duplicate detection tractable on large suites, and how to
74
+ handle a single requirement with an unusually large mapped-test-case
75
+ count.
76
+ - **`CONFIGURATION.md`** — added an explicit Title-Case-prose ↔
77
+ snake_case-config-key naming-convention note next to the Applicability
78
+ Matrix, where the two naming schemes meet.
79
+
80
+ ## 2.0.0 — 2026-07-08
81
+
82
+ Full restructuring from a single-file prompt into a modular, configurable
83
+ skill package. Motivated by running v1 as a single-file prompt against a
84
+ real, freshly-built React module (`portfolio-v2`) and finding three
85
+ structural problems that a single markdown file couldn't cleanly fix:
86
+
87
+ ### Added
88
+ - **Modular file structure** — `SKILL.md` (entry point), `SYSTEM_PROMPT.md`,
89
+ `VALIDATION_RULES.md`, `TRACEABILITY_ENGINE.md`, `REPORT_TEMPLATE.md`,
90
+ `CONFIGURATION.md`, `QUALITY_SCORING.md`, `EXAMPLES.md`, plus
91
+ `prompts/`, `templates/`, `examples/`, `docs/`, and `config/` directories,
92
+ so a new rule, section, or project profile is an addition rather than an
93
+ edit to one giant file.
94
+ - **`config/default.config.yaml`** — scoring weights, risk thresholds, pass/
95
+ fail thresholds, and project profiles are now data, overridable per run
96
+ via `CONFIG_OVERRIDE_INPUT`, instead of fixed numbers inside the prompt.
97
+ - **Project Profiles + Applicability Matrix** (`CONFIGURATION.md`) — v1
98
+ reported categories like Database Coverage or Localization as 0%/failing
99
+ even for projects that have no database or no localization requirement at
100
+ all. Every category now resolves to `Applicable` or `N/A` (with a stated
101
+ reason) before being scored.
102
+ - **Combined Spec Mode** — v1 required a separate BRD document. Many
103
+ spec-driven repositories (this one included) use a single `spec.md` that
104
+ serves as both user story and BRD. When `BRD_INPUT` is absent, the skill
105
+ now runs in Combined Spec Mode and reports Section 4 as
106
+ `N/A — Combined Spec Mode` instead of a permanent false failure.
107
+ - **Automated test-suite input support** (`prompts/03-extraction-test-cases.md`)
108
+ — v1's Test Case extraction assumed a manually-authored spreadsheet with
109
+ ID/Priority/Severity/Owner columns. It had no defined behavior for
110
+ validating an actual Jest/pytest/JUnit/etc. test suite, which is the norm
111
+ for automation-first engineering teams. v2 extracts test cases directly
112
+ from `describe`/`it` (or language-equivalent) structure, with an explicit
113
+ confidence-tiered requirement-mapping fallback
114
+ (`TRACEABILITY_ENGINE.md` §2) when no inline ID tag exists.
115
+ - **Rule 16 — Gated-Behavior Wiring Validation** — discovered directly from
116
+ auditing a real, well-tested module: a feature flag's *logic* was unit
117
+ tested (5/5 conditions passing), but the screen-level `useEffect` that
118
+ *reads the flag and triggers the feature* had zero test coverage, across
119
+ five separate requirements. Standard traceability (Rule 1) didn't catch
120
+ this because each requirement technically had *a* test — just not one at
121
+ the actual integration point. This is now its own rule with its own report
122
+ section, rather than being invisible inside a passing Rule 1 row.
123
+ - **`docs/` directory** — `ARCHITECTURE.md`, `EXTENDING.md`, `FAQ.md`,
124
+ `VERSIONING.md` — so maintainers can add a rule or profile without
125
+ re-deriving the design rationale from scratch.
126
+ - **Two full worked examples** under `examples/` — one manual-QA e-commerce
127
+ scenario, one automated-frontend-suite scenario — covering both supported
128
+ input shapes end to end.
129
+
130
+ ### Changed
131
+ - Report structure expanded from the original 20 numbered sections to 20 +
132
+ 1 additive section (Gated-Behavior Wiring Report) — see
133
+ `REPORT_TEMPLATE.md` for why it's additive rather than renumbering
134
+ existing sections.
135
+ - Quality Score formula is now fully specified with explicit rounding rules
136
+ (`QUALITY_SCORING.md` § Rounding) — v1 stated weights but not a
137
+ reproducible formula, which meant two runs against the same input could
138
+ plausibly total to different scores depending on interpretation.
139
+ - Duplicate detection (Rule 8) now explicitly distinguishes "Near Duplicate"
140
+ (same objective tested at two layers — intentional, not waste) from true
141
+ redundancy, after v1's wording risked flagging deliberate unit+component
142
+ layered tests as duplicates.
143
+
144
+ ### Fixed
145
+ - v1 had no defined behavior when a document was missing, malformed, or
146
+ internally inconsistent beyond "never make assumptions" — it didn't say
147
+ what to do instead. v2's Rule 1 § Document Integrity sub-check makes this
148
+ an explicit, reportable finding type.
149
+
150
+ ## 1.0.0 — Baseline
151
+
152
+ Original single-file `SKILL.md`: role definition, 15 validation rules,
153
+ 20-section report format, quality scoring out of 100. Assumed a separate
154
+ BRD always exists and that test cases are always manually authored with a
155
+ fixed metadata schema (ID/Priority/Severity/Owner/Tags/Status).
@@ -0,0 +1,130 @@
1
+ # Configuration
2
+
3
+ The skill's behavior — thresholds, weights, which categories apply, what
4
+ counts as PASS — is data, not prose baked into the rules. This file
5
+ documents the schema; `config/default.config.yaml` is the actual file the
6
+ skill loads. Override any field via `CONFIG_OVERRIDE_INPUT` (see `SKILL.md`
7
+ → *Inputs*) without editing the default file.
8
+
9
+ ## Schema
10
+
11
+ ```yaml
12
+ skill:
13
+ name: string
14
+ version: string # semver, must match SKILL.md frontmatter
15
+
16
+ inputs:
17
+ combined_spec_mode: "auto" | true | false
18
+ # auto → true iff BRD_INPUT is absent
19
+ # true → always treat USER_STORY_INPUT as satisfying both roles, even if BRD_INPUT is given (rare; useful for A/B'ing)
20
+ # false → require BRD_INPUT; if absent, stop and ask rather than guessing
21
+ supported_document_formats: [markdown, pdf, docx, xlsx, csv, txt]
22
+ supported_test_case_formats: [manual_spreadsheet, gherkin, automated_source]
23
+
24
+ project_profile:
25
+ active: string # name of the profile below, or "auto"
26
+ auto_detect: # only consulted when active == "auto"
27
+ order: # evaluated top to bottom; first match wins
28
+ - match: "TEST_CASE_INPUT matches a source-code glob (*.test.*, *.spec.*, *Test.*, *_test.*)"
29
+ profile_if_ui_imports_detected: frontend_automated
30
+ profile_if_no_ui_imports: api_only
31
+ - match: "TEST_CASE_INPUT is spreadsheet/CSV/Gherkin"
32
+ profile: manual_qa
33
+ fallback_profile: default # used when no rule in `order` matches
34
+
35
+ profiles:
36
+ default:
37
+ description: "No categories excluded — full Rule 2-11 checklist applies."
38
+ disabled_categories: []
39
+ frontend_automated:
40
+ description: "A frontend module with no owned database or backend deploy, tested via component/unit test source files."
41
+ disabled_categories: [database, browser_compatibility, localization, file_upload_virus_scan]
42
+ test_case_source: automated_source
43
+ manual_qa:
44
+ description: "Traditional manually-authored QA test case suite (spreadsheet/Gherkin), full-stack scope assumed unless stated otherwise."
45
+ disabled_categories: []
46
+ test_case_source: manual_spreadsheet
47
+ api_only:
48
+ description: "A backend service or API with no owned UI."
49
+ disabled_categories: [frontend_ui, accessibility, browser_compatibility, localization, theme, keyboard_navigation]
50
+ test_case_source: automated_source
51
+ full_stack:
52
+ description: "Owns both UI and backend/database — every category applies."
53
+ disabled_categories: []
54
+
55
+ risk_thresholds:
56
+ high: 5 # minimum test cases for a High-risk requirement
57
+ medium: 3
58
+ low: 1
59
+
60
+ scoring_weights: # must sum to 100; see QUALITY_SCORING.md
61
+ requirement_traceability: 25
62
+ coverage: 20
63
+ acceptance_criteria: 15
64
+ frontend_coverage: 10
65
+ backend_coverage: 10
66
+ business_rules: 10
67
+ quality: 5
68
+ duplicates: 5
69
+
70
+ thresholds:
71
+ pass: 95 # score >= this -> PASS
72
+ needs_improvement: 70 # score >= this and < pass -> NEEDS IMPROVEMENT; below -> FAIL
73
+
74
+ rules_enabled:
75
+ gated_behavior_wiring: true # Rule 16 — set false only for very small/simple projects with no conditional logic
76
+ document_integrity_check: true # part of Rule 1
77
+ ```
78
+
79
+ ## Applicability Matrix
80
+
81
+ The concrete table Rule 17 consults. Extend this table (don't hardcode new
82
+ exceptions inside individual rules) when a new project type surfaces a new
83
+ inapplicable category — see `docs/EXTENDING.md`.
84
+
85
+ | Category | `default` | `frontend_automated` | `manual_qa` | `api_only` | `full_stack` |
86
+ |---|---|---|---|---|---|
87
+ | Database Coverage | Applicable | **N/A** — no owned persistence layer | Applicable | Applicable | Applicable |
88
+ | Browser Compatibility | Applicable | **N/A** — unless explicitly in scope | Applicable | **N/A** | Applicable |
89
+ | Localization | Applicable | **N/A** — unless explicitly in scope | Applicable | **N/A** | Applicable |
90
+ | Theme | Applicable | Applicable | Applicable | **N/A** | Applicable |
91
+ | Accessibility | Applicable | Applicable | Applicable | **N/A** — no UI | Applicable |
92
+ | Keyboard Navigation | Applicable | Applicable | Applicable | **N/A** | Applicable |
93
+ | File Upload / Virus Scan | Applicable | **N/A** — unless the module has an upload feature | Applicable | Applicable | Applicable |
94
+ | Frontend UI categories (Rule 2, all) | Applicable | Applicable | Applicable | **N/A** — no UI | Applicable |
95
+ | Session Timeout | Applicable | Applicable | Applicable | Applicable | Applicable |
96
+ | Role-Based Access | Applicable | Applicable (if roles exist) | Applicable | Applicable (if roles exist) | Applicable |
97
+
98
+ A profile's `disabled_categories` list in `config/default.config.yaml` is the
99
+ literal source of truth the skill reads; this table is the human-readable
100
+ view of the same data — keep them in sync when either changes.
101
+
102
+ **Naming convention**: this table's category names are Title Case prose
103
+ ("Browser Compatibility"); `disabled_categories` entries in the config file
104
+ are the matching snake_case key (`browser_compatibility`). The conversion
105
+ is mechanical — replace underscores with spaces, capitalize each word — and
106
+ is applied automatically by `prompts/00-applicability-resolution.md` step 3.
107
+ When a prose name doesn't round-trip cleanly through that conversion (an
108
+ acronym like "API"), this table's prose column is authoritative for what
109
+ gets displayed in reports; the config key is authoritative for matching
110
+ against `disabled_categories`.
111
+
112
+ **A category not in this table at all** defaults to Applicable for every
113
+ profile, and the skill flags it in Recommendations as "not yet classified —
114
+ please confirm" (per `VALIDATION_RULES.md` Rule 17, step 4) rather than
115
+ guessing which profiles it should be excluded from.
116
+
117
+ ## Combined Spec Mode — Why It Exists
118
+
119
+ Many modern repositories (Spec-Kit-style, or any spec-driven workflow) have
120
+ a single `spec.md` containing user stories, functional requirements, and
121
+ success criteria, with no separate BRD document at all — the "business
122
+ requirements" and "user story" are the same artifact. The original version
123
+ of this skill treated `BRD_INPUT` as always required, which meant every such
124
+ project would show "0% BRD Coverage" and a permanently-broken Section 4 —
125
+ not because anything was actually missing, but because the skill was asking
126
+ for a document type that project's process doesn't produce. Combined Spec
127
+ Mode fixes this: it's not a lowering of rigor, it's recognizing that BRD
128
+ Validation (Section 4) and User Story Validation (Section 3) are the same
129
+ underlying validation when there is only one input document, and reporting
130
+ it as `N/A — Combined Spec Mode` instead of a false failure.
@@ -0,0 +1,50 @@
1
+ # Examples
2
+
3
+ Two fully worked examples, covering both supported input shapes end to end.
4
+ Each includes the raw inputs and the resulting report, so you can see
5
+ exactly how `SKILL.md`'s pipeline steps transform one into the other.
6
+
7
+ ## Example 1 — Manual QA Suite, Separate BRD
8
+
9
+ `examples/example-1-manual-qa-ecommerce/`
10
+
11
+ A small e-commerce checkout feature with a traditional User Story + BRD +
12
+ spreadsheet-style test case set. Demonstrates:
13
+ - Standard (non-combined) BRD mode
14
+ - Rule 1 orphan-requirement detection
15
+ - Rule 8 duplicate detection (one exact duplicate, one legitimate boundary
16
+ pair that looks similar but isn't)
17
+ - Rule 9 business-rule formula verification (a discount calculation)
18
+ - A `manual_qa` project profile — every category applicable
19
+
20
+ Files: `input-user-story.md`, `input-brd.md`, `input-test-cases.csv`,
21
+ `output-report.md`.
22
+
23
+ ## Example 2 — Automated Frontend Test Suite, Combined Spec Mode
24
+
25
+ `examples/example-2-automated-frontend-suite/`
26
+
27
+ A compact frontend feature (a settings toggle with a feature-flag-gated
28
+ action) with no separate BRD — the spec document plays both roles — and a
29
+ test suite described as automated source (Jest-style `describe`/`it`
30
+ structure) rather than a spreadsheet. Demonstrates:
31
+ - `combined_spec_mode: auto` resolving to `true` and Section 4 rendering
32
+ `N/A — Combined Spec Mode` instead of a false failure
33
+ - Automated-source extraction (`prompts/03` §B) with a mix of explicit
34
+ `(FR-NNN)`-tagged tests and untagged ones requiring fuzzy mapping
35
+ - **Rule 16 (Gated-Behavior Wiring)** catching a feature-flag's logic being
36
+ unit tested while the screen effect that reads the real flag and toggles
37
+ the UI is never exercised — the case this rule was built to catch
38
+ - A `frontend_automated` project profile — Database/Localization/Browser
39
+ Compatibility auto-resolved to `N/A`
40
+
41
+ Files: `input-spec.md`, `input-test-files-index.md`, `output-report.md`.
42
+
43
+ ## Reading the Examples
44
+
45
+ Each `output-report.md` is a complete, real report — not a fragment — so you
46
+ can compare it section-by-section against `REPORT_TEMPLATE.md` and see
47
+ exactly where each number and finding came from in the corresponding
48
+ `input-*` files. If you're extending the skill (`docs/EXTENDING.md`), adding
49
+ a third example that exercises your new rule/profile is the recommended way
50
+ to prove it works end to end before relying on it.
@@ -0,0 +1,98 @@
1
+ # Quality Scoring
2
+
3
+ ## Rubric
4
+
5
+ Weights come from `RESOLVED_CONFIG.scoring_weights` (defaults shown; they
6
+ must sum to 100 — if a `CONFIG_OVERRIDE_INPUT` changes one weight, adjust
7
+ another so the total still sums to 100, or the score is meaningless).
8
+
9
+ | Category | Weight | Full-Marks Definition |
10
+ |---|---|---|
11
+ | Requirement Traceability | 25 | Every applicable requirement has ≥1 `confirmed`-tier test mapping (Tier 1/2 in `TRACEABILITY_ENGINE.md`) |
12
+ | Coverage | 20 | Requirement/AC/Frontend/Backend coverage percentages (Rule 13) all at 100% of applicable scope |
13
+ | Acceptance Criteria | 15 | Every AC has all scenario types Rule 6 expects for its shape |
14
+ | Frontend Coverage | 10 | Every applicable Rule 2 category has evidence |
15
+ | Backend Coverage | 10 | Every applicable Rule 3 category has evidence |
16
+ | Business Rules | 10 | Every business rule has test evidence AND a confirmed formula/logic match |
17
+ | Quality | 5 | Zero Rule 5/11 findings (structural + hygiene) |
18
+ | Duplicates | 5 | Zero Exact Duplicates (Partial/Near duplicates that are legitimate layered coverage don't cost points) |
19
+
20
+ ## Formula
21
+
22
+ For each category, compute a 0.0–1.0 fraction using the category's own
23
+ formula (below), then `category_score = weight * fraction`. Sum all eight
24
+ for the total out of 100.
25
+
26
+ ```
27
+ Requirement Traceability fraction =
28
+ (Full-status requirements + 0.5 * Partial-status requirements) / Applicable requirements
29
+
30
+ Coverage fraction =
31
+ average( Requirement Coverage%, Acceptance Criteria Coverage%, Frontend Coverage%, Backend Coverage% )
32
+ — each as computed in TRACEABILITY_ENGINE.md §3, already N/A-excluded
33
+
34
+ Acceptance Criteria fraction =
35
+ (ACs with all expected scenario types + 0.5 * ACs with a stated, justified partial set) / Applicable ACs
36
+
37
+ Frontend Coverage fraction = Frontend Coverage% from §3 (already excludes N/A per Rule 17)
38
+ Backend Coverage fraction = Backend Coverage% from §3 (already excludes N/A per Rule 17)
39
+
40
+ Business Rules fraction =
41
+ Business rules with (test evidence AND formula match = Yes) / Applicable business rules
42
+
43
+ Quality fraction = 1 - (Rule 5 findings + Rule 11 findings) / max(1, Total test cases)
44
+ — capped at 0 minimum; a single finding on a 3-test suite should not go negative
45
+
46
+ Duplicates fraction = 1 - (Exact Duplicate pairs / max(1, Total test cases))
47
+ — capped at 0 minimum; Partial/Near duplicates do not count against this fraction
48
+ ```
49
+
50
+ ## Status Bands
51
+
52
+ ```
53
+ score >= RESOLVED_CONFIG.thresholds.pass → PASS
54
+ RESOLVED_CONFIG.thresholds.needs_improvement <= score
55
+ < RESOLVED_CONFIG.thresholds.pass → NEEDS IMPROVEMENT
56
+ score < RESOLVED_CONFIG.thresholds.needs_improvement → FAIL
57
+ ```
58
+
59
+ Default thresholds: PASS ≥ 95, NEEDS IMPROVEMENT 70–94, FAIL < 70.
60
+
61
+ ## Worked Example
62
+
63
+ A module with 52 applicable requirements: 37 `Full`, 12 `Partial`, 3
64
+ `Missing`.
65
+
66
+ ```
67
+ Requirement Traceability fraction = (37 + 0.5*12) / 52 = 43/52 = 0.827
68
+ → 25 * 0.827 = 20.7 → round to 21 (see Rounding, below)
69
+
70
+ Coverage fraction: Requirement Coverage 94%, AC Coverage 89%, Frontend 80%,
71
+ Backend 70% → average = 83.25%
72
+ → 20 * 0.8325 = 16.65 → 17
73
+
74
+ Acceptance Criteria fraction = 47/53 (weighted) = 0.887 → 15 * 0.887 = 13.3 → 13
75
+ Frontend Coverage fraction = 0.80 → 10 * 0.80 = 8
76
+ Backend Coverage fraction = 0.70 → 10 * 0.70 = 7
77
+ Business Rules fraction = 0.95 → 10 * 0.95 = 9.5 → 10
78
+ Quality fraction: 2 findings / 170 tests = 0.988 → 5 * 0.988 = 4.9 → 5
79
+ Duplicates fraction = 1.0 (0 exact duplicates) → 5 * 1.0 = 5
80
+
81
+ Total = 21 + 17 + 13 + 8 + 7 + 10 + 5 + 5 = 86 → NEEDS IMPROVEMENT
82
+ ```
83
+
84
+ ## Rounding
85
+
86
+ Round each category's `weight * fraction` to the nearest whole point using
87
+ standard rounding (0.5 rounds up), independently per category, before
88
+ summing. Do not round only the final total — rounding each category first
89
+ and then summing is what makes the category breakdown table (Section 20)
90
+ add up to the displayed total; summing unrounded fractions and rounding once
91
+ at the end will produce a total that doesn't match the visible per-category
92
+ numbers, which reads as an error even when the math is technically fine.
93
+
94
+ ## Reporting the Score
95
+
96
+ Section 20 of the report must show every category's weight, fraction, and
97
+ resulting points — never just the final total. A reader should be able to
98
+ see *which* category cost the most points without re-deriving the math.
@@ -0,0 +1,111 @@
1
+ # Test Case Validator & Requirement Traceability Skill
2
+
3
+ Enterprise-grade requirement-to-test-case audit. Given a User Story, an
4
+ (optional) Business Requirement Document, and a set of Test Cases — manually
5
+ authored or an automated test suite's source files — this skill determines
6
+ whether the test cases actually satisfy the requirements, and produces a
7
+ 20-section Test Observation Report with a weighted Quality Score.
8
+
9
+ It behaves like a Senior QA Architect / Business Analyst / Test Lead audit,
10
+ not a linter: every finding cites the exact requirement, user story,
11
+ acceptance criterion, or test case it's based on, and the skill never invents
12
+ a requirement or business rule that isn't in the source documents.
13
+
14
+ ## Why this exists
15
+
16
+ Coverage tools tell you which *lines* ran. They don't tell you whether the
17
+ thing the business actually asked for is the thing that got tested, or
18
+ whether a feature flag's *logic* is unit-tested while the *effect* that reads
19
+ the flag and turns the feature on is never exercised by anything. This skill
20
+ closes that gap by working from the requirements document outward, not from
21
+ the code inward.
22
+
23
+ ## Quick Start
24
+
25
+ ```
26
+ Validate test cases against requirements:
27
+
28
+ USER_STORY_INPUT: specs/checkout/spec.md
29
+ TEST_CASE_INPUT: src/features/checkout/**/*.test.ts
30
+ ```
31
+
32
+ No `BRD_INPUT`? That's fine — the skill runs in **Combined Spec Mode** and
33
+ says so in the report instead of silently treating every BRD-shaped check as
34
+ a failure. See `SKILL.md` → *Inputs* for the full input contract.
35
+
36
+ ## What you get
37
+
38
+ A single Markdown (or artifact-rendered) report with, in order: an executive
39
+ summary, a full Requirement Traceability Matrix, User Story and BRD
40
+ validation, Acceptance Criteria validation, Frontend/Backend/Functional/API/
41
+ Database/Security/Business-Rule coverage, a Missing Scenario report, a
42
+ Duplicate Test Case report, a Test Case Quality report, a Risk Coverage
43
+ report, an Observation Report (each entry: severity, evidence, impact,
44
+ recommendation, a suggested test case), Recommendations, an Overall Quality
45
+ Score out of 100, and a Final Summary block with a `PASS` /
46
+ `NEEDS IMPROVEMENT` / `FAIL` status. See `REPORT_TEMPLATE.md` for the exact
47
+ shape and `EXAMPLES.md` for two fully worked examples.
48
+
49
+ ## How it's organized
50
+
51
+ ```
52
+ test-case-validator/
53
+ ├── SKILL.md entry point — when to use it, execution steps, behavioral rules
54
+ ├── README.md you are here
55
+ ├── SYSTEM_PROMPT.md the QA-architect persona and behavioral contract
56
+ ├── VALIDATION_RULES.md all 17 validation rules
57
+ ├── TRACEABILITY_ENGINE.md ID-matching + coverage-percentage algorithms
58
+ ├── REPORT_TEMPLATE.md the 20-section report skeleton
59
+ ├── CONFIGURATION.md config schema, project profiles, applicability matrix
60
+ ├── QUALITY_SCORING.md scoring rubric + worked example
61
+ ├── EXAMPLES.md index of worked examples
62
+ ├── CHANGELOG.md version history
63
+ ├── config/
64
+ │ └── default.config.yaml the actual default configuration
65
+ ├── prompts/ one file per pipeline step — extraction, RTM, coverage, etc.
66
+ ├── templates/ reusable report fragments
67
+ ├── examples/ two full worked examples (manual QA + automated suite)
68
+ └── docs/
69
+ ├── ARCHITECTURE.md how the modules fit together
70
+ ├── EXTENDING.md how to add a new rule / section / profile
71
+ ├── FAQ.md design-decision rationale
72
+ └── VERSIONING.md semver policy for this skill
73
+ ```
74
+
75
+ Nothing here is a monolithic prompt. Each pipeline step is its own file under
76
+ `prompts/`, each validation rule is independently addressable in
77
+ `VALIDATION_RULES.md`, and project-specific behavior (what's applicable, what
78
+ weights matter, what "PASS" means) lives in `config/default.config.yaml` — not
79
+ hardcoded into the instructions. See `docs/EXTENDING.md` before modifying
80
+ anything; it's designed so a new rule or profile is an addition, not a rewrite.
81
+
82
+ ## Supported inputs
83
+
84
+ | Category | Formats |
85
+ |---|---|
86
+ | User Story / BRD | Markdown, PDF, DOCX, XLSX, CSV, TXT, Spec-Kit `spec.md` |
87
+ | Manual test cases | Markdown table, XLSX, CSV, Gherkin `.feature` |
88
+ | Automated test cases | Any language's test source (`*.test.ts`, `*.spec.py`, `*Test.java`, `*_test.go`, ...) — see `prompts/03-extraction-test-cases.md` |
89
+
90
+ ## Project profiles
91
+
92
+ Not every category in `VALIDATION_RULES.md` applies to every project — a
93
+ frontend-only React module has no Database Coverage to speak of, and a
94
+ backend service has no Localization concerns. Rather than reporting those as
95
+ failures, the skill resolves a **project profile** (explicit or
96
+ auto-detected) and marks inapplicable categories `N/A` with a stated reason.
97
+ See `CONFIGURATION.md` → *Applicability Matrix* for the full table and
98
+ `docs/FAQ.md` for why this matters.
99
+
100
+ ## Versioning
101
+
102
+ This is v2.1.0. v2.0.0 was a full restructuring of the original single-file
103
+ v1 skill into the modular form described above, plus two new capabilities
104
+ added after running v1 against a real codebase: automated-test-suite input
105
+ support and Gated-Behavior Wiring Validation (Rule 16). v2.1.0 is a
106
+ hardening pass — a static audit of the v2.0.0 package found and fixed
107
+ eleven issues (stale file references left over from mid-development
108
+ renames, a missing pipeline step file, an under-specified config schema,
109
+ and a content-injection gap in `SYSTEM_PROMPT.md`) without changing any
110
+ report's shape or existing behavior. See `CHANGELOG.md` for the full
111
+ history and `docs/VERSIONING.md` for how future changes are versioned.
@@ -0,0 +1,116 @@
1
+ # Report Template
2
+
3
+ The canonical 20-section shape every generated report must follow, in this
4
+ order, with these exact headings. Do not omit a section — if there is
5
+ nothing to report, write the section header and one line stating why (e.g.
6
+ "No duplicate test cases were found.").
7
+
8
+ Fill this template using: `RESOLVED_CONFIG`, `US_MODEL`, `BRD_MODEL`,
9
+ `TEST_CASE_MODEL`, `RTM` (from `TRACEABILITY_ENGINE.md`), and the outputs of
10
+ each `prompts/*.md` step. Row/entry shapes for repeated structures
11
+ (RTM rows, observation entries, coverage tables) are in `templates/`.
12
+
13
+ ---
14
+
15
+ ```markdown
16
+ # Test Case Validation Report — <Project/Feature Name>
17
+
18
+ Generated: <date> · Project Profile: <resolved profile> · BRD Mode: <"Separate BRD" | "Combined Spec Mode">
19
+
20
+ ## 1. Executive Summary
21
+ - One paragraph: what was validated, against what, and the headline finding.
22
+ - Scope table (Rule 17 output): Category | Applicable? | Reason if N/A.
23
+ - State the resolved project profile and how it was determined (explicit input vs. auto-detected, and why).
24
+
25
+ ## 2. Requirement Traceability Matrix
26
+ Full RTM table (`templates/rtm-row.md` per row), grouped by User Story or
27
+ Requirement source section, matching the source document's own organization.
28
+
29
+ ## 3. User Story Validation
30
+ Per user story: ID, title, priority, AC count, AC coverage %, status.
31
+
32
+ ## 4. BRD Validation
33
+ If Combined Spec Mode: state that explicitly and stop this section there —
34
+ do not report "0% BRD coverage." Otherwise: per BRD requirement, same shape
35
+ as an RTM row plus any BRD-specific fields (process flow, approval flow,
36
+ compliance) not already covered in section 2.
37
+
38
+ ## 5. Acceptance Criteria Validation
39
+ Rule 6 output: AC ID | Scenario types present/absent | Status.
40
+
41
+ ## 6. Frontend Coverage Report
42
+ Rule 2 output, filtered by Rule 17.
43
+
44
+ ## 7. Backend Coverage Report
45
+ Rule 3 output, filtered by Rule 17. State the data-layer reinterpretation
46
+ explicitly if this is a frontend-only module.
47
+
48
+ ## 8. Functional Coverage Report
49
+ Rule 4 output.
50
+
51
+ ## 9. API Coverage
52
+ Coverage-formula output for API Coverage %, plus a table of endpoints/
53
+ contracts with request/response/error-path evidence status.
54
+
55
+ ## 10. Database Coverage
56
+ Coverage-formula output, or `N/A` with reason per Rule 17.
57
+
58
+ ## 11. Security Coverage
59
+ Security-relevant requirements from Rules 3/7/9, consolidated. Always
60
+ present even at 0 dedicated tests — state that plainly, it's a High-severity
61
+ signal, not something to soften.
62
+
63
+ ## 12. Business Rule Coverage
64
+ Rule 9 output, including the Formula/Logic Match column.
65
+
66
+ ## 13. Missing Scenario Report
67
+ Rule 7 output.
68
+
69
+ ## 14. Duplicate Test Case Report
70
+ Rule 8 output, with the Near-Duplicate-vs-layered-coverage distinction made
71
+ explicit per pair.
72
+
73
+ ## 15. Test Case Quality Report
74
+ Rule 5 output.
75
+
76
+ ## 16. Risk Coverage Report
77
+ Rule 10 output.
78
+
79
+ ## 17. Gated-Behavior Wiring Report
80
+ Rule 16 output. (This section is additive to the original 20-section shape;
81
+ keep it here as its own numbered subsection rather than folding it into
82
+ Section 2, so it stays scannable — see `docs/FAQ.md`.)
83
+
84
+ ## 18. Observation Report
85
+ Rule 14 output — every finding from every rule above, consolidated,
86
+ deduplicated, each with severity/evidence/impact/recommendation/suggested
87
+ test case. Order High → Medium → Low.
88
+
89
+ ## 19. Recommendations
90
+ Prioritized, numbered list. Each recommendation should name which
91
+ observation(s) it resolves and roughly how much effort/risk-reduction it
92
+ buys — put the highest ratio of risk-closed to effort-spent first.
93
+
94
+ ## 20. Overall Quality Score
95
+ `QUALITY_SCORING.md` breakdown table (category | weight | score | rationale)
96
+ plus the total out of 100.
97
+
98
+ ## Final Summary
99
+ Exact shape from `templates/final-summary-block.md` — every field on that
100
+ template must be present with a value, never left blank.
101
+ ```
102
+
103
+ ## Rendering Notes
104
+
105
+ - If the target surface supports rich rendering (an Artifact, a wiki page),
106
+ status values (`Full`/`Partial`/`Missing`/`N/A`) may render as colored
107
+ pills and the Final Summary as a card — but the underlying content and
108
+ section order must be unchanged. A plain-Markdown fallback must always be
109
+ possible from the same data.
110
+ - Tables with more than ~6 columns should be split by logical grouping
111
+ (e.g. one table per user story in Section 2) rather than producing one
112
+ wide table that's hard to scan — this mirrors how the worked examples in
113
+ `EXAMPLES.md` are laid out.
114
+ - Never truncate the Requirement Traceability Matrix for length. If it's
115
+ long, that's information (this project has a lot of requirements) — split
116
+ across subsections, don't drop rows.