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.
- package/.github/skills/boiler-project-generator/SKILL.md +103 -0
- package/.github/skills/boiler-project-generator/assets/templates/android/README.md +3 -0
- package/.github/skills/boiler-project-generator/assets/templates/angular/README.md +3 -0
- package/.github/skills/boiler-project-generator/assets/templates/flutter/README.md +3 -0
- package/.github/skills/boiler-project-generator/assets/templates/ios/README.md +3 -0
- package/.github/skills/boiler-project-generator/assets/templates/react/README.md +3 -0
- package/.github/skills/boiler-project-generator/assets/templates/react-native/README.md +3 -0
- package/.github/skills/boiler-project-generator/assets/templates/react-native/api-setup.ts +76 -0
- package/.github/skills/boiler-project-generator/assets/templates/react-native/component-primary-button.tsx +29 -0
- package/.github/skills/boiler-project-generator/assets/templates/react-native/env-config.env +4 -0
- package/.github/skills/boiler-project-generator/assets/templates/react-native/feature-auth-screen.tsx +45 -0
- package/.github/skills/boiler-project-generator/assets/templates/react-native/feature-dashboard-screen.tsx +45 -0
- package/.github/skills/boiler-project-generator/assets/templates/react-native/feature-profile-screen.tsx +45 -0
- package/.github/skills/boiler-project-generator/assets/templates/react-native/hook-use-app-boot.ts +11 -0
- package/.github/skills/boiler-project-generator/assets/templates/react-native/navigation-setup.tsx +25 -0
- package/.github/skills/boiler-project-generator/assets/templates/react-native/project-structure.md +24 -0
- package/.github/skills/boiler-project-generator/assets/templates/react-native/redux-hooks.ts +5 -0
- package/.github/skills/boiler-project-generator/assets/templates/react-native/redux-session-slice.ts +29 -0
- package/.github/skills/boiler-project-generator/assets/templates/react-native/redux-store.ts +15 -0
- package/.github/skills/boiler-project-generator/assets/templates/react-native/theme-index.ts +23 -0
- package/.github/skills/boiler-project-generator/assets/templates/react-native/utils-helpers.ts +7 -0
- package/.github/skills/boiler-project-generator/metadata.yaml +29 -0
- package/.github/skills/boiler-project-generator/references/android.md +19 -0
- package/.github/skills/boiler-project-generator/references/angular.md +14 -0
- package/.github/skills/boiler-project-generator/references/flutter.md +17 -0
- package/.github/skills/boiler-project-generator/references/ios.md +17 -0
- package/.github/skills/boiler-project-generator/references/react-native.md +103 -0
- package/.github/skills/boiler-project-generator/references/react.md +17 -0
- package/.github/skills/boiler-project-generator/scripts/angular.js +43 -0
- package/.github/skills/boiler-project-generator/scripts/generate-project.mjs +107 -0
- package/.github/skills/boiler-project-generator/scripts/init.js +105 -0
- package/.github/skills/boiler-project-generator/scripts/react-native.js +1041 -0
- package/.github/skills/boiler-project-generator/scripts/react.js +32 -0
- package/.github/skills/clean-architecture-generator/SKILL.md +235 -0
- package/.github/skills/clean-architecture-generator/references/architecture-core.md +126 -0
- package/.github/skills/clean-architecture-generator/references/platform-angular.md +374 -0
- package/.github/skills/clean-architecture-generator/references/platform-flutter.md +366 -0
- package/.github/skills/clean-architecture-generator/references/platform-react-native.md +590 -0
- package/.github/skills/clean-architecture-generator/references/platform-react.md +261 -0
- package/.github/skills/code-test-coverage-analyzer/SKILL.md +1358 -0
- package/.github/skills/code-test-coverage-analyzer/assets/config-questionnaire.md +118 -0
- package/.github/skills/code-test-coverage-analyzer/assets/conflict-resolution-protocol.md +99 -0
- package/.github/skills/code-test-coverage-analyzer/assets/coverage-calculation-rules.md +294 -0
- package/.github/skills/code-test-coverage-analyzer/assets/multi-strategy-search.md +145 -0
- package/.github/skills/code-test-coverage-analyzer/assets/output-file-contracts.md +651 -0
- package/.github/skills/code-test-coverage-analyzer/assets/status-definitions.md +273 -0
- package/.github/skills/code-test-coverage-analyzer/examples/example-invocation.md +208 -0
- package/.github/skills/code-test-coverage-analyzer/references/android-patterns.md +229 -0
- package/.github/skills/code-test-coverage-analyzer/references/angular-patterns.md +177 -0
- package/.github/skills/code-test-coverage-analyzer/references/backend-patterns.md +383 -0
- package/.github/skills/code-test-coverage-analyzer/references/flutter-patterns.md +254 -0
- package/.github/skills/code-test-coverage-analyzer/references/ios-patterns.md +228 -0
- package/.github/skills/code-test-coverage-analyzer/references/react-native-patterns.md +431 -0
- package/.github/skills/code-test-coverage-analyzer/references/react-patterns.md +206 -0
- package/.github/skills/code-test-coverage-analyzer/scripts/detect-platform.ps1 +261 -0
- package/.github/skills/code-test-coverage-analyzer/scripts/scan-repository.ps1 +242 -0
- package/.github/skills/code-test-coverage-analyzer/templates/brd-compliance-row.md +107 -0
- package/.github/skills/code-test-coverage-analyzer/templates/test-case-row.md +130 -0
- package/.github/skills/code-test-coverage-analyzer/templates/user-story-compliance-row.md +170 -0
- package/.github/skills/custom-font-integrator/SKILL.md +373 -0
- package/.github/skills/custom-font-integrator/assets/FontTestScreen.js +150 -0
- package/.github/skills/custom-font-integrator/references/example-info-plist.xml +21 -0
- package/.github/skills/custom-font-integrator/scripts/setup-fonts.sh +99 -0
- package/.github/skills/encryption-decryption-utility/Instructions.md +282 -0
- package/.github/skills/encryption-decryption-utility/README.md +222 -0
- package/.github/skills/encryption-decryption-utility/SKILL.md +645 -0
- package/.github/skills/encryption-decryption-utility/assets/encryption-config-template.json +13 -0
- package/.github/skills/encryption-decryption-utility/assets/platform-matrix.json +180 -0
- package/.github/skills/encryption-decryption-utility/metadata.yaml +51 -0
- package/.github/skills/encryption-decryption-utility/references/android-crypto.md +157 -0
- package/.github/skills/encryption-decryption-utility/references/angular-crypto.md +130 -0
- package/.github/skills/encryption-decryption-utility/references/approach-1-webcrypto.md +95 -0
- package/.github/skills/encryption-decryption-utility/references/approach-2-rsa-aes-cbc.md +111 -0
- package/.github/skills/encryption-decryption-utility/references/approach-3-aes-sharedkey.md +114 -0
- package/.github/skills/encryption-decryption-utility/references/architecture.md +233 -0
- package/.github/skills/encryption-decryption-utility/references/backend-alignment.md +506 -0
- package/.github/skills/encryption-decryption-utility/references/dependency-guidance.md +234 -0
- package/.github/skills/encryption-decryption-utility/references/ec-implementation.md +832 -0
- package/.github/skills/encryption-decryption-utility/references/error-handling-playbook.md +234 -0
- package/.github/skills/encryption-decryption-utility/references/flutter-crypto.md +105 -0
- package/.github/skills/encryption-decryption-utility/references/ios-crypto.md +338 -0
- package/.github/skills/encryption-decryption-utility/references/native-rsa-implementation.md +373 -0
- package/.github/skills/encryption-decryption-utility/references/node-crypto.md +86 -0
- package/.github/skills/encryption-decryption-utility/references/react-crypto.md +105 -0
- package/.github/skills/encryption-decryption-utility/references/react-native-crypto.md +1001 -0
- package/.github/skills/encryption-decryption-utility/references/react-web-crypto.md +668 -0
- package/.github/skills/encryption-decryption-utility/references/security-checklist.md +176 -0
- package/.github/skills/encryption-decryption-utility/references/web-crypto.md +74 -0
- package/.github/skills/encryption-decryption-utility/scripts/detect.js +128 -0
- package/.github/skills/encryption-decryption-utility/scripts/install.js +1713 -0
- package/.github/skills/encryption-decryption-utility/scripts/setup.js +800 -0
- package/.github/skills/encryption-decryption-utility/template.md +241 -0
- package/.github/skills/encryption-decryption-utility/templates/config-questionnaire.md +467 -0
- package/.github/skills/encryption-decryption-utility/templates/delivery-checklist.md +206 -0
- package/.github/skills/encryption-decryption-utility/templates/implementation-plan.md +304 -0
- package/.github/skills/feature-generator/SKILL.MD +2741 -0
- package/.github/skills/feature-generator/assets/fingerprint-schema.json +385 -0
- package/.github/skills/feature-generator/assets/spec-template.md +172 -0
- package/.github/skills/feature-generator/assets/transform-rules.json +82 -0
- package/.github/skills/feature-generator/references/api-envelope-patterns.md +327 -0
- package/.github/skills/feature-generator/references/screen-logic-patterns.md +399 -0
- package/.github/skills/feature-generator/references/state-library-patterns.md +464 -0
- package/.github/skills/figma-ui-mapper/README.md +34 -0
- package/.github/skills/figma-ui-mapper/SKILL.md +101 -0
- package/.github/skills/figma-ui-mapper/assets/templates/component-map-template.md +30 -0
- package/.github/skills/figma-ui-mapper/assets/templates/generation-report-template.md +49 -0
- package/.github/skills/figma-ui-mapper/metadata.yaml +22 -0
- package/.github/skills/figma-ui-mapper/references/android.md +11 -0
- package/.github/skills/figma-ui-mapper/references/angular.md +18 -0
- package/.github/skills/figma-ui-mapper/references/capacitor.md +18 -0
- package/.github/skills/figma-ui-mapper/references/common.md +23 -0
- package/.github/skills/figma-ui-mapper/references/expo.md +18 -0
- package/.github/skills/figma-ui-mapper/references/flutter.md +18 -0
- package/.github/skills/figma-ui-mapper/references/frameworks/angular/rules.md +23 -0
- package/.github/skills/figma-ui-mapper/references/frameworks/capacitor/rules.md +23 -0
- package/.github/skills/figma-ui-mapper/references/frameworks/expo/rules.md +23 -0
- package/.github/skills/figma-ui-mapper/references/frameworks/flutter/rules.md +23 -0
- package/.github/skills/figma-ui-mapper/references/frameworks/ionic/rules.md +23 -0
- package/.github/skills/figma-ui-mapper/references/frameworks/kotlin-multiplatform/rules.md +23 -0
- package/.github/skills/figma-ui-mapper/references/frameworks/native-android/rules.md +23 -0
- package/.github/skills/figma-ui-mapper/references/frameworks/native-ios/rules.md +23 -0
- package/.github/skills/figma-ui-mapper/references/frameworks/next/rules.md +23 -0
- package/.github/skills/figma-ui-mapper/references/frameworks/nuxt/rules.md +23 -0
- package/.github/skills/figma-ui-mapper/references/frameworks/react/rules.md +19 -0
- package/.github/skills/figma-ui-mapper/references/frameworks/react-native/rules.md +23 -0
- package/.github/skills/figma-ui-mapper/references/frameworks/svelte/rules.md +23 -0
- package/.github/skills/figma-ui-mapper/references/frameworks/vue/rules.md +23 -0
- package/.github/skills/figma-ui-mapper/references/ionic.md +18 -0
- package/.github/skills/figma-ui-mapper/references/ios.md +11 -0
- package/.github/skills/figma-ui-mapper/references/kotlin-multiplatform.md +18 -0
- package/.github/skills/figma-ui-mapper/references/native-android.md +18 -0
- package/.github/skills/figma-ui-mapper/references/native-ios.md +18 -0
- package/.github/skills/figma-ui-mapper/references/next.md +18 -0
- package/.github/skills/figma-ui-mapper/references/nuxt.md +18 -0
- package/.github/skills/figma-ui-mapper/references/react-figma-guideline.md +21 -0
- package/.github/skills/figma-ui-mapper/references/react-native.md +18 -0
- package/.github/skills/figma-ui-mapper/references/react.md +18 -0
- package/.github/skills/figma-ui-mapper/references/script-usage.md +46 -0
- package/.github/skills/figma-ui-mapper/references/svelte.md +18 -0
- package/.github/skills/figma-ui-mapper/references/vue.md +18 -0
- package/.github/skills/figma-ui-mapper/references/workflow.md +74 -0
- package/.github/skills/figma-ui-mapper/scripts/generate-page-through-figma.js +635 -0
- package/.github/skills/figma-ui-mapper/scripts/generate-react-page-through-figma.js +4 -0
- package/.github/skills/frontend-task-breakdown/SKILL.md +734 -0
- package/.github/skills/md-file-converter/SKILL.md +291 -0
- package/.github/skills/md-file-converter/config/formats.json +114 -0
- package/.github/skills/md-file-converter/extractors/extract-docx.sh +120 -0
- package/.github/skills/md-file-converter/extractors/extract-eml.py +108 -0
- package/.github/skills/md-file-converter/extractors/extract-pdf.sh +97 -0
- package/.github/skills/md-file-converter/extractors/extract-pptx.py +143 -0
- package/.github/skills/md-file-converter/extractors/extract-xlsx.py +175 -0
- package/.github/skills/md-file-converter/scripts/check-tools.sh +47 -0
- package/.github/skills/md-file-converter/scripts/extract-archive.sh +83 -0
- package/.github/skills/md-file-converter/scripts/extract-ocr.sh +77 -0
- package/.github/skills/md-file-converter/scripts/get-metadata.sh +57 -0
- package/.github/skills/md-file-converter/templates/output.md +73 -0
- package/.github/skills/md-file-converter/templates/unsupported-object.md +6 -0
- package/.github/skills/mockAPI-contract-generator/SKILL.md +607 -0
- package/.github/skills/test-case-validator/CHANGELOG.md +155 -0
- package/.github/skills/test-case-validator/CONFIGURATION.md +130 -0
- package/.github/skills/test-case-validator/EXAMPLES.md +50 -0
- package/.github/skills/test-case-validator/QUALITY_SCORING.md +98 -0
- package/.github/skills/test-case-validator/README.md +111 -0
- package/.github/skills/test-case-validator/REPORT_TEMPLATE.md +116 -0
- package/.github/skills/test-case-validator/SKILL.md +209 -0
- package/.github/skills/test-case-validator/SYSTEM_PROMPT.md +127 -0
- package/.github/skills/test-case-validator/TRACEABILITY_ENGINE.md +152 -0
- package/.github/skills/test-case-validator/VALIDATION_RULES.md +411 -0
- package/.github/skills/test-case-validator/config/default.config.yaml +62 -0
- package/.github/skills/test-case-validator/docs/ARCHITECTURE.md +66 -0
- package/.github/skills/test-case-validator/docs/EXTENDING.md +85 -0
- package/.github/skills/test-case-validator/docs/FAQ.md +88 -0
- package/.github/skills/test-case-validator/docs/VERSIONING.md +55 -0
- package/.github/skills/test-case-validator/examples/example-1-manual-qa-ecommerce/input-brd.md +43 -0
- package/.github/skills/test-case-validator/examples/example-1-manual-qa-ecommerce/input-test-cases.csv +9 -0
- package/.github/skills/test-case-validator/examples/example-1-manual-qa-ecommerce/input-user-story.md +29 -0
- package/.github/skills/test-case-validator/examples/example-1-manual-qa-ecommerce/output-report.md +303 -0
- package/.github/skills/test-case-validator/examples/example-2-automated-frontend-suite/input-spec.md +43 -0
- package/.github/skills/test-case-validator/examples/example-2-automated-frontend-suite/input-test-files-index.md +56 -0
- package/.github/skills/test-case-validator/examples/example-2-automated-frontend-suite/output-report.md +274 -0
- package/.github/skills/test-case-validator/prompts/00-applicability-resolution.md +61 -0
- package/.github/skills/test-case-validator/prompts/01-extraction-user-story.md +58 -0
- package/.github/skills/test-case-validator/prompts/02-extraction-brd.md +64 -0
- package/.github/skills/test-case-validator/prompts/03-extraction-test-cases.md +92 -0
- package/.github/skills/test-case-validator/prompts/04-traceability-matrix.md +41 -0
- package/.github/skills/test-case-validator/prompts/05-coverage-analysis.md +46 -0
- package/.github/skills/test-case-validator/prompts/06-missing-scenario-detection.md +32 -0
- package/.github/skills/test-case-validator/prompts/07-duplicate-detection.md +36 -0
- package/.github/skills/test-case-validator/prompts/08-risk-analysis.md +39 -0
- package/.github/skills/test-case-validator/prompts/09-gated-wiring-validation.md +53 -0
- package/.github/skills/test-case-validator/prompts/10-observation-report.md +56 -0
- package/.github/skills/test-case-validator/prompts/11-final-report-assembly.md +57 -0
- package/.github/skills/test-case-validator/templates/coverage-table.md +25 -0
- package/.github/skills/test-case-validator/templates/executive-summary.md +38 -0
- package/.github/skills/test-case-validator/templates/final-summary-block.md +87 -0
- package/.github/skills/test-case-validator/templates/observation-entry.md +41 -0
- package/.github/skills/test-case-validator/templates/rtm-row.md +25 -0
- package/.github/skills/validation-engine-builder/README.md +50 -0
- package/.github/skills/validation-engine-builder/SKILL.md +241 -0
- package/.github/skills/validation-engine-builder/references/core.md +158 -0
- package/.github/skills/validation-engine-builder/references/platform-angular.md +166 -0
- package/.github/skills/validation-engine-builder/references/platform-flutter.md +118 -0
- package/.github/skills/validation-engine-builder/references/platform-react-native.md +170 -0
- package/.github/skills/validation-engine-builder/references/platform-react.md +94 -0
- package/.github/skills/validation-engine-builder/scripts/apply-to-project.js +80 -0
- package/.github/skills/validation-engine-builder/scripts/generate-angular.js +271 -0
- package/.github/skills/validation-engine-builder/scripts/generate-flutter.js +298 -0
- package/.github/skills/validation-engine-builder/scripts/generate-react-native.js +217 -0
- package/.github/skills/validation-engine-builder/scripts/generate-react.js +163 -0
- package/.github/skills/validation-engine-builder/scripts/install-deps.js +53 -0
- package/.github/skills/validation-engine-builder/scripts/shared/detect-platform.js +68 -0
- package/.github/skills/validation-engine-builder/scripts/shared/npm-deps.js +103 -0
- package/.github/skills/validation-engine-builder/scripts/shared/rhf-hook.js +43 -0
- package/.github/skills/validation-engine-builder/scripts/shared/ts-messages-regex.js +62 -0
- package/.github/skills/validation-engine-builder/scripts/shared/util.js +44 -0
- package/.github/skills/validation-engine-builder/scripts/shared/yup-schemas.js +80 -0
- package/.github/skills/validation-engine-builder/template.md +73 -0
- package/.github/skills/validation-engine-builder/templates/messages.json +22 -0
- package/.github/skills/validation-engine-builder/templates/regex.json +16 -0
- package/.github/skills/validation-engine-builder/templates/schemas.json +48 -0
- package/bin/index.js +145 -0
- package/package.json +22 -0
- package/readme.md +0 -0
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Prompt 06 — Missing Scenario Detection
|
|
2
|
+
|
|
3
|
+
**Input**: `RTM`, `TEST_CASE_MODEL`, Rule 17 applicability determination.
|
|
4
|
+
**Output**: Rule 7 table for Report Template Section 13.
|
|
5
|
+
|
|
6
|
+
## Procedure
|
|
7
|
+
|
|
8
|
+
1. Walk the full category list in `VALIDATION_RULES.md` Rule 7.
|
|
9
|
+
2. Filter each through Rule 17 — a category inapplicable to this project
|
|
10
|
+
(e.g. "File Upload" for a module with no upload feature anywhere in
|
|
11
|
+
`US_MODEL`/`BRD_MODEL`) is `N/A`, not a missing scenario. Do not report
|
|
12
|
+
an N/A category in this section at all except in a short trailing note
|
|
13
|
+
summarizing which categories were excluded and why (avoid duplicating
|
|
14
|
+
the full Applicability table from Section 1 here).
|
|
15
|
+
3. For each Applicable category, search `TEST_CASE_MODEL` for any test
|
|
16
|
+
whose title, steps, or test data indicates that category is exercised
|
|
17
|
+
(e.g. a test passing an empty string tests "Blank"; a test passing a
|
|
18
|
+
256-character string against a documented 255-char limit tests "Maximum
|
|
19
|
+
Length").
|
|
20
|
+
4. For every Applicable category with zero matching evidence, record it
|
|
21
|
+
with the specific requirement(s) it would have applied to — a missing
|
|
22
|
+
scenario report entry with no linked requirement is not actionable;
|
|
23
|
+
always tie it back to *which* input/field/flow the missing scenario
|
|
24
|
+
would protect.
|
|
25
|
+
5. Where a category is partially covered (e.g. Null is tested but Blank and
|
|
26
|
+
Whitespace-only are not, for the same field), report the specific gap,
|
|
27
|
+
not just "input validation partially covered" — precision here is what
|
|
28
|
+
makes Section 19's recommendations concrete.
|
|
29
|
+
|
|
30
|
+
## Output
|
|
31
|
+
|
|
32
|
+
Table: Category | Applicable? | Present? | Affected Requirement(s) | Note.
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# Prompt 07 — Duplicate Test Case Detection
|
|
2
|
+
|
|
3
|
+
**Input**: `TEST_CASE_MODEL`.
|
|
4
|
+
**Output**: Rule 8 table for Report Template Section 14.
|
|
5
|
+
|
|
6
|
+
## Procedure
|
|
7
|
+
|
|
8
|
+
1. Group test cases by their mapped requirement (from `RTM`) — comparison is
|
|
9
|
+
only meaningful within the same requirement; two unrelated tests that
|
|
10
|
+
happen to share phrasing are not duplicates.
|
|
11
|
+
2. Within each group, compare every pair on: Objective (what is this test
|
|
12
|
+
trying to prove?), Steps/body structure, Expected Result, Test Data.
|
|
13
|
+
3. Classify each pair found similar enough to flag:
|
|
14
|
+
- **Exact Duplicate** — same requirement, same steps, same expected
|
|
15
|
+
result, same test data (or trivially equivalent data). Recommend
|
|
16
|
+
removing one, naming which (prefer keeping the one with better
|
|
17
|
+
traceability tagging or clearer naming).
|
|
18
|
+
- **Partial Duplicate** — same requirement and steps shape, different
|
|
19
|
+
data/expected result (e.g. two points along the same boundary).
|
|
20
|
+
This is normal test breadth — note it, don't recommend removal, unless
|
|
21
|
+
the *specific* data points are themselves redundant (e.g. testing
|
|
22
|
+
length 10 and length 11 against a boundary at 255 tells you nothing
|
|
23
|
+
length-254/255/256 wouldn't already tell you better).
|
|
24
|
+
- **Near Duplicate** — same objective, different layer (unit vs.
|
|
25
|
+
component vs. integration) or different requirement that happens to
|
|
26
|
+
exercise the same code path incidentally. **State explicitly that this
|
|
27
|
+
is intentional layered coverage, not redundancy**, unless both tests
|
|
28
|
+
are genuinely at the same layer testing the same thing for no reason.
|
|
29
|
+
4. Only pairs classified Exact Duplicate count against the Quality Score's
|
|
30
|
+
Duplicates fraction (`QUALITY_SCORING.md`).
|
|
31
|
+
|
|
32
|
+
## Output
|
|
33
|
+
|
|
34
|
+
Table: Test Case ID A | Test Case ID B | Classification | Recommendation.
|
|
35
|
+
If zero duplicates of any kind are found, state that plainly — it is a
|
|
36
|
+
genuinely good sign worth naming, not just an empty section.
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# Prompt 08 — Risk-Based Coverage Analysis
|
|
2
|
+
|
|
3
|
+
**Input**: `RTM`, `TEST_CASE_MODEL`, `US_MODEL`, `BRD_MODEL`,
|
|
4
|
+
`RESOLVED_CONFIG.risk_thresholds`.
|
|
5
|
+
**Output**: Rule 10 table for Report Template Section 16.
|
|
6
|
+
|
|
7
|
+
## Procedure
|
|
8
|
+
|
|
9
|
+
1. Assign a risk tier to every requirement/feature area, using evidence from
|
|
10
|
+
the source documents only:
|
|
11
|
+
- **High** — the source document itself flags security, compliance,
|
|
12
|
+
financial/monetary calculation, data-integrity, or irreversible-action
|
|
13
|
+
characteristics. Do not assign High based on your own judgment of
|
|
14
|
+
"this seems important" without a textual signal — cite the sentence
|
|
15
|
+
that justifies it.
|
|
16
|
+
- **Medium** — core user workflow, state management, cross-feature
|
|
17
|
+
integration, without an explicit high-risk signal.
|
|
18
|
+
- **Low** — cosmetic UI, static/read-only display, an isolated pure
|
|
19
|
+
function with no external dependency or side effect.
|
|
20
|
+
- If risk tier genuinely can't be determined from the documents, default
|
|
21
|
+
to Medium and say so explicitly — do not silently default without
|
|
22
|
+
stating it, since a silent Medium default changes the minimum test
|
|
23
|
+
count expected.
|
|
24
|
+
|
|
25
|
+
2. Count the matched test cases (from `RTM`) for each risk-tiered item.
|
|
26
|
+
|
|
27
|
+
3. Compare against `RESOLVED_CONFIG.risk_thresholds` for that tier.
|
|
28
|
+
|
|
29
|
+
4. For any item below its threshold, record the specific gap: how many more
|
|
30
|
+
tests, of what type, would close it (reference Rule 4's test-type
|
|
31
|
+
breadth — a High-risk item with 5 positive tests and 0 negative tests
|
|
32
|
+
technically meets the "5 test cases" numeric bar but has not met the
|
|
33
|
+
intent of the threshold; call this out rather than treating the raw
|
|
34
|
+
count as sufficient on its own).
|
|
35
|
+
|
|
36
|
+
## Output
|
|
37
|
+
|
|
38
|
+
Table: Requirement/Feature | Risk Tier (+ justification) | Test Count | Test
|
|
39
|
+
Type Breadth | Meets Minimum? | Gap.
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# Prompt 09 — Gated-Behavior Wiring Validation
|
|
2
|
+
|
|
3
|
+
**Input**: `US_MODEL`, `BRD_MODEL`, `TEST_CASE_MODEL`.
|
|
4
|
+
**Output**: `VALIDATION_RULES.md` Rule 16 table, for Report Template Section
|
|
5
|
+
17.
|
|
6
|
+
|
|
7
|
+
This prompt exists because Rule 1's traceability check is satisfied the
|
|
8
|
+
moment *any* test cites a requirement — it cannot by itself distinguish
|
|
9
|
+
"the underlying logic is tested" from "the feature actually activates
|
|
10
|
+
correctly when its trigger condition is met." See `docs/FAQ.md` for the
|
|
11
|
+
real-world case this was built from.
|
|
12
|
+
|
|
13
|
+
## Procedure
|
|
14
|
+
|
|
15
|
+
1. **Identify every conditional requirement** — scan `US_MODEL`/`BRD_MODEL`
|
|
16
|
+
for language indicating the behavior is gated: "when [flag] is enabled,"
|
|
17
|
+
"only visible to [role]," "on [event/deep-link]," "after [N attempts/a
|
|
18
|
+
schedule]," "if the user is eligible." Each is a candidate for this rule.
|
|
19
|
+
|
|
20
|
+
2. **For each candidate, search `TEST_CASE_MODEL` for two distinct kinds of
|
|
21
|
+
evidence**:
|
|
22
|
+
- **Logic-level evidence**: a test of the underlying decision in
|
|
23
|
+
isolation — a pure function returning true/false for the condition, a
|
|
24
|
+
reducer/slice transitioning correctly when the condition changes, or a
|
|
25
|
+
component test that receives the condition as a direct prop/parameter
|
|
26
|
+
rather than reading it from its real source.
|
|
27
|
+
- **Integration-level evidence**: a test that exercises the actual
|
|
28
|
+
consumption point — the screen/handler/controller that reads the
|
|
29
|
+
*real* gate (the actual flag accessor, the actual route/deep-link
|
|
30
|
+
parameter, the actual session/role check) — with the gate driven to
|
|
31
|
+
both its true and false state, confirming the behavior does/doesn't
|
|
32
|
+
activate.
|
|
33
|
+
|
|
34
|
+
3. **Classify**:
|
|
35
|
+
- Both present → `Full`.
|
|
36
|
+
- Logic-level present, integration-level absent → **`Wiring Gap`**. This
|
|
37
|
+
is the case worth calling out distinctly: everything *looks* tested
|
|
38
|
+
(the requirement has a passing, green test), but the actual wiring
|
|
39
|
+
that makes the feature work in production is unverified.
|
|
40
|
+
- Neither present → `Untested` (this is also caught by ordinary Rule 1 as
|
|
41
|
+
a plain traceability gap — don't double-report it under both rules;
|
|
42
|
+
reference the Rule 1 finding instead of duplicating it here).
|
|
43
|
+
|
|
44
|
+
4. Do not confuse a `Wiring Gap` with a low-risk finding by default — the
|
|
45
|
+
actual risk depends on the feature (a wiring gap on a cosmetic UI toggle
|
|
46
|
+
is Low; a wiring gap on an auth/eligibility gate is High). Assign
|
|
47
|
+
severity using the same evidence-based reasoning as Rule 10.
|
|
48
|
+
|
|
49
|
+
## Output
|
|
50
|
+
|
|
51
|
+
Table: Requirement ID | Gate Condition (verbatim) | Logic-Level Test |
|
|
52
|
+
Integration-Level Test (or "none") | Status | Severity (if Wiring Gap or
|
|
53
|
+
Untested).
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# Prompt 10 — Observation Report Assembly
|
|
2
|
+
|
|
3
|
+
**Input**: Every finding produced by Prompts 04-09.
|
|
4
|
+
**Output**: `VALIDATION_RULES.md` Rule 14 entries, for Report Template
|
|
5
|
+
Section 18, using `templates/observation-entry.md`.
|
|
6
|
+
|
|
7
|
+
## Procedure
|
|
8
|
+
|
|
9
|
+
1. **Collect** every non-`Full`/non-clean finding from: RTM gaps (Prompt 04),
|
|
10
|
+
coverage gaps (Prompt 05), missing scenarios (Prompt 06), true duplicates
|
|
11
|
+
(Prompt 07), risk-threshold shortfalls (Prompt 08), and wiring gaps
|
|
12
|
+
(Prompt 09).
|
|
13
|
+
|
|
14
|
+
2. **Deduplicate.** If the same underlying root cause produced findings
|
|
15
|
+
under multiple rules (e.g. a requirement with zero tests shows up as a
|
|
16
|
+
Rule 1 gap, a Rule 4 breadth gap, and a Rule 10 risk-threshold shortfall
|
|
17
|
+
all at once), merge these into **one** observation that lists every
|
|
18
|
+
affected angle, rather than three near-identical entries. A reader
|
|
19
|
+
should never see the same root cause explained three times with three
|
|
20
|
+
different severities.
|
|
21
|
+
|
|
22
|
+
3. **Assign severity** per finding, using this rubric (apply consistently —
|
|
23
|
+
do not let phrasing sound scarier or calmer than the underlying evidence
|
|
24
|
+
warrants):
|
|
25
|
+
- **High** — a High-risk requirement (Prompt 08) with zero or clearly
|
|
26
|
+
insufficient test evidence; a security/auth/financial-calculation gap;
|
|
27
|
+
a Wiring Gap on a High-risk gate; a Document Integrity contradiction
|
|
28
|
+
that could cause the wrong behavior to ship.
|
|
29
|
+
- **Medium** — a Medium-risk requirement gap; a Wiring Gap on a
|
|
30
|
+
Medium-risk gate; a partial scenario-type gap (e.g. negative path
|
|
31
|
+
untested) on an otherwise-covered requirement; a recurring pattern
|
|
32
|
+
across multiple requirements (even if each instance alone would be
|
|
33
|
+
Low, the pattern itself is Medium — see the recurring-wiring-gap
|
|
34
|
+
example in `docs/FAQ.md`).
|
|
35
|
+
- **Low** — cosmetic/naming/hygiene findings (Rule 11); a Low-risk
|
|
36
|
+
requirement gap; an isolated, non-recurring inferred-mapping-confidence
|
|
37
|
+
note.
|
|
38
|
+
|
|
39
|
+
4. **Write each entry** using `templates/observation-entry.md`'s exact
|
|
40
|
+
fields — Severity, Evidence, Affected Requirement(s), Affected Test
|
|
41
|
+
Case(s), Impact, Recommendation, Suggested Test Case. Every field is
|
|
42
|
+
mandatory; "N/A" is an acceptable value for Affected Test Case(s) (when
|
|
43
|
+
the gap is a pure orphan requirement) but the field must still be present.
|
|
44
|
+
|
|
45
|
+
5. **Order** the final list High → Medium → Low, and within each severity
|
|
46
|
+
band, order by how many requirements/user stories the observation
|
|
47
|
+
affects (most-affecting first).
|
|
48
|
+
|
|
49
|
+
## Do Not
|
|
50
|
+
|
|
51
|
+
- Do not write an observation with a vague evidence line like "insufficient
|
|
52
|
+
testing was found" — cite the exact requirement ID, document section, and
|
|
53
|
+
(if any) the test case IDs considered.
|
|
54
|
+
- Do not skip writing a Suggested Test Case for a finding just because the
|
|
55
|
+
fix seems obvious — "obvious" to the auditor is not the same as "written
|
|
56
|
+
down for whoever picks up the ticket."
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# Prompt 11 — Final Report Assembly
|
|
2
|
+
|
|
3
|
+
**Input**: Everything produced by Prompts 00-10, `QUALITY_SCORING.md`'s
|
|
4
|
+
computed score.
|
|
5
|
+
**Output**: The complete report per `REPORT_TEMPLATE.md`.
|
|
6
|
+
|
|
7
|
+
## Procedure
|
|
8
|
+
|
|
9
|
+
1. Walk `REPORT_TEMPLATE.md` section by section, in order, filling each from
|
|
10
|
+
the corresponding upstream artifact (the template names which prompt/rule
|
|
11
|
+
feeds each section).
|
|
12
|
+
|
|
13
|
+
2. **Never leave a section empty without an explanatory line.** "No
|
|
14
|
+
duplicate test cases were found in this suite." is a complete, correct
|
|
15
|
+
Section 14 when true. An empty heading with nothing under it is not —
|
|
16
|
+
the reader can't tell whether that means "checked, found nothing" or
|
|
17
|
+
"forgot to run this section."
|
|
18
|
+
|
|
19
|
+
3. **Cross-check internal consistency before emitting**: the Final Summary's
|
|
20
|
+
numbers must match the sums/percentages shown in the body sections
|
|
21
|
+
exactly. If Section 2's RTM shows 37 Full + 12 Partial + 3 Missing out of
|
|
22
|
+
52, the Final Summary's "Covered Requirements" must be derivable from
|
|
23
|
+
those same numbers (see `QUALITY_SCORING.md` for the partial-credit
|
|
24
|
+
convention used) — never present a summary number that doesn't trace
|
|
25
|
+
back to a body table.
|
|
26
|
+
|
|
27
|
+
4. **Compute and display the Quality Score breakdown** (Section 20) with
|
|
28
|
+
every category's weight, fraction, and rounded points visible — not just
|
|
29
|
+
the final total (see `QUALITY_SCORING.md` § Reporting the Score).
|
|
30
|
+
|
|
31
|
+
5. **Emit the Final Summary** using `templates/final-summary-block.md`
|
|
32
|
+
exactly, including the computed `PASS`/`NEEDS IMPROVEMENT`/`FAIL` status
|
|
33
|
+
and the **"What Needs To Be Fixed"** list immediately after it. Populate
|
|
34
|
+
that list directly from the already-ordered Section 18 Observation
|
|
35
|
+
Report — do not re-derive or re-word findings for it; pull the short
|
|
36
|
+
title and severity of each High-severity observation (all of them, never
|
|
37
|
+
capped) and each Medium-severity observation (capped only for length,
|
|
38
|
+
per the template's own guidance, with an explicit "+N more" line if
|
|
39
|
+
capped), and close with a one-line count of any remaining Low-severity
|
|
40
|
+
items. If Section 18 is empty (no observations at all — only possible
|
|
41
|
+
when every RTM row is `Full`), state that explicitly rather than
|
|
42
|
+
omitting the field.
|
|
43
|
+
|
|
44
|
+
6. **State the resolved configuration** used for this run near the top of
|
|
45
|
+
the Executive Summary (profile, BRD mode, any `CONFIG_OVERRIDE_INPUT`
|
|
46
|
+
applied) so the report is self-describing — a reader six months later
|
|
47
|
+
should be able to tell what rules were in effect without re-reading this
|
|
48
|
+
skill's source files.
|
|
49
|
+
|
|
50
|
+
## Rendering Target Awareness
|
|
51
|
+
|
|
52
|
+
If the calling context supports rendering a rich artifact (e.g. an HTML
|
|
53
|
+
report with colored status pills, a stat-tile executive summary, a
|
|
54
|
+
score-breakdown bar chart), it is appropriate to render one — but the
|
|
55
|
+
underlying section order, content, and every numeric value must be
|
|
56
|
+
identical to the plain-Markdown version this prompt produces. Visual
|
|
57
|
+
treatment is additive presentation, never a substitute for completeness.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Template — Coverage Category Table
|
|
2
|
+
|
|
3
|
+
Shared shape for Report Template Sections 6, 7, 9, 10, 11 (Frontend,
|
|
4
|
+
Backend, API, Database, Security) — anywhere Rules 2/3 produce a per-
|
|
5
|
+
category status list.
|
|
6
|
+
|
|
7
|
+
```markdown
|
|
8
|
+
| Category | Status | Evidence |
|
|
9
|
+
|---|---|---|
|
|
10
|
+
| <category name, verbatim from VALIDATION_RULES.md's list> | Full / Partial / Missing / N/A | <specific test case ID(s), or the one-line reason if N/A, or what's missing if Partial/Missing> |
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## Field Notes
|
|
14
|
+
|
|
15
|
+
- One table per Report Template section — do not merge Frontend and Backend
|
|
16
|
+
categories into a single table even though the shape is identical; the
|
|
17
|
+
reader scans these sections independently and expects them separated.
|
|
18
|
+
- A `Partial` row's Evidence column must say *what part* is covered and
|
|
19
|
+
*what part* isn't — "Partial" with generic evidence ("some tests exist")
|
|
20
|
+
fails `SYSTEM_PROMPT.md`'s evidence-citation requirement.
|
|
21
|
+
- If every row in a table is `N/A` (the whole category doesn't apply to this
|
|
22
|
+
profile), still render the table with the reasons — don't collapse the
|
|
23
|
+
whole section to one line; a reader auditing *why* nothing applies still
|
|
24
|
+
needs the per-category reasoning, particularly the "not yet classified"
|
|
25
|
+
case from Rule 17 step 4.
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# Template — Executive Summary
|
|
2
|
+
|
|
3
|
+
Opens every report (Report Template Section 1).
|
|
4
|
+
|
|
5
|
+
```markdown
|
|
6
|
+
## 1. Executive Summary
|
|
7
|
+
|
|
8
|
+
<One paragraph: what was validated (name the feature/module), against what
|
|
9
|
+
(name the specific documents/files), and the headline finding — the single
|
|
10
|
+
most important thing a reader should walk away knowing, stated in the first
|
|
11
|
+
sentence, not buried at the end of the paragraph.>
|
|
12
|
+
|
|
13
|
+
<Second paragraph, optional: the dominant *pattern* behind the findings, if
|
|
14
|
+
one exists — e.g. "the domain/calculation layer is comprehensively tested;
|
|
15
|
+
the gaps cluster in one recurring pattern: X" — this is more useful to a
|
|
16
|
+
reader than a flat list of unrelated issues, when a real pattern exists. Do
|
|
17
|
+
not manufacture a pattern that isn't there just to have one.>
|
|
18
|
+
|
|
19
|
+
**Scope**
|
|
20
|
+
|
|
21
|
+
| Category | Applicable to this project? | Reason if N/A |
|
|
22
|
+
|---|---|---|
|
|
23
|
+
| <every category referenced anywhere in the report> | Applicable / N/A | <one line> |
|
|
24
|
+
|
|
25
|
+
**Configuration used**: Project Profile `<name>` (<explicit input | auto-
|
|
26
|
+
detected from <signal>>) · BRD Mode: `<Separate BRD | Combined Spec Mode>` ·
|
|
27
|
+
Scoring weights: <default, or "custom — see CONFIG_OVERRIDE_INPUT">.
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Field Notes
|
|
31
|
+
|
|
32
|
+
- The Scope table doubles as the human-readable record of Rule 17's
|
|
33
|
+
resolution for this run — a reader should never have to cross-reference
|
|
34
|
+
`CONFIGURATION.md` to understand why, say, Database Coverage doesn't
|
|
35
|
+
appear as a failure later in the report.
|
|
36
|
+
- Keep the narrative paragraphs short. The Executive Summary's job is to let
|
|
37
|
+
someone who reads only this section still walk away with the headline —
|
|
38
|
+
the detail lives in Sections 2-20.
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
# Template — Final Summary Block
|
|
2
|
+
|
|
3
|
+
The mandatory closing block of every report. Every field must have a value —
|
|
4
|
+
never leave one blank, and never omit a field even if its value is `0` or
|
|
5
|
+
`N/A`.
|
|
6
|
+
|
|
7
|
+
```markdown
|
|
8
|
+
## Final Summary
|
|
9
|
+
|
|
10
|
+
TEST CASE VALIDATION SUMMARY
|
|
11
|
+
|
|
12
|
+
Project Profile: <resolved profile>
|
|
13
|
+
BRD Mode: <"Separate BRD" | "Combined Spec Mode">
|
|
14
|
+
|
|
15
|
+
Total Requirements: <n>
|
|
16
|
+
Covered Requirements: <n> (<n> Full + <n> Partial)
|
|
17
|
+
Missing Requirements: <n>
|
|
18
|
+
|
|
19
|
+
Total User Stories: <n>
|
|
20
|
+
Covered User Stories: <n>
|
|
21
|
+
|
|
22
|
+
Total Acceptance Criteria: <n>
|
|
23
|
+
Covered Acceptance Criteria: <n>
|
|
24
|
+
|
|
25
|
+
Total Test Cases: <n>
|
|
26
|
+
|
|
27
|
+
Requirement Coverage: <pct>%
|
|
28
|
+
Acceptance Criteria Coverage: <pct>%
|
|
29
|
+
Frontend Coverage: <pct>% (or "N/A — <reason>")
|
|
30
|
+
Backend Coverage: <pct>% (or "N/A — <reason>")
|
|
31
|
+
Functional Coverage: <pct>%
|
|
32
|
+
Negative Coverage: <pct>%
|
|
33
|
+
Boundary Coverage: <pct>%
|
|
34
|
+
Business Rule Coverage: <pct>%
|
|
35
|
+
API Coverage: <pct>% (or "N/A — <reason>")
|
|
36
|
+
Database Coverage: <pct>% (or "N/A — <reason>")
|
|
37
|
+
Security Coverage: <pct>% (or "N/A — <reason>")
|
|
38
|
+
Automation Coverage: <pct>%
|
|
39
|
+
|
|
40
|
+
Duplicate Test Cases: <n> exact, <n> partial, <n> near (layered — not counted as waste)
|
|
41
|
+
|
|
42
|
+
Missing Scenarios: <n> categories (see Section 13)
|
|
43
|
+
|
|
44
|
+
Gated-Behavior Wiring Gaps: <n> (see Section 17)
|
|
45
|
+
|
|
46
|
+
Overall Quality Score: <score>/100
|
|
47
|
+
|
|
48
|
+
Status: PASS | NEEDS IMPROVEMENT | FAIL
|
|
49
|
+
|
|
50
|
+
What Needs To Be Fixed (prioritized, High → Medium → Low):
|
|
51
|
+
1. <one-line action, phrased as what to do, not just what's wrong> — Severity: High (Observation #<n>, Section 18)
|
|
52
|
+
2. ...
|
|
53
|
+
<all High-severity observations, listed in full — never capped>
|
|
54
|
+
<then all Medium-severity observations, listed in full unless there are more than ~8, in which case list the highest-affecting ones and add a trailing line: "+<n> more Medium-severity items — see Section 18/19">
|
|
55
|
+
<Low-severity items are not repeated here individually — close with a trailing line: "+<n> Low-severity items — see Section 18/19", or omit the line entirely if there are zero>
|
|
56
|
+
<If there are zero High and zero Medium observations (typically only when Status is PASS): "No blocking fixes — see Section 19 for optional hardening suggestions.">
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## Field Notes
|
|
60
|
+
|
|
61
|
+
- Every percentage must trace back to `TRACEABILITY_ENGINE.md` §3's
|
|
62
|
+
formulas, computed from the same `RTM` shown in Section 2 — never a
|
|
63
|
+
number that can't be reconstructed from the body of the report.
|
|
64
|
+
- `Status` is computed purely from `Overall Quality Score` against
|
|
65
|
+
`RESOLVED_CONFIG.thresholds` (`QUALITY_SCORING.md` § Status Bands) — never
|
|
66
|
+
adjusted by "gut feel" after the fact, even if the auditor's prose
|
|
67
|
+
narrative feels more positive or negative than the number. If the prose
|
|
68
|
+
and the number seem to disagree, that's a sign the score inputs need
|
|
69
|
+
re-checking, not that the status should be hand-adjusted.
|
|
70
|
+
- **"What Needs To Be Fixed" is an index into Section 18, not a new analysis
|
|
71
|
+
surface.** Every line must resolve to an actual Observation Report entry
|
|
72
|
+
(same Severity, same evidence) — never introduce a fix item here that
|
|
73
|
+
wasn't already raised as an Observation. This keeps the Final Summary
|
|
74
|
+
skimmable (a reader who only reads this block still walks away knowing
|
|
75
|
+
what to do next) while Section 18 remains the single source of truth for
|
|
76
|
+
the full evidence/impact/recommendation/suggested-test-case behind each
|
|
77
|
+
one.
|
|
78
|
+
- Order strictly High → Medium → Low, and within each band, in the same
|
|
79
|
+
order Section 18 uses (most-affecting first per `prompts/10-observation-
|
|
80
|
+
report.md` step 5).
|
|
81
|
+
- Do not silently drop items past a cap — if Medium-severity findings are
|
|
82
|
+
capped for length, say how many were left out and point to Section 18/19,
|
|
83
|
+
mirroring the no-silent-truncation convention already used for the RTM
|
|
84
|
+
(`REPORT_TEMPLATE.md` Rendering Notes) and Rule 8's large-suite sampling
|
|
85
|
+
note.
|
|
86
|
+
- If `Status` is `PASS`, this field is still mandatory — state plainly that
|
|
87
|
+
there are no blocking fixes rather than omitting the field.
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# Template — Observation Entry
|
|
2
|
+
|
|
3
|
+
One entry per finding in the Observation Report (Report Template Section 18,
|
|
4
|
+
per `VALIDATION_RULES.md` Rule 14).
|
|
5
|
+
|
|
6
|
+
```markdown
|
|
7
|
+
### <Short, specific title naming the gap — not "Coverage Issue," but "NRI-specific summary layout (FR-012) has zero implementation">
|
|
8
|
+
|
|
9
|
+
**Severity**: High | Medium | Low
|
|
10
|
+
|
|
11
|
+
**Evidence**: <exact citation — document + section/ID, and/or test case IDs
|
|
12
|
+
considered, quoting the relevant source text when it's a formula, business
|
|
13
|
+
rule, or contradiction>
|
|
14
|
+
|
|
15
|
+
**Affected Requirement(s)**: <Requirement/US/AC IDs>
|
|
16
|
+
|
|
17
|
+
**Affected Test Case(s)**: <Test Case IDs, or "None — orphan requirement">
|
|
18
|
+
|
|
19
|
+
**Impact**: <what happens if this ships as-is — be concrete: "an NRI user
|
|
20
|
+
sees the standard summary layout, which the spec itself defines as
|
|
21
|
+
incorrect for that user segment," not "could cause issues">
|
|
22
|
+
|
|
23
|
+
**Recommendation**: <what to do, in priority-appropriate specificity —
|
|
24
|
+
resolve a blocked dependency first if that's the actual blocker, don't just
|
|
25
|
+
say "add tests" when the real gap is an unresolved open question upstream>
|
|
26
|
+
|
|
27
|
+
**Suggested Test Case**: <objective + key input + expected result — enough
|
|
28
|
+
to hand to whoever writes it next, not a full script>
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Field Notes
|
|
32
|
+
|
|
33
|
+
- If a finding spans multiple requirements/observations that share one root
|
|
34
|
+
cause (see `prompts/10-observation-report.md` § Deduplicate), list every
|
|
35
|
+
affected ID under **Affected Requirement(s)** rather than writing separate
|
|
36
|
+
entries.
|
|
37
|
+
- **Suggested Test Case** is required even when the recommendation is
|
|
38
|
+
process-level (e.g. "resolve the open contract-value question first") —
|
|
39
|
+
in that case, phrase it as the test that should exist *once the
|
|
40
|
+
dependency is resolved*, so the entry stays actionable rather than a dead
|
|
41
|
+
end.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Template — RTM Row
|
|
2
|
+
|
|
3
|
+
One row per requirement/user-story/acceptance-criterion in the Requirement
|
|
4
|
+
Traceability Matrix (Report Template Section 2).
|
|
5
|
+
|
|
6
|
+
```markdown
|
|
7
|
+
| Requirement ID | Requirement | User Story | Acceptance Criteria | Mapped Test Cases | Coverage | Status | Observation |
|
|
8
|
+
|---|---|---|---|---|---|---|---|
|
|
9
|
+
| <ID> | <one-line paraphrase, or verbatim if a formula/legal text> | <parent US ID, if any> | <AC IDs covered by this row, if row is at US level> | <Test Case ID(s), each tagged with its mapping tier: (T1)/(T2)/(T3)> | <Full / Partial / Missing / N/A> | <same as Coverage — kept as two columns because "Coverage" answers "how much" and "Status" answers "the verdict," which can diverge, e.g. Partial coverage with a High-severity gap still nets a Partial status but deserves a stronger Observation> | <One sentence: why Partial/Missing/N/A, or "Fully covered, no gaps" if Full> |
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
## Field Notes
|
|
13
|
+
|
|
14
|
+
- **Mapped Test Cases**: always show the mapping tier inline —
|
|
15
|
+
`TC-004 (T1)`, `HoldingsViewScreen.test.tsx::...(T3, inferred_medium)`.
|
|
16
|
+
Never present a Tier 3 fuzzy match with the same visual weight as a
|
|
17
|
+
Tier 1 explicit match.
|
|
18
|
+
- **Observation**: mandatory for every non-Full row. For a Full row, still
|
|
19
|
+
write one line ("Fully covered — positive, negative, and boundary all
|
|
20
|
+
present") rather than leaving it blank, so the table doesn't read as
|
|
21
|
+
incomplete.
|
|
22
|
+
- Group rows in the rendered report by the source document's own
|
|
23
|
+
organizing structure (typically by User Story, in priority order) —
|
|
24
|
+
don't present the RTM as one flat alphabetical-by-ID list unless the
|
|
25
|
+
source document itself has no other structure.
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# validation-engine-builder
|
|
2
|
+
|
|
3
|
+
AI-driven centralized form validation skill for **React Native, React (web), Angular, and Flutter**.
|
|
4
|
+
|
|
5
|
+
**The agent reads your screen/page/component/widget file, figures out what validation each field
|
|
6
|
+
needs, detects which of the 4 platforms the project is, and wires everything up automatically** —
|
|
7
|
+
`Controller`+`useValidatedForm` (RN/React), `FormBuilder`+`Validators` (Angular), or
|
|
8
|
+
`TextFormField.validator` (Flutter).
|
|
9
|
+
|
|
10
|
+
All error messages stay in one file. All regex patterns stay in one file. One JSON edit updates
|
|
11
|
+
every screen/page/component/widget, on every platform, instantly — the same
|
|
12
|
+
`templates/messages.json` / `templates/regex.json` / `templates/schemas.json` drive all 4 targets.
|
|
13
|
+
|
|
14
|
+
### How it works
|
|
15
|
+
|
|
16
|
+
1. Tell the agent to add validation to a screen/page/component/widget (or just open the file)
|
|
17
|
+
2. The agent detects the platform (React Native, React web, Angular, or Flutter) from the project
|
|
18
|
+
3. It reads the file, identifies every input field, and determines the correct validation per field
|
|
19
|
+
4. It checks existing schemas in `templates/schemas.json` — reuses a match, creates a new one if needed
|
|
20
|
+
5. Runs `apply-to-project.js` to regenerate the platform's validation output
|
|
21
|
+
6. Rewrites the file with that platform's form-wiring pattern fully applied
|
|
22
|
+
|
|
23
|
+
### Generated output per platform
|
|
24
|
+
|
|
25
|
+
| Platform | Output location | Files |
|
|
26
|
+
|---|---|---|
|
|
27
|
+
| React Native | `src/validation/` | `messages.ts`, `regex.ts`, `schemas.ts` (Yup), `useValidatedForm.ts`, `ValidationError.tsx` |
|
|
28
|
+
| React (web) | `src/validation/` | same 5 files — `ValidationError.tsx` renders a `<span>` instead of RN's `<Text>` |
|
|
29
|
+
| Angular | `src/app/validation/` | `validation-messages.ts`, `validation-regex.ts`, `pattern-with-message.validator.ts`, `validators.ts` (Angular `Validators[]`), `validation-error.component.ts` |
|
|
30
|
+
| Flutter | `lib/core/validation/` | `validation_messages.dart`, `validation_regex.dart`, `validators.dart` — no separate error-display file; `TextFormField` shows the validator's return value automatically |
|
|
31
|
+
|
|
32
|
+
Edit `templates/*.json`, never the generated output — see `template.md`.
|
|
33
|
+
|
|
34
|
+
### Supported dependencies
|
|
35
|
+
|
|
36
|
+
React Native / React (web) install `react-hook-form` + `@hookform/resolvers` + `yup`, version-pinned
|
|
37
|
+
by detected React Native version (see `references/platform-react-native.md`). Angular and Flutter
|
|
38
|
+
need **no additional dependency** — Angular's Reactive Forms ships with `@angular/forms`, and
|
|
39
|
+
Flutter's `TextFormField.validator` needs no package.
|
|
40
|
+
|
|
41
|
+
| React Native | react-hook-form | @hookform/resolvers | yup |
|
|
42
|
+
|---|---|---|---|
|
|
43
|
+
| 0.80+ | ^7.54.0 | ^3.9.0 | ^1.4.0 |
|
|
44
|
+
| 0.73–0.79 | ^7.51.0 | ^3.4.0 | ^1.3.0 |
|
|
45
|
+
| < 0.73 | ^7.43.0 | ^3.1.0 | ^1.0.0 |
|
|
46
|
+
|
|
47
|
+
### Reference files
|
|
48
|
+
|
|
49
|
+
- `references/core.md` — platform-agnostic: field-type detection, regex/message/schema key tables, golden rules
|
|
50
|
+
- `references/platform-react-native.md`, `platform-react.md`, `platform-angular.md`, `platform-flutter.md` — per-platform wiring patterns
|