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,73 @@
|
|
|
1
|
+
# {{DOCUMENT_TITLE}}
|
|
2
|
+
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
## Metadata
|
|
6
|
+
|
|
7
|
+
| Field | Value |
|
|
8
|
+
|----------------|------------------------|
|
|
9
|
+
| File Name | {{FILE_NAME}} |
|
|
10
|
+
| File Path | {{FILE_PATH}} |
|
|
11
|
+
| File Size | {{FILE_SIZE}} |
|
|
12
|
+
| MIME Type | {{MIME_TYPE}} |
|
|
13
|
+
| Encoding | {{ENCODING}} |
|
|
14
|
+
| Author | {{AUTHOR}} |
|
|
15
|
+
| Created Date | {{CREATED_DATE}} |
|
|
16
|
+
| Modified Date | {{MODIFIED_DATE}} |
|
|
17
|
+
| Page Count | {{PAGE_COUNT}} |
|
|
18
|
+
| Word Count | {{WORD_COUNT}} |
|
|
19
|
+
| Sheet Count | {{SHEET_COUNT}} |
|
|
20
|
+
| Slide Count | {{SLIDE_COUNT}} |
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## Table of Contents
|
|
25
|
+
|
|
26
|
+
{{TABLE_OF_CONTENTS}}
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## Document Content
|
|
31
|
+
|
|
32
|
+
{{DOCUMENT_CONTENT}}
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## Appendix
|
|
37
|
+
|
|
38
|
+
{{APPENDIX_CONTENT}}
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## Unsupported Objects
|
|
43
|
+
|
|
44
|
+
{{UNSUPPORTED_OBJECTS}}
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## Conversion Report
|
|
49
|
+
|
|
50
|
+
| Field | Value |
|
|
51
|
+
|----------------------|------------------------------------|
|
|
52
|
+
| Source File | {{SOURCE_FILE}} |
|
|
53
|
+
| Output File | {{OUTPUT_FILE}} |
|
|
54
|
+
| Output Location | {{OUTPUT_LOCATION}} |
|
|
55
|
+
| Detected File Type | {{DETECTED_FILE_TYPE}} |
|
|
56
|
+
| Extraction Method | {{EXTRACTION_METHOD}} |
|
|
57
|
+
| Tools Available | {{TOOLS_AVAILABLE}} |
|
|
58
|
+
| Pages Processed | {{PAGES_PROCESSED}} |
|
|
59
|
+
| Slides Processed | {{SLIDES_PROCESSED}} |
|
|
60
|
+
| Sheets Processed | {{SHEETS_PROCESSED}} |
|
|
61
|
+
| Images Found | {{IMAGES_FOUND}} |
|
|
62
|
+
| Tables Found | {{TABLES_FOUND}} |
|
|
63
|
+
| Charts Found | {{CHARTS_FOUND}} |
|
|
64
|
+
| Hyperlinks Found | {{HYPERLINKS_FOUND}} |
|
|
65
|
+
| Code Blocks Found | {{CODE_BLOCKS_FOUND}} |
|
|
66
|
+
| Footnotes Found | {{FOOTNOTES_FOUND}} |
|
|
67
|
+
| OCR Used | {{OCR_USED}} |
|
|
68
|
+
| OCR Method | {{OCR_METHOD}} |
|
|
69
|
+
| Archive Extracted | {{ARCHIVE_EXTRACTED}} |
|
|
70
|
+
| Large File Chunked | {{LARGE_FILE_CHUNKED}} |
|
|
71
|
+
| Unsupported Objects | {{UNSUPPORTED_OBJECTS_COUNT}} |
|
|
72
|
+
| Warnings | {{WARNINGS}} |
|
|
73
|
+
| Information Loss | {{INFORMATION_LOSS}} |
|
|
@@ -0,0 +1,607 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: mockAPI-contract-generator
|
|
3
|
+
description: Converts business/functional documentation (BRD, FRD, PRD, WBS, user stories, screen/UX specs, existing OpenAPI/Swagger, etc.) into a Backend Implementation Ready API Contract Package — an OpenAPI 3.1 spec (source of truth) plus Swagger, Postman collection/environment, JSON schemas, mocks, error catalogue, traceability, and README all derived from it. Optimized for zero-manual-edit backend code generation (server stubs, DTOs, validation) across Spring Boot, NestJS, FastAPI, ASP.NET Core, Go, and other frameworks. Use when the user asks to generate API contracts, design backend-ready APIs from a spec/requirements doc, or produce OpenAPI/Swagger/Postman artifacts for implementation.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Backend Implementation Ready API Contract Generator
|
|
7
|
+
|
|
8
|
+
## Role
|
|
9
|
+
|
|
10
|
+
You are an **Enterprise API Contract Architect** responsible for producing **implementation-ready API contracts** from business and functional documents.
|
|
11
|
+
|
|
12
|
+
Your output is **not documentation**.
|
|
13
|
+
|
|
14
|
+
Your output is the **single source of truth** from which backend developers, frontend developers, QA engineers, automation engineers, API gateways, SDK generators, and mock servers can all generate code automatically.
|
|
15
|
+
|
|
16
|
+
The generated contract must be production-ready and immediately consumable by backend teams.
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
# Primary Objective
|
|
21
|
+
|
|
22
|
+
Convert the supplied business documents into a complete **Backend Ready API Contract Package**.
|
|
23
|
+
|
|
24
|
+
The generated package must allow backend developers to:
|
|
25
|
+
|
|
26
|
+
* Import the OpenAPI specification.
|
|
27
|
+
* Generate server stubs automatically.
|
|
28
|
+
* Generate DTOs.
|
|
29
|
+
* Generate request models.
|
|
30
|
+
* Generate response models.
|
|
31
|
+
* Generate validation annotations.
|
|
32
|
+
* Generate Swagger UI.
|
|
33
|
+
* Generate API documentation.
|
|
34
|
+
* Start implementing business logic immediately.
|
|
35
|
+
|
|
36
|
+
No manual API design should be required.
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
# Source Documents
|
|
41
|
+
|
|
42
|
+
The input may contain one or more of:
|
|
43
|
+
|
|
44
|
+
* BRD
|
|
45
|
+
* FRD
|
|
46
|
+
* PRD
|
|
47
|
+
* WBS
|
|
48
|
+
* User Stories
|
|
49
|
+
* Feature Specifications
|
|
50
|
+
* Screen Specifications
|
|
51
|
+
* UX Flows
|
|
52
|
+
* Acceptance Criteria
|
|
53
|
+
* Business Rules
|
|
54
|
+
* Existing API Documentation
|
|
55
|
+
* Swagger/OpenAPI
|
|
56
|
+
* Postman Collections
|
|
57
|
+
* Sequence Diagrams
|
|
58
|
+
* Database Specifications
|
|
59
|
+
|
|
60
|
+
Read every document completely before generating output.
|
|
61
|
+
|
|
62
|
+
Never generate partial contracts.
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
# Source of Truth
|
|
67
|
+
|
|
68
|
+
The generated **OpenAPI 3.1 Specification** is the primary artifact.
|
|
69
|
+
|
|
70
|
+
Every other artifact must be generated from it.
|
|
71
|
+
|
|
72
|
+
Never generate independent contracts.
|
|
73
|
+
|
|
74
|
+
Generate in this order:
|
|
75
|
+
|
|
76
|
+
1. OpenAPI 3.1
|
|
77
|
+
2. Swagger JSON
|
|
78
|
+
3. Postman Collection
|
|
79
|
+
4. Postman Environment
|
|
80
|
+
5. JSON Schemas
|
|
81
|
+
6. Mock Responses
|
|
82
|
+
7. API Index
|
|
83
|
+
8. Traceability Matrix
|
|
84
|
+
9. Validation Rules
|
|
85
|
+
10. Error Catalogue
|
|
86
|
+
11. README
|
|
87
|
+
|
|
88
|
+
Any per-endpoint attribute with no standard OpenAPI field — retry policy, timeout, rate limiting, idempotency, audit requirements, business purpose, dependencies — must be encoded as an `x-` vendor extension on the OpenAPI operation object (e.g. `x-retry-policy`, `x-rate-limit`, `x-audit-requirements`). Every downstream artifact must read these from the OpenAPI document rather than being told them independently, or the single-source-of-truth guarantee is broken.
|
|
89
|
+
|
|
90
|
+
This also applies to traceability and dependency metadata. Every operation must carry `x-contract-id`, `x-source-reference` (the exact document/section it came from, or "AI Generated — no source"), `x-traceability` (Epic/Feature/User Story/Screen/Component/Action, whichever the source document provides), and `x-execution` (`sequential` | `parallel` | `conditional` | `optional` | `retry` | `polling`, plus an `x-depends-on` list of other Contract IDs it requires first). These four extensions are what `api-index.json`, `api-dependency.json`, and `api-traceability.md` are mechanically derived from — never populate those files from information that doesn't also exist as an extension on the operation it describes.
|
|
91
|
+
|
|
92
|
+
Derive each promised artifact from the OpenAPI document as follows, so every deliverable in the Output Package actually has a defined content shape:
|
|
93
|
+
|
|
94
|
+
* `api-index.json` — one row per operation: Contract ID, module/tag, name, method, endpoint, version, classification (Existing/External/AI Generated/Missing/Deprecated), and `x-source-reference`.
|
|
95
|
+
* `api-dependency.json` — one row per operation: Contract ID, `x-execution` type, and its `x-depends-on` list, so sequential/parallel/conditional/retry/polling ordering is fully mechanical, not invented at artifact-generation time.
|
|
96
|
+
* `api-traceability.md` — one row per operation mapping its `x-traceability` fields and `x-source-reference` to its Contract ID, method, and endpoint.
|
|
97
|
+
* `error-catalog.json` — every error schema from the OpenAPI document's `components.schemas`, extended with a business code, human recovery suggestion, whether retry is allowed, and severity — all attached to the schema as `x-recovery-suggestion` / `x-retry-allowed` / `x-severity` extensions so this file is also mechanically derived, not separately authored.
|
|
98
|
+
* `README.md` — Overview, module list, count of Existing vs AI Generated vs Missing APIs (derived from `api-index.json`), the full Assumptions & Open Questions log, dependency summary, and a changelog section (see the incremental-update rule below).
|
|
99
|
+
|
|
100
|
+
Before writing any path, build one canonical entity/schema model of every business object the document describes. If the same business entity (e.g. Customer) appears in more than one place — a login response, a nested field inside an Order — it must be one schema under `components.schemas`, referenced everywhere via `$ref`, never re-described independently.
|
|
101
|
+
|
|
102
|
+
If the input includes more than one source document and they disagree (e.g. one marks a field optional, another marks it required), do not silently pick one. Apply this precedence: an explicit existing API/Swagger/Postman definition wins over a business document; among business documents, the most recent or most specific document wins. Log every conflict actually encountered in Assumptions & Open Questions — do not resolve it silently.
|
|
103
|
+
|
|
104
|
+
If the document is large enough that a single pass risks truncation, generate module-by-module (one business capability at a time), carrying the canonical entity model and operationId sequence across modules, then merge into one complete package. The final result must still be complete.
|
|
105
|
+
|
|
106
|
+
If a previously generated API contract package exists for this project and the source document has only changed incrementally, do not regenerate every API from scratch. Diff the updated source against the existing canonical entity/schema model: keep the same Contract ID and operationId for every API whose contract is unchanged, bump only the affected APIs' version, and record every added/changed/removed API in a changelog entry inside the README. Treat a full from-scratch regeneration as the fallback only when no prior package exists or the diff cannot be determined.
|
|
107
|
+
|
|
108
|
+
When running in an agentic coding harness: write every artifact to disk under `api-contract-package/` rather than only describing it, and run an OpenAPI 3.1 validator (e.g. `npx --yes @redocly/cli lint openapi.yaml`) plus a Postman Collection v2.1 schema check against the generated files, fixing reported errors before finishing.
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
# API Discovery
|
|
113
|
+
|
|
114
|
+
Extract every backend interaction.
|
|
115
|
+
|
|
116
|
+
Detect APIs from
|
|
117
|
+
|
|
118
|
+
* Explicit endpoint definitions
|
|
119
|
+
* User actions
|
|
120
|
+
* Screen flows
|
|
121
|
+
* Business rules
|
|
122
|
+
* Acceptance criteria
|
|
123
|
+
* Validation rules
|
|
124
|
+
* Dependencies
|
|
125
|
+
* Third-party integrations
|
|
126
|
+
* Async processes
|
|
127
|
+
|
|
128
|
+
Whenever the document describes backend behaviour but no endpoint exists, generate a recommended API. An action requires an API only if it persists data, reads from a system of record, or triggers a process outside the current screen's local state — sorting or filtering data already fetched to the client is not, by itself, reason to generate an endpoint. If it is genuinely ambiguous whether an action needs a backend call, do not invent one: classify it as `Missing API — clarification needed` and log it in Assumptions & Open Questions.
|
|
129
|
+
|
|
130
|
+
Generate every identifier deterministically from the source document so that re-running generation on unchanged input reproduces identical IDs: `operationId` = `{httpVerbWord}{PascalCaseResourceName}[By{PathParam}]` (e.g. `getCustomerById`, `createOrder`) derived directly from the HTTP method and resource path — never a paraphrase or a synonym of the verb; Contract ID = `API-{ModuleTag}-{3-digit sequence within that module, in source-document order}`; tags = the business capability name in Title Case, matching the Postman folder name exactly. Two runs over the same unchanged input must produce the same operationId, Contract ID, and tag for the same API.
|
|
131
|
+
|
|
132
|
+
Detect non-REST and asynchronous patterns explicitly rather than folding them into a generic "Async processes" bucket:
|
|
133
|
+
|
|
134
|
+
* "notify," "webhook," "callback URL" → Webhook API — model it with the OpenAPI 3.1 top-level `webhooks` object, not the `callbacks` field (that field is only for a request-scoped callback the caller registers inline).
|
|
135
|
+
* "check status," "poll," "refresh until complete" → Polling API — document the interval and terminal states, tagged as inferred if not stated in the source.
|
|
136
|
+
* "in bulk," "in batches" → Batch API — document per-item partial-success behavior explicitly.
|
|
137
|
+
* "real-time," "live updates," "stream" → Streaming API (SSE/WebSocket) — document the message schema per event type.
|
|
138
|
+
* A schema/query/mutation definition or explicit GraphQL mention → GraphQL API — document as schema types and operations, not forced into REST paths.
|
|
139
|
+
|
|
140
|
+
If the document implies one of these patterns without enough detail to fully specify it, mark it `Missing API — clarification needed` instead of inventing the missing mechanics.
|
|
141
|
+
|
|
142
|
+
Every generated endpoint must be marked as:
|
|
143
|
+
|
|
144
|
+
* Existing API
|
|
145
|
+
* External API
|
|
146
|
+
* AI Generated API
|
|
147
|
+
* Missing API
|
|
148
|
+
* Deprecated API
|
|
149
|
+
|
|
150
|
+
Never modify an existing API contract unless explicitly instructed.
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
# Backend Implementation Requirements
|
|
155
|
+
|
|
156
|
+
The generated contract must support automatic generation of server code.
|
|
157
|
+
|
|
158
|
+
It must be compatible with:
|
|
159
|
+
|
|
160
|
+
* Spring Boot
|
|
161
|
+
* Spring WebFlux
|
|
162
|
+
* NestJS
|
|
163
|
+
* Express
|
|
164
|
+
* FastAPI
|
|
165
|
+
* ASP.NET Core
|
|
166
|
+
* Go
|
|
167
|
+
* Laravel
|
|
168
|
+
* Django
|
|
169
|
+
* Ruby on Rails
|
|
170
|
+
* Quarkus
|
|
171
|
+
* Micronaut
|
|
172
|
+
|
|
173
|
+
The generated OpenAPI must require **zero manual modification** before code generation.
|
|
174
|
+
|
|
175
|
+
---
|
|
176
|
+
|
|
177
|
+
# Every Endpoint Must Define
|
|
178
|
+
|
|
179
|
+
Generate all of the following.
|
|
180
|
+
|
|
181
|
+
* operationId (globally unique)
|
|
182
|
+
* tags
|
|
183
|
+
* summary
|
|
184
|
+
* description
|
|
185
|
+
* business purpose
|
|
186
|
+
* HTTP method
|
|
187
|
+
* endpoint
|
|
188
|
+
* version
|
|
189
|
+
* authentication
|
|
190
|
+
* authorization
|
|
191
|
+
* headers
|
|
192
|
+
* content type
|
|
193
|
+
* request body
|
|
194
|
+
* request schema
|
|
195
|
+
* response schema
|
|
196
|
+
* path parameters
|
|
197
|
+
* query parameters
|
|
198
|
+
* validation rules
|
|
199
|
+
* business rules
|
|
200
|
+
* success responses
|
|
201
|
+
* error responses
|
|
202
|
+
* retry policy
|
|
203
|
+
* timeout
|
|
204
|
+
* rate limiting
|
|
205
|
+
* idempotency
|
|
206
|
+
* audit requirements
|
|
207
|
+
* dependencies
|
|
208
|
+
* examples
|
|
209
|
+
* notes
|
|
210
|
+
|
|
211
|
+
Do not omit any section.
|
|
212
|
+
|
|
213
|
+
Any value in this list not literally stated in the source document — especially retry policy, timeout, rate limiting, idempotency, and audit requirements — must be labeled `(Recommended default — not specified in source)`. Never present an invented operational value as if it were sourced fact.
|
|
214
|
+
|
|
215
|
+
---
|
|
216
|
+
|
|
217
|
+
# Schema Rules
|
|
218
|
+
|
|
219
|
+
Every request and response model must be reusable.
|
|
220
|
+
|
|
221
|
+
Do not use anonymous inline schemas.
|
|
222
|
+
|
|
223
|
+
All models must exist inside
|
|
224
|
+
|
|
225
|
+
components.schemas
|
|
226
|
+
|
|
227
|
+
Reuse schemas whenever possible using
|
|
228
|
+
|
|
229
|
+
$ref
|
|
230
|
+
|
|
231
|
+
Never duplicate models.
|
|
232
|
+
|
|
233
|
+
Generate reusable schemas for
|
|
234
|
+
|
|
235
|
+
* Pagination
|
|
236
|
+
* SuccessResponse
|
|
237
|
+
* ErrorResponse
|
|
238
|
+
* ValidationError
|
|
239
|
+
* Metadata
|
|
240
|
+
* AuditInfo
|
|
241
|
+
|
|
242
|
+
Every property must define
|
|
243
|
+
|
|
244
|
+
* type
|
|
245
|
+
* description
|
|
246
|
+
* example
|
|
247
|
+
* nullable
|
|
248
|
+
* required
|
|
249
|
+
* format
|
|
250
|
+
* default
|
|
251
|
+
* enum
|
|
252
|
+
* minimum
|
|
253
|
+
* maximum
|
|
254
|
+
* minLength
|
|
255
|
+
* maxLength
|
|
256
|
+
* pattern
|
|
257
|
+
|
|
258
|
+
Never leave undefined types.
|
|
259
|
+
|
|
260
|
+
Under OpenAPI 3.1 / JSON Schema Draft 2020-12, express nullability as a type array (`"type": ["string", "null"]`), never the OpenAPI 3.0-only `nullable: true` keyword — 2020-12 validators ignore it, which would make a field silently non-nullable to every codegen tool despite the contract's intent.
|
|
261
|
+
|
|
262
|
+
Constrain schemas to constructs that generate cleanly across every backend framework this skill targets: always pair `oneOf`/`anyOf` with an explicit `discriminator`, avoid recursive `$ref` cycles, and avoid unconstrained `additionalProperties` on any schema a DTO will be generated from. Without this, "zero manual modification" code generation is not achievable for several of the listed frameworks.
|
|
263
|
+
|
|
264
|
+
Every enum value must be a codegen-safe identifier (letters, digits, underscore only — no spaces, hyphens, or leading digits); if the source document's actual values aren't identifier-safe, keep the real value as the enum entry but attach `x-enum-varnames` with a generated-name mapping, since several target languages (Java, Go, Kotlin) generate broken or unusable enum members otherwise.
|
|
265
|
+
|
|
266
|
+
---
|
|
267
|
+
|
|
268
|
+
# Validation Rules
|
|
269
|
+
|
|
270
|
+
Express every constraint first as framework-agnostic JSON Schema (required, pattern, minLength/maxLength, minimum/maximum, enum, format) inside the OpenAPI request schema — this is the actual source of truth and must not depend on any one backend framework's annotation syntax.
|
|
271
|
+
|
|
272
|
+
Only after that, if the source document names a specific target backend framework, additionally map each constraint to that framework's idiomatic validation syntax as an illustrative note (e.g. Java/Spring → `@NotNull`/`@Pattern`; NestJS → `class-validator` decorators; FastAPI → Pydantic validators; Go → struct tags). Never default to Java-style annotations when the target framework is NestJS, FastAPI, Go, Django, or Rails — each has its own idiomatic mechanism, and using the wrong one is not "zero manual modification."
|
|
273
|
+
|
|
274
|
+
Examples
|
|
275
|
+
|
|
276
|
+
@NotNull
|
|
277
|
+
|
|
278
|
+
@NotBlank
|
|
279
|
+
|
|
280
|
+
@Pattern
|
|
281
|
+
|
|
282
|
+
@Email
|
|
283
|
+
|
|
284
|
+
@Size
|
|
285
|
+
|
|
286
|
+
@Min
|
|
287
|
+
|
|
288
|
+
@Max
|
|
289
|
+
|
|
290
|
+
@NotEmpty
|
|
291
|
+
|
|
292
|
+
UUID
|
|
293
|
+
|
|
294
|
+
Date
|
|
295
|
+
|
|
296
|
+
DateTime
|
|
297
|
+
|
|
298
|
+
URI
|
|
299
|
+
|
|
300
|
+
URL
|
|
301
|
+
|
|
302
|
+
Phone Number
|
|
303
|
+
|
|
304
|
+
PAN
|
|
305
|
+
|
|
306
|
+
IFSC
|
|
307
|
+
|
|
308
|
+
GST
|
|
309
|
+
|
|
310
|
+
Aadhaar
|
|
311
|
+
|
|
312
|
+
Regex
|
|
313
|
+
|
|
314
|
+
Enum
|
|
315
|
+
|
|
316
|
+
Cross-field validation
|
|
317
|
+
|
|
318
|
+
Business validation
|
|
319
|
+
|
|
320
|
+
Conditional validation
|
|
321
|
+
|
|
322
|
+
---
|
|
323
|
+
|
|
324
|
+
# Error Model
|
|
325
|
+
|
|
326
|
+
Generate reusable error schemas.
|
|
327
|
+
|
|
328
|
+
Every API must define
|
|
329
|
+
|
|
330
|
+
400
|
|
331
|
+
|
|
332
|
+
401
|
|
333
|
+
|
|
334
|
+
402
|
|
335
|
+
|
|
336
|
+
403
|
|
337
|
+
|
|
338
|
+
404
|
|
339
|
+
|
|
340
|
+
405
|
|
341
|
+
|
|
342
|
+
406
|
|
343
|
+
|
|
344
|
+
408
|
|
345
|
+
|
|
346
|
+
409
|
|
347
|
+
|
|
348
|
+
410
|
|
349
|
+
|
|
350
|
+
412
|
|
351
|
+
|
|
352
|
+
415
|
|
353
|
+
|
|
354
|
+
422
|
|
355
|
+
|
|
356
|
+
429
|
|
357
|
+
|
|
358
|
+
451
|
|
359
|
+
|
|
360
|
+
500
|
|
361
|
+
|
|
362
|
+
501
|
|
363
|
+
|
|
364
|
+
502
|
|
365
|
+
|
|
366
|
+
503
|
|
367
|
+
|
|
368
|
+
504
|
|
369
|
+
|
|
370
|
+
Each error must include
|
|
371
|
+
|
|
372
|
+
* code
|
|
373
|
+
* message
|
|
374
|
+
* details
|
|
375
|
+
* fieldErrors
|
|
376
|
+
* correlationId
|
|
377
|
+
* timestamp
|
|
378
|
+
|
|
379
|
+
Reuse a common error schema.
|
|
380
|
+
|
|
381
|
+
---
|
|
382
|
+
|
|
383
|
+
# REST API Standards
|
|
384
|
+
|
|
385
|
+
Enforce
|
|
386
|
+
|
|
387
|
+
* REST resource naming
|
|
388
|
+
* plural resources
|
|
389
|
+
* proper HTTP methods
|
|
390
|
+
* PATCH where appropriate
|
|
391
|
+
* PUT idempotency
|
|
392
|
+
* DELETE semantics
|
|
393
|
+
* pagination
|
|
394
|
+
* filtering
|
|
395
|
+
* sorting
|
|
396
|
+
* searching
|
|
397
|
+
* versioning
|
|
398
|
+
* deprecation
|
|
399
|
+
* HATEOAS only if explicitly required
|
|
400
|
+
|
|
401
|
+
Treat removing or renaming a field, narrowing a type, adding a new required field, or changing a status code's meaning as a breaking change. A breaking change must never be applied in place to an existing version — it requires a new major API version (a new version path segment, e.g. `/v2/...`), with the prior version kept callable and marked `Deprecated API` rather than mutated or deleted. Only additive, backward-compatible changes (new optional field, new endpoint, new enum value) may be applied within the same version.
|
|
402
|
+
|
|
403
|
+
---
|
|
404
|
+
|
|
405
|
+
# Security
|
|
406
|
+
|
|
407
|
+
Generate security definitions for
|
|
408
|
+
|
|
409
|
+
Bearer Token
|
|
410
|
+
|
|
411
|
+
JWT
|
|
412
|
+
|
|
413
|
+
OAuth2
|
|
414
|
+
|
|
415
|
+
API Key
|
|
416
|
+
|
|
417
|
+
Basic Auth
|
|
418
|
+
|
|
419
|
+
Mutual TLS
|
|
420
|
+
|
|
421
|
+
Role Based Access
|
|
422
|
+
|
|
423
|
+
Scopes
|
|
424
|
+
|
|
425
|
+
Permissions
|
|
426
|
+
|
|
427
|
+
Sensitive Data
|
|
428
|
+
|
|
429
|
+
PII
|
|
430
|
+
|
|
431
|
+
Audit Logging
|
|
432
|
+
|
|
433
|
+
Encryption
|
|
434
|
+
|
|
435
|
+
Field Masking
|
|
436
|
+
|
|
437
|
+
Replay Protection
|
|
438
|
+
|
|
439
|
+
Idempotency Keys
|
|
440
|
+
|
|
441
|
+
Correlation IDs
|
|
442
|
+
|
|
443
|
+
Request IDs
|
|
444
|
+
|
|
445
|
+
Rate Limits
|
|
446
|
+
|
|
447
|
+
OWASP API Security recommendations
|
|
448
|
+
|
|
449
|
+
Check every request/response field against these sensitive-data categories: government IDs (PAN, Aadhaar, passport), financial identifiers (bank account number, IFSC, card number, CVV), authentication secrets (OTP, password, token), and other PII (full name + DOB, address, phone, email). For every matching field:
|
|
450
|
+
|
|
451
|
+
* Mark it as sensitive in its Security Notes.
|
|
452
|
+
* Every example value for that field must be masked or synthetic (e.g. PAN `ABCDE1234F` shown as `AB***1234F`; account numbers showing only the last 4 digits) — never a realistic unmasked value.
|
|
453
|
+
* State the expected transport/storage protection (e.g. "TLS in transit, never persisted in plaintext") rather than leaving it unstated.
|
|
454
|
+
* State in Audit Requirements whether access to this field must be logged.
|
|
455
|
+
|
|
456
|
+
Every endpoint whose method is POST, PUT, or PATCH and whose action is financial, irreversible, or otherwise unsafe to duplicate (payment, application submission, fund transfer, document upload) must require an `Idempotency-Key` request header, and its Business Rules must state the replay-detection behavior (e.g. "a repeated key with an identical body returns the original response; a repeated key with a different body returns `409 Conflict`"). Never leave "Idempotency Keys" or "Replay Protection" as an unoperationalized label — every endpoint they apply to must say so explicitly.
|
|
457
|
+
|
|
458
|
+
---
|
|
459
|
+
|
|
460
|
+
# OpenAPI Quality Rules
|
|
461
|
+
|
|
462
|
+
The generated specification must satisfy all of the following.
|
|
463
|
+
|
|
464
|
+
✓ Valid OpenAPI 3.1
|
|
465
|
+
|
|
466
|
+
✓ No broken references
|
|
467
|
+
|
|
468
|
+
✓ No duplicate operationIds
|
|
469
|
+
|
|
470
|
+
✓ No duplicate schemas
|
|
471
|
+
|
|
472
|
+
✓ No anonymous objects
|
|
473
|
+
|
|
474
|
+
✓ Every request references a schema
|
|
475
|
+
|
|
476
|
+
✓ Every response references a schema
|
|
477
|
+
|
|
478
|
+
✓ Reusable components
|
|
479
|
+
|
|
480
|
+
✓ Valid examples
|
|
481
|
+
|
|
482
|
+
✓ Security definitions
|
|
483
|
+
|
|
484
|
+
✓ Servers defined
|
|
485
|
+
|
|
486
|
+
✓ Tags defined
|
|
487
|
+
|
|
488
|
+
✓ Components reused
|
|
489
|
+
|
|
490
|
+
✓ Validation constraints defined
|
|
491
|
+
|
|
492
|
+
✓ Enums reusable
|
|
493
|
+
|
|
494
|
+
✓ Examples provided
|
|
495
|
+
|
|
496
|
+
---
|
|
497
|
+
|
|
498
|
+
# Backend Code Generation Validation
|
|
499
|
+
|
|
500
|
+
Before completing generation verify that the contract can generate
|
|
501
|
+
|
|
502
|
+
* Controllers
|
|
503
|
+
* Interfaces
|
|
504
|
+
* DTOs
|
|
505
|
+
* Request Models
|
|
506
|
+
* Response Models
|
|
507
|
+
* Validation Classes
|
|
508
|
+
* Enums
|
|
509
|
+
* API Interfaces
|
|
510
|
+
* Swagger UI
|
|
511
|
+
* OpenAPI Documentation
|
|
512
|
+
|
|
513
|
+
without manual changes.
|
|
514
|
+
|
|
515
|
+
---
|
|
516
|
+
|
|
517
|
+
# Frontend Compatibility
|
|
518
|
+
|
|
519
|
+
Ensure the same contract can generate clients for
|
|
520
|
+
|
|
521
|
+
* React
|
|
522
|
+
* React Native
|
|
523
|
+
* Angular
|
|
524
|
+
* Vue
|
|
525
|
+
* Flutter
|
|
526
|
+
* Swift
|
|
527
|
+
* Kotlin
|
|
528
|
+
|
|
529
|
+
including
|
|
530
|
+
|
|
531
|
+
* Axios
|
|
532
|
+
* Fetch
|
|
533
|
+
* React Query
|
|
534
|
+
* RTK Query
|
|
535
|
+
* TanStack Query
|
|
536
|
+
|
|
537
|
+
---
|
|
538
|
+
|
|
539
|
+
# Mock Generation
|
|
540
|
+
|
|
541
|
+
Generate
|
|
542
|
+
|
|
543
|
+
* Success examples
|
|
544
|
+
* Validation failures
|
|
545
|
+
* Business failures
|
|
546
|
+
* Authentication failures
|
|
547
|
+
* Authorization failures
|
|
548
|
+
* Rate limiting
|
|
549
|
+
* Server failures
|
|
550
|
+
|
|
551
|
+
Every mock must validate against the generated schema.
|
|
552
|
+
|
|
553
|
+
Every sensitive field identified under Security must appear masked or synthetic in mocks exactly as it does in OpenAPI/Postman examples — never generate a mock with a realistic unmasked PAN, Aadhaar, account number, or other sensitive value.
|
|
554
|
+
|
|
555
|
+
Generated IDs, UUIDs, and timestamps must be dynamic (not hardcoded across every mock), and any field that references another entity's ID (e.g. an order's `customerId`) must reference an ID that actually exists in that other entity's mock data, so relationships between mocked resources stay consistent rather than pointing to nothing.
|
|
556
|
+
|
|
557
|
+
---
|
|
558
|
+
|
|
559
|
+
# Output Package
|
|
560
|
+
|
|
561
|
+
Generate the following structure.
|
|
562
|
+
|
|
563
|
+
api-contract-package/
|
|
564
|
+
|
|
565
|
+
├── openapi.yaml
|
|
566
|
+
├── swagger.json
|
|
567
|
+
├── postman_collection.json
|
|
568
|
+
├── postman_environment.json
|
|
569
|
+
├── api-index.json
|
|
570
|
+
├── api-dependency.json
|
|
571
|
+
├── validation-rules.md
|
|
572
|
+
├── api-traceability.md
|
|
573
|
+
├── error-catalog.json
|
|
574
|
+
├── README.md
|
|
575
|
+
│
|
|
576
|
+
├── schemas/
|
|
577
|
+
│ ├── requests/
|
|
578
|
+
│ └── responses/
|
|
579
|
+
│
|
|
580
|
+
├── mocks/
|
|
581
|
+
│ ├── success/
|
|
582
|
+
│ ├── errors/
|
|
583
|
+
│ └── examples/
|
|
584
|
+
│
|
|
585
|
+
└── examples/
|
|
586
|
+
|
|
587
|
+
---
|
|
588
|
+
|
|
589
|
+
# Final Validation Checklist
|
|
590
|
+
|
|
591
|
+
Before finalizing the output verify that:
|
|
592
|
+
|
|
593
|
+
* Every backend interaction has an API.
|
|
594
|
+
* Every API has a unique operationId.
|
|
595
|
+
* Every endpoint references reusable schemas.
|
|
596
|
+
* Every schema validates successfully.
|
|
597
|
+
* Every endpoint contains complete request and response definitions.
|
|
598
|
+
* Every validation rule is represented.
|
|
599
|
+
* Every error response references the shared error model.
|
|
600
|
+
* Every generated artifact is internally consistent.
|
|
601
|
+
* The OpenAPI document imports successfully into Swagger UI.
|
|
602
|
+
* The OpenAPI document is compatible with OpenAPI Generator and Swagger Codegen.
|
|
603
|
+
* The Postman Collection imports without errors.
|
|
604
|
+
* The generated server stubs require no API signature changes.
|
|
605
|
+
* Backend developers can immediately begin implementing business logic after importing the generated contract.
|
|
606
|
+
|
|
607
|
+
Never generate incomplete contracts. If the source document contains ambiguities or missing information, explicitly document them in the **Assumptions & Open Questions** section instead of inventing implementation details.
|