create-yss-spec 2.1.2 → 2.1.4
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/README.md +1 -1
- package/package.json +1 -1
- package/template/.agents/skills/code-review/SKILL.md +38 -10
- package/template/.agents/skills/yss-api-integration/SKILL.md +25 -7
- package/template/.agents/skills/yss-ddd-scaffold-generator/SKILL.md +3 -17
- package/template/.agents/skills/yss-ddd-scaffold-generator/assets/templates/pom/bootstrap-pom.xml.template +0 -30
- package/template/.agents/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-parent/SKILL.md +1 -1
- package/template/.agents/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.py +1 -21
- package/template/.agents/skills/yss-design-system/SKILL.md +1 -1
- package/template/.agents/skills/yss-frontend-scaffold-generator/SKILL.md +12 -6
- package/template/.agents/skills/yss-openapi-draft-review/SKILL.md +13 -17
- package/template/.agents/skills/yss-openapi-governance/SKILL.md +89 -114
- package/template/.agents/skills/yss-openapi-governance/agents/openai.yaml +2 -2
- package/template/.agents/skills/yss-product-lifecycle/SKILL.md +11 -5
- package/template/.agents/skills/yss-product-lifecycle/references/artifact-dependencies.md +2 -2
- package/template/.agents/skills/yss-product-lifecycle/references/matt-yss-adapter.md +8 -2
- package/template/.agents/skills/yss-product-lifecycle/references/orchestration-contract.yaml +75 -28
- package/template/.agents/skills/yss-product-lifecycle/references/orchestration.md +7 -2
- package/template/.agents/skills/yss-product-lifecycle/references/state-model.md +8 -0
- package/template/.agents/skills/yss-router/SKILL.md +2 -2
- package/template/.agents/skills/yss-router/references/router-contract.yaml +4 -6
- package/template/.agents/skills/yss-router/references/slice-implementation-contract.md +1 -1
- package/template/.agents/skills/yss-router/references/yss-skill-execution-result.md +2 -1
- package/template/.claude/skills/code-review/SKILL.md +38 -10
- package/template/.claude/skills/yss-api-integration/SKILL.md +25 -7
- package/template/.claude/skills/yss-ddd-scaffold-generator/SKILL.md +3 -17
- package/template/.claude/skills/yss-ddd-scaffold-generator/assets/templates/pom/bootstrap-pom.xml.template +0 -30
- package/template/.claude/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-parent/SKILL.md +1 -1
- package/template/.claude/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.py +1 -21
- package/template/.claude/skills/yss-design-system/SKILL.md +1 -1
- package/template/.claude/skills/yss-frontend-scaffold-generator/SKILL.md +12 -6
- package/template/.claude/skills/yss-openapi-draft-review/SKILL.md +13 -17
- package/template/.claude/skills/yss-openapi-governance/SKILL.md +89 -114
- package/template/.claude/skills/yss-openapi-governance/agents/openai.yaml +2 -2
- package/template/.claude/skills/yss-product-lifecycle/SKILL.md +11 -5
- package/template/.claude/skills/yss-product-lifecycle/references/artifact-dependencies.md +2 -2
- package/template/.claude/skills/yss-product-lifecycle/references/matt-yss-adapter.md +8 -2
- package/template/.claude/skills/yss-product-lifecycle/references/orchestration-contract.yaml +75 -28
- package/template/.claude/skills/yss-product-lifecycle/references/orchestration.md +7 -2
- package/template/.claude/skills/yss-product-lifecycle/references/state-model.md +8 -0
- package/template/.claude/skills/yss-router/SKILL.md +2 -2
- package/template/.claude/skills/yss-router/references/router-contract.yaml +4 -6
- package/template/.claude/skills/yss-router/references/slice-implementation-contract.md +1 -1
- package/template/.claude/skills/yss-router/references/yss-skill-execution-result.md +2 -1
- package/template/.codex/skills/code-review/SKILL.md +38 -10
- package/template/.codex/skills/yss-api-integration/SKILL.md +25 -7
- package/template/.codex/skills/yss-ddd-scaffold-generator/SKILL.md +3 -17
- package/template/.codex/skills/yss-ddd-scaffold-generator/assets/templates/pom/bootstrap-pom.xml.template +0 -30
- package/template/.codex/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-parent/SKILL.md +1 -1
- package/template/.codex/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.py +1 -21
- package/template/.codex/skills/yss-design-system/SKILL.md +1 -1
- package/template/.codex/skills/yss-frontend-scaffold-generator/SKILL.md +12 -6
- package/template/.codex/skills/yss-openapi-draft-review/SKILL.md +13 -17
- package/template/.codex/skills/yss-openapi-governance/SKILL.md +89 -114
- package/template/.codex/skills/yss-openapi-governance/agents/openai.yaml +2 -2
- package/template/.codex/skills/yss-product-lifecycle/SKILL.md +11 -5
- package/template/.codex/skills/yss-product-lifecycle/references/artifact-dependencies.md +2 -2
- package/template/.codex/skills/yss-product-lifecycle/references/matt-yss-adapter.md +8 -2
- package/template/.codex/skills/yss-product-lifecycle/references/orchestration-contract.yaml +75 -28
- package/template/.codex/skills/yss-product-lifecycle/references/orchestration.md +7 -2
- package/template/.codex/skills/yss-product-lifecycle/references/state-model.md +8 -0
- package/template/.codex/skills/yss-router/SKILL.md +2 -2
- package/template/.codex/skills/yss-router/references/router-contract.yaml +4 -6
- package/template/.codex/skills/yss-router/references/slice-implementation-contract.md +1 -1
- package/template/.codex/skills/yss-router/references/yss-skill-execution-result.md +2 -1
- package/template/.hermes/skills/code-review/SKILL.md +38 -10
- package/template/.hermes/skills/yss-api-integration/SKILL.md +25 -7
- package/template/.hermes/skills/yss-ddd-scaffold-generator/SKILL.md +3 -17
- package/template/.hermes/skills/yss-ddd-scaffold-generator/assets/templates/pom/bootstrap-pom.xml.template +0 -30
- package/template/.hermes/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-parent/SKILL.md +1 -1
- package/template/.hermes/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.py +1 -21
- package/template/.hermes/skills/yss-design-system/SKILL.md +1 -1
- package/template/.hermes/skills/yss-frontend-scaffold-generator/SKILL.md +12 -6
- package/template/.hermes/skills/yss-openapi-draft-review/SKILL.md +13 -17
- package/template/.hermes/skills/yss-openapi-governance/SKILL.md +89 -114
- package/template/.hermes/skills/yss-openapi-governance/agents/openai.yaml +2 -2
- package/template/.hermes/skills/yss-product-lifecycle/SKILL.md +11 -5
- package/template/.hermes/skills/yss-product-lifecycle/references/artifact-dependencies.md +2 -2
- package/template/.hermes/skills/yss-product-lifecycle/references/matt-yss-adapter.md +8 -2
- package/template/.hermes/skills/yss-product-lifecycle/references/orchestration-contract.yaml +75 -28
- package/template/.hermes/skills/yss-product-lifecycle/references/orchestration.md +7 -2
- package/template/.hermes/skills/yss-product-lifecycle/references/state-model.md +8 -0
- package/template/.hermes/skills/yss-router/SKILL.md +2 -2
- package/template/.hermes/skills/yss-router/references/router-contract.yaml +4 -6
- package/template/.hermes/skills/yss-router/references/slice-implementation-contract.md +1 -1
- package/template/.hermes/skills/yss-router/references/yss-skill-execution-result.md +2 -1
- package/template/.pi/skills/code-review/SKILL.md +38 -10
- package/template/.pi/skills/yss-api-integration/SKILL.md +25 -7
- package/template/.pi/skills/yss-ddd-scaffold-generator/SKILL.md +3 -17
- package/template/.pi/skills/yss-ddd-scaffold-generator/assets/templates/pom/bootstrap-pom.xml.template +0 -30
- package/template/.pi/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-parent/SKILL.md +1 -1
- package/template/.pi/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.py +1 -21
- package/template/.pi/skills/yss-design-system/SKILL.md +1 -1
- package/template/.pi/skills/yss-frontend-scaffold-generator/SKILL.md +12 -6
- package/template/.pi/skills/yss-openapi-draft-review/SKILL.md +13 -17
- package/template/.pi/skills/yss-openapi-governance/SKILL.md +89 -114
- package/template/.pi/skills/yss-openapi-governance/agents/openai.yaml +2 -2
- package/template/.pi/skills/yss-product-lifecycle/SKILL.md +11 -5
- package/template/.pi/skills/yss-product-lifecycle/references/artifact-dependencies.md +2 -2
- package/template/.pi/skills/yss-product-lifecycle/references/matt-yss-adapter.md +8 -2
- package/template/.pi/skills/yss-product-lifecycle/references/orchestration-contract.yaml +75 -28
- package/template/.pi/skills/yss-product-lifecycle/references/orchestration.md +7 -2
- package/template/.pi/skills/yss-product-lifecycle/references/state-model.md +8 -0
- package/template/.pi/skills/yss-router/SKILL.md +2 -2
- package/template/.pi/skills/yss-router/references/router-contract.yaml +4 -6
- package/template/.pi/skills/yss-router/references/slice-implementation-contract.md +1 -1
- package/template/.pi/skills/yss-router/references/yss-skill-execution-result.md +2 -1
- package/template/.qoder/skills/code-review/SKILL.md +38 -10
- package/template/.qoder/skills/yss-api-integration/SKILL.md +25 -7
- package/template/.qoder/skills/yss-ddd-scaffold-generator/SKILL.md +3 -17
- package/template/.qoder/skills/yss-ddd-scaffold-generator/assets/templates/pom/bootstrap-pom.xml.template +0 -30
- package/template/.qoder/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-parent/SKILL.md +1 -1
- package/template/.qoder/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.py +1 -21
- package/template/.qoder/skills/yss-design-system/SKILL.md +1 -1
- package/template/.qoder/skills/yss-frontend-scaffold-generator/SKILL.md +12 -6
- package/template/.qoder/skills/yss-openapi-draft-review/SKILL.md +13 -17
- package/template/.qoder/skills/yss-openapi-governance/SKILL.md +89 -114
- package/template/.qoder/skills/yss-openapi-governance/agents/openai.yaml +2 -2
- package/template/.qoder/skills/yss-product-lifecycle/SKILL.md +11 -5
- package/template/.qoder/skills/yss-product-lifecycle/references/artifact-dependencies.md +2 -2
- package/template/.qoder/skills/yss-product-lifecycle/references/matt-yss-adapter.md +8 -2
- package/template/.qoder/skills/yss-product-lifecycle/references/orchestration-contract.yaml +75 -28
- package/template/.qoder/skills/yss-product-lifecycle/references/orchestration.md +7 -2
- package/template/.qoder/skills/yss-product-lifecycle/references/state-model.md +8 -0
- package/template/.qoder/skills/yss-router/SKILL.md +2 -2
- package/template/.qoder/skills/yss-router/references/router-contract.yaml +4 -6
- package/template/.qoder/skills/yss-router/references/slice-implementation-contract.md +1 -1
- package/template/.qoder/skills/yss-router/references/yss-skill-execution-result.md +2 -1
- package/template/.trae/skills/code-review/SKILL.md +38 -10
- package/template/.trae/skills/yss-api-integration/SKILL.md +25 -7
- package/template/.trae/skills/yss-ddd-scaffold-generator/SKILL.md +3 -17
- package/template/.trae/skills/yss-ddd-scaffold-generator/assets/templates/pom/bootstrap-pom.xml.template +0 -30
- package/template/.trae/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-parent/SKILL.md +1 -1
- package/template/.trae/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.py +1 -21
- package/template/.trae/skills/yss-design-system/SKILL.md +1 -1
- package/template/.trae/skills/yss-frontend-scaffold-generator/SKILL.md +12 -6
- package/template/.trae/skills/yss-openapi-draft-review/SKILL.md +13 -17
- package/template/.trae/skills/yss-openapi-governance/SKILL.md +89 -114
- package/template/.trae/skills/yss-openapi-governance/agents/openai.yaml +2 -2
- package/template/.trae/skills/yss-product-lifecycle/SKILL.md +11 -5
- package/template/.trae/skills/yss-product-lifecycle/references/artifact-dependencies.md +2 -2
- package/template/.trae/skills/yss-product-lifecycle/references/matt-yss-adapter.md +8 -2
- package/template/.trae/skills/yss-product-lifecycle/references/orchestration-contract.yaml +75 -28
- package/template/.trae/skills/yss-product-lifecycle/references/orchestration.md +7 -2
- package/template/.trae/skills/yss-product-lifecycle/references/state-model.md +8 -0
- package/template/.trae/skills/yss-router/SKILL.md +2 -2
- package/template/.trae/skills/yss-router/references/router-contract.yaml +4 -6
- package/template/.trae/skills/yss-router/references/slice-implementation-contract.md +1 -1
- package/template/.trae/skills/yss-router/references/yss-skill-execution-result.md +2 -1
- package/template/AGENTS.md +6 -4
- package/template/CONTEXT.md +15 -1
- package/template/README.md +2 -1
- package/template/__yss_dotfile__.gitignore +4 -0
- package/template/docs/adr/0003-machine-readable-lifecycle-registry.md +5 -0
- package/template/docs/adr/0004-split-lifecycle-and-router-registry-domains.md +5 -0
- package/template/docs/adr/0005-cross-repository-ecosystem-release-manifest.md +5 -0
- package/template/docs/adr/0006-stable-lifecycle-ids-and-generated-structure.md +5 -0
- package/template/docs/adr/0007-separate-skill-routing-registry-from-integrity-lock.md +5 -0
- package/template/docs/agents/issue-tracker.md +1 -0
- package/template/docs/api/templates/openapi-draft-review-checklist.md +8 -6
- package/template/docs/api/templates/openapi-freeze-record-template.md +8 -2
- package/template/docs/api/templates/openapi-json-export-record-template.md +60 -0
- package/template/docs/architecture/templates/architecture-review-checklist.md +6 -19
- package/template/docs/architecture/templates/functional-architecture-template.md +4 -4
- package/template/docs/architecture/templates/system-overview-design-template.md +10 -5
- package/template/docs/architecture/templates/tech-design-template.md +4 -11
- package/template/docs/discovery/templates/discovery-template.md +0 -1
- package/template/docs/implementation/create-yss-spec-repository-mode-contract.md +2 -2
- package/template/docs/process/harness-process-tailoring.md +2 -0
- package/template/docs/process/harness-work-unit-map.md +14 -10
- package/template/docs/process/lifecycle-artifact-map.md +75 -39
- package/template/docs/process/lifecycle-registry-baseline.json +61 -0
- package/template/docs/process/lifecycle-registry.yaml +255 -0
- package/template/docs/process/schemas/lifecycle-registry.schema.json +35 -0
- package/template/docs/reviews/lifecycle-registry-phase0-1-red-green-2026-08-17.md +61 -0
- package/template/docs/reviews/matt-yss-p0-ticket-review-git-red-green-2026-08-17.md +91 -0
- package/template/docs/reviews/openapi-skill-primary-source-research-2026-08-16.md +76 -0
- package/template/docs/reviews/openapi-yaml-first-independent-review-2026-08-16.md +121 -0
- package/template/docs/reviews/openapi-yaml-first-pressure-scenarios-2026-08-16.md +191 -0
- package/template/docs/reviews/openapi-yaml-first-red-green-2026-08-16.md +76 -0
- package/template/docs/reviews/openapi-yaml-json-output-independent-review-2026-08-16.md +30 -0
- package/template/docs/reviews/openapi-yaml-json-output-scope-red-green-2026-08-16.md +154 -0
- package/template/docs/reviews/research-create-yss-spec-refresh-2026-08-16.md +164 -0
- package/template/docs/reviews/security-permission-lifecycle-simplification-red-green-2026-08-16.md +43 -0
- package/template/docs/reviews/template-release-review-remediation-red-green-2026-08-17.md +41 -0
- package/template/docs/templates/agent-brief-template.md +2 -2
- package/template/docs/templates/build-architecture-checklist-template.md +3 -4
- package/template/docs/templates/implementation-repo-registry-template.md +0 -2
- package/template/docs/templates/implementation-routing-template.md +6 -6
- package/template/docs/templates/openapi-spec-template.yaml +0 -6
- package/template/docs/templates/review-report-template.md +2 -1
- package/template/docs/templates/spec-delta-template.md +1 -1
- package/template/docs/templates/spec-template.md +0 -1
- package/template/docs/templates/vertical-slice-ticket-template.md +2 -2
- package/template/docs/user-guide//344/272/247/345/223/201/347/224/237/345/221/275/345/221/250/346/234/237/345/267/245/344/275/234/346/265/201.md +6 -6
- package/template/docs/user-guide//344/272/247/345/223/201/347/240/224/345/217/221/345/205/250/347/224/237/345/221/275/345/221/250/346/234/237/346/234/200/344/275/263/345/256/236/350/267/265.md +3 -3
- package/template/docs/user-guide//345/244/226/351/203/250/345/221/275/344/273/244/350/241/214/345/267/245/345/205/267/345/256/236/350/267/265/346/214/207/345/215/227.md +1 -1
- package/template/docs/user-guide//347/224/237/345/221/275/345/221/250/346/234/237/346/234/200/344/275/263/345/256/236/350/267/265.md +1 -1
- package/template/scripts/generate-lifecycle-artifacts +26 -0
- package/template/scripts/lifecycle-registry.rb +194 -0
- package/template/scripts/sync-skills +1 -0
- package/template/scripts/test-export-yss-skills.rb +8 -6
- package/template/scripts/test-lifecycle-registry.rb +74 -0
- package/template/scripts/update-skill-lock +1 -0
- package/template/scripts/verify-governance-release +39 -0
- package/template/scripts/verify-lifecycle-registry +67 -0
- package/template/scripts/verify-lifecycle-scenarios +114 -17
- package/template/scripts/verify-matt-yss-integration-scenarios +297 -1
- package/template/scripts/verify-openapi-json-handoff-scenarios +270 -0
- package/template/scripts/verify-openapi-yaml-first-scenarios +120 -0
- package/template/scripts/verify-template +37 -5
- package/template/scripts/verify-yss-router-scenarios +42 -14
- package/template/skills-lock.json +9 -24
- package/template/wiki/raw/skills-lock.json +0 -15
- package/template/wiki/wiki/OpenAPI/345/245/221/347/272/246.md +1 -1
- package/template/wiki/wiki/YSS/345/267/245/347/250/213/346/212/200/350/203/275/344/275/223/347/263/273.md +1 -1
- package/template/yss-public-skills.json +3 -5
- package/template.snapshot.json +4 -4
- package/template/.agents/skills/yss-ddd-scaffold-generator/assets/templates/config/smart-doc.json.template +0 -17
- package/template/.agents/skills/yss-openapi/SKILL.md +0 -116
- package/template/.agents/skills/yss-openapi/agents/openai.yaml +0 -4
- package/template/.agents/skills/yss-openapi/img.png +0 -0
- package/template/.agents/skills/yss-openapi/img_1.png +0 -0
- package/template/.claude/skills/yss-ddd-scaffold-generator/assets/templates/config/smart-doc.json.template +0 -17
- package/template/.claude/skills/yss-openapi/SKILL.md +0 -116
- package/template/.claude/skills/yss-openapi/agents/openai.yaml +0 -4
- package/template/.claude/skills/yss-openapi/img.png +0 -0
- package/template/.claude/skills/yss-openapi/img_1.png +0 -0
- package/template/.codex/skills/yss-ddd-scaffold-generator/assets/templates/config/smart-doc.json.template +0 -17
- package/template/.codex/skills/yss-openapi/SKILL.md +0 -116
- package/template/.codex/skills/yss-openapi/agents/openai.yaml +0 -4
- package/template/.codex/skills/yss-openapi/img.png +0 -0
- package/template/.codex/skills/yss-openapi/img_1.png +0 -0
- package/template/.hermes/skills/yss-ddd-scaffold-generator/assets/templates/config/smart-doc.json.template +0 -17
- package/template/.hermes/skills/yss-openapi/SKILL.md +0 -116
- package/template/.hermes/skills/yss-openapi/agents/openai.yaml +0 -4
- package/template/.hermes/skills/yss-openapi/img.png +0 -0
- package/template/.hermes/skills/yss-openapi/img_1.png +0 -0
- package/template/.pi/skills/yss-ddd-scaffold-generator/assets/templates/config/smart-doc.json.template +0 -17
- package/template/.pi/skills/yss-openapi/SKILL.md +0 -116
- package/template/.pi/skills/yss-openapi/agents/openai.yaml +0 -4
- package/template/.pi/skills/yss-openapi/img.png +0 -0
- package/template/.pi/skills/yss-openapi/img_1.png +0 -0
- package/template/.qoder/skills/yss-ddd-scaffold-generator/assets/templates/config/smart-doc.json.template +0 -17
- package/template/.qoder/skills/yss-openapi/SKILL.md +0 -116
- package/template/.qoder/skills/yss-openapi/agents/openai.yaml +0 -4
- package/template/.qoder/skills/yss-openapi/img.png +0 -0
- package/template/.qoder/skills/yss-openapi/img_1.png +0 -0
- package/template/.trae/skills/yss-ddd-scaffold-generator/assets/templates/config/smart-doc.json.template +0 -17
- package/template/.trae/skills/yss-openapi/SKILL.md +0 -116
- package/template/.trae/skills/yss-openapi/agents/openai.yaml +0 -4
- package/template/.trae/skills/yss-openapi/img.png +0 -0
- package/template/.trae/skills/yss-openapi/img_1.png +0 -0
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"isStrict": false,
|
|
3
|
-
"allInOne": true,
|
|
4
|
-
"outPath": "target/openapi",
|
|
5
|
-
"coverOld": true,
|
|
6
|
-
"createDebugPage": false,
|
|
7
|
-
"packageFilters": "{{base_package}}.*",
|
|
8
|
-
"showAuthor": true,
|
|
9
|
-
"requestFieldToUnderline": false,
|
|
10
|
-
"responseFieldToUnderline": false,
|
|
11
|
-
"inlineEnum": true,
|
|
12
|
-
"componentType": "NORMAL",
|
|
13
|
-
"recursionLimit": 7,
|
|
14
|
-
"requestExample": false,
|
|
15
|
-
"responseExample": false,
|
|
16
|
-
"displayActualType": false
|
|
17
|
-
}
|
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: yss-openapi
|
|
3
|
-
description: Use when an implemented YSS Java controller/DTO contract must generate OpenAPI JSON and refresh frontend Orval API clients.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# YSS OpenAPI
|
|
7
|
-
|
|
8
|
-
Use this skill to move an already implemented backend controller/DTO contract into the frontend generated API layer.
|
|
9
|
-
|
|
10
|
-
This is an implementation/generation skill, not the product API design step and not the unified OpenAPI specification governance skill. It generates `openapi.json` from controller methods, request DTOs, response DTOs, annotations, and Java comments; it does not decide naming conventions, resource modeling, error taxonomy, pagination policy, permission semantics, or organization-wide OpenAPI style rules.
|
|
11
|
-
|
|
12
|
-
For new or changed API contracts, first produce an OpenAPI Draft in the repository's agreed API draft location, pass engineering baseline, architecture / Spec Delta design, and Design Review, then Freeze the contract before using this skill to refresh generated clients. When the backend is already the implemented source of truth, use this skill to regenerate and inspect the emitted contract before updating call sites.
|
|
13
|
-
|
|
14
|
-
## Scope Boundary
|
|
15
|
-
|
|
16
|
-
Use this skill for:
|
|
17
|
-
|
|
18
|
-
- Running `smart-doc-maven-plugin` to generate an OpenAPI JSON file from implemented backend code.
|
|
19
|
-
- Copying generated `openapi.json` into the frontend OpenAPI input path expected by Orval.
|
|
20
|
-
- Running frontend API client generation and inspecting generated TypeScript changes.
|
|
21
|
-
- Verifying that implemented controllers/DTOs emit the expected OpenAPI shape before call-site updates.
|
|
22
|
-
|
|
23
|
-
Do not use this skill for:
|
|
24
|
-
|
|
25
|
-
- Designing a new API contract from Spec, prototype, or architecture inputs.
|
|
26
|
-
- Defining the unified OpenAPI style guide or reusable API governance rules.
|
|
27
|
-
- Reviewing design-time OpenAPI Draft files before OpenAPI Freeze.
|
|
28
|
-
- Choosing REST resource boundaries, error models, permission behavior, pagination standards, or contract test policy.
|
|
29
|
-
|
|
30
|
-
For design-time contract review, use `yss-openapi-draft-review`. For a stronger organization-wide OpenAPI governance baseline, prefer a separate OpenAPI lint/style skill backed by a maintained ruleset tool such as Stoplight Spectral or Redocly CLI, then layer YSS-specific response wrappers, permission, pagination, and security-red-line rules on top.
|
|
31
|
-
|
|
32
|
-
## Core Flow
|
|
33
|
-
|
|
34
|
-
1. Locate the backend module that owns smart-doc generation.
|
|
35
|
-
- Search the repository for `smart-doc-maven-plugin`, `configFile`, `outPath`, and `smart-doc.json`.
|
|
36
|
-
- Confirm which module contains the controllers/DTOs being changed and which plugin execution includes them.
|
|
37
|
-
- Read the smart-doc config instead of assuming a directory. Its `outPath` determines where the generated OpenAPI JSON is emitted.
|
|
38
|
-
- For a newly generated YSS scaffold, use the generated `bootstrap/src/main/resources/smart-doc.json` as the baseline and replace `packageFilters` with the actual controller package if needed.
|
|
39
|
-
|
|
40
|
-
2. Generate the backend OpenAPI contract from the repository root.
|
|
41
|
-
- Use the exact Maven wrapper, profiles, and module selector already used by the repository.
|
|
42
|
-
- The YSS `smart-doc-maven-plugin` version is fixed at `yss-4.0.0`; verify the selected POM declares `<version>yss-4.0.0</version>` before generation.
|
|
43
|
-
- Prefer the repo's documented generation command if one exists in scripts, docs, CI, or previous command history.
|
|
44
|
-
- Do not add IntelliJ-specific listener or `-Didea.*` parameters.
|
|
45
|
-
|
|
46
|
-
```bash
|
|
47
|
-
./mvnw <repo profiles/options> <smart-doc plugin goal> -f <root-or-module-pom>
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
3. Find the generated `openapi.json`.
|
|
51
|
-
- Use the smart-doc `outPath` from the selected config as the primary source of truth.
|
|
52
|
-
- If the exact file name is not obvious, search under the configured output directory for OpenAPI JSON files.
|
|
53
|
-
- If multiple files exist, choose the one from the module whose config and plugin includes cover the controllers/DTOs being changed.
|
|
54
|
-
|
|
55
|
-
4. Copy the generated contract into the frontend OpenAPI input.
|
|
56
|
-
- Locate the frontend root by finding `orval.config.*` and the package script that runs Orval or API generation.
|
|
57
|
-
- Read the Orval config to identify the OpenAPI input path.
|
|
58
|
-
- Preserve the frontend input path expected by Orval; do not invent a new input path unless the config is updated too.
|
|
59
|
-
|
|
60
|
-
```bash
|
|
61
|
-
cp <generated-openapi-json> <orval-input-openapi-json>
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
5. Regenerate the frontend API client from the frontend root.
|
|
65
|
-
- Use the API generation script already defined by the frontend package when present.
|
|
66
|
-
- If there is no wrapper script, run the configured Orval command and any local cleanup/format scripts referenced by the package scripts.
|
|
67
|
-
|
|
68
|
-
```bash
|
|
69
|
-
pnpm <api-generation-script>
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
6. Inspect generated changes before touching call sites.
|
|
73
|
-
- Check the Orval input JSON path from the config.
|
|
74
|
-
- Check the generated client output paths from the Orval config.
|
|
75
|
-
- Update handwritten call sites only after seeing the regenerated function names, request body shape, params type, and result type.
|
|
76
|
-
|
|
77
|
-
## How It Works
|
|
78
|
-
|
|
79
|
-
- `smart-doc-maven-plugin` scans Java controller methods, request/response DTOs, annotations, comments, and configured dependency source jars. It emits an OpenAPI contract under the configured `outPath`.
|
|
80
|
-
- The YSS baseline config uses `allInOne: true`, `outPath: "target/openapi"`, a service package filter, `componentType: "NORMAL"`, and disables debug pages and request/response examples by default.
|
|
81
|
-
- Do not copy environment-specific `serverUrl`, `debugEnvUrl`, `openUrl`, Torna `appToken`, or project-specific `revisionLogs` into a reusable scaffold.
|
|
82
|
-
- The backend module is the source of truth for routes, HTTP verbs, DTO field names, enum descriptions, binary responses, multipart inputs, and operation IDs.
|
|
83
|
-
- The frontend `orval.config.*` determines which OpenAPI input file is read and where TypeScript schema types plus client functions are generated.
|
|
84
|
-
- Local cleanup, export-flattening, or formatting scripts may post-process generated files. Use them only when they are part of the repository's generation script.
|
|
85
|
-
|
|
86
|
-
## Repo Checks
|
|
87
|
-
|
|
88
|
-
Run these discovery commands when the layout is uncertain:
|
|
89
|
-
|
|
90
|
-
```bash
|
|
91
|
-
rg -n "smart-doc-maven-plugin|configFile|outPath|openapi" -S pom.xml '**/pom.xml' '**/smart-doc.json'
|
|
92
|
-
find . -maxdepth 6 \( -name 'orval.config.*' -o -name 'package.json' -o -name 'smart-doc.json' \) -print
|
|
93
|
-
rg -n "orval|format:generated|api-schema-cleanup|api-flatten-exports" -S '**/package.json' '**/orval.config.*'
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
## Troubleshooting
|
|
97
|
-
|
|
98
|
-
- If a controller or DTO is missing, check `smart-doc.json` `packageFilters`, the plugin `<includes>`, module dependencies, and whether source jars are available in the local Maven repository.
|
|
99
|
-
- If schema names look unstable or invalid, check `componentType` and the repository's smart-doc configuration.
|
|
100
|
-
- If binary download or Excel upload contracts are wrong, inspect backend annotations and any OpenAPI normalizer/override code in the repo before manually editing generated JSON.
|
|
101
|
-
- If Orval changes a client function signature, update frontend call sites to match the generated contract. Do not preserve old call shapes by hand-editing generated files.
|
|
102
|
-
- If `api-flatten-exports.cjs` cannot parse `getApi`, inspect the generated `index.ts`; an Orval version or mode change may have changed the output shape.
|
|
103
|
-
- If formatting or generation fails in nested workspaces, run from the frontend root that owns `orval.config.*` and the API generation script.
|
|
104
|
-
|
|
105
|
-
## Verification
|
|
106
|
-
|
|
107
|
-
Prefer targeted checks:
|
|
108
|
-
|
|
109
|
-
```bash
|
|
110
|
-
test -s <generated-openapi-json>
|
|
111
|
-
test -s <orval-input-openapi-json>
|
|
112
|
-
cd <frontend-root> && pnpm <api-generation-script>
|
|
113
|
-
git diff -- <orval-input-openapi-json> <generated-client-output-paths>
|
|
114
|
-
```
|
|
115
|
-
|
|
116
|
-
For frontend behavior after API signature changes, run the smallest build or type check that is reliable for the repository and the affected frontend package.
|
|
Binary file
|
|
Binary file
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"isStrict": false,
|
|
3
|
-
"allInOne": true,
|
|
4
|
-
"outPath": "target/openapi",
|
|
5
|
-
"coverOld": true,
|
|
6
|
-
"createDebugPage": false,
|
|
7
|
-
"packageFilters": "{{base_package}}.*",
|
|
8
|
-
"showAuthor": true,
|
|
9
|
-
"requestFieldToUnderline": false,
|
|
10
|
-
"responseFieldToUnderline": false,
|
|
11
|
-
"inlineEnum": true,
|
|
12
|
-
"componentType": "NORMAL",
|
|
13
|
-
"recursionLimit": 7,
|
|
14
|
-
"requestExample": false,
|
|
15
|
-
"responseExample": false,
|
|
16
|
-
"displayActualType": false
|
|
17
|
-
}
|
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: yss-openapi
|
|
3
|
-
description: Use when an implemented YSS Java controller/DTO contract must generate OpenAPI JSON and refresh frontend Orval API clients.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# YSS OpenAPI
|
|
7
|
-
|
|
8
|
-
Use this skill to move an already implemented backend controller/DTO contract into the frontend generated API layer.
|
|
9
|
-
|
|
10
|
-
This is an implementation/generation skill, not the product API design step and not the unified OpenAPI specification governance skill. It generates `openapi.json` from controller methods, request DTOs, response DTOs, annotations, and Java comments; it does not decide naming conventions, resource modeling, error taxonomy, pagination policy, permission semantics, or organization-wide OpenAPI style rules.
|
|
11
|
-
|
|
12
|
-
For new or changed API contracts, first produce an OpenAPI Draft in the repository's agreed API draft location, pass engineering baseline, architecture / Spec Delta design, and Design Review, then Freeze the contract before using this skill to refresh generated clients. When the backend is already the implemented source of truth, use this skill to regenerate and inspect the emitted contract before updating call sites.
|
|
13
|
-
|
|
14
|
-
## Scope Boundary
|
|
15
|
-
|
|
16
|
-
Use this skill for:
|
|
17
|
-
|
|
18
|
-
- Running `smart-doc-maven-plugin` to generate an OpenAPI JSON file from implemented backend code.
|
|
19
|
-
- Copying generated `openapi.json` into the frontend OpenAPI input path expected by Orval.
|
|
20
|
-
- Running frontend API client generation and inspecting generated TypeScript changes.
|
|
21
|
-
- Verifying that implemented controllers/DTOs emit the expected OpenAPI shape before call-site updates.
|
|
22
|
-
|
|
23
|
-
Do not use this skill for:
|
|
24
|
-
|
|
25
|
-
- Designing a new API contract from Spec, prototype, or architecture inputs.
|
|
26
|
-
- Defining the unified OpenAPI style guide or reusable API governance rules.
|
|
27
|
-
- Reviewing design-time OpenAPI Draft files before OpenAPI Freeze.
|
|
28
|
-
- Choosing REST resource boundaries, error models, permission behavior, pagination standards, or contract test policy.
|
|
29
|
-
|
|
30
|
-
For design-time contract review, use `yss-openapi-draft-review`. For a stronger organization-wide OpenAPI governance baseline, prefer a separate OpenAPI lint/style skill backed by a maintained ruleset tool such as Stoplight Spectral or Redocly CLI, then layer YSS-specific response wrappers, permission, pagination, and security-red-line rules on top.
|
|
31
|
-
|
|
32
|
-
## Core Flow
|
|
33
|
-
|
|
34
|
-
1. Locate the backend module that owns smart-doc generation.
|
|
35
|
-
- Search the repository for `smart-doc-maven-plugin`, `configFile`, `outPath`, and `smart-doc.json`.
|
|
36
|
-
- Confirm which module contains the controllers/DTOs being changed and which plugin execution includes them.
|
|
37
|
-
- Read the smart-doc config instead of assuming a directory. Its `outPath` determines where the generated OpenAPI JSON is emitted.
|
|
38
|
-
- For a newly generated YSS scaffold, use the generated `bootstrap/src/main/resources/smart-doc.json` as the baseline and replace `packageFilters` with the actual controller package if needed.
|
|
39
|
-
|
|
40
|
-
2. Generate the backend OpenAPI contract from the repository root.
|
|
41
|
-
- Use the exact Maven wrapper, profiles, and module selector already used by the repository.
|
|
42
|
-
- The YSS `smart-doc-maven-plugin` version is fixed at `yss-4.0.0`; verify the selected POM declares `<version>yss-4.0.0</version>` before generation.
|
|
43
|
-
- Prefer the repo's documented generation command if one exists in scripts, docs, CI, or previous command history.
|
|
44
|
-
- Do not add IntelliJ-specific listener or `-Didea.*` parameters.
|
|
45
|
-
|
|
46
|
-
```bash
|
|
47
|
-
./mvnw <repo profiles/options> <smart-doc plugin goal> -f <root-or-module-pom>
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
3. Find the generated `openapi.json`.
|
|
51
|
-
- Use the smart-doc `outPath` from the selected config as the primary source of truth.
|
|
52
|
-
- If the exact file name is not obvious, search under the configured output directory for OpenAPI JSON files.
|
|
53
|
-
- If multiple files exist, choose the one from the module whose config and plugin includes cover the controllers/DTOs being changed.
|
|
54
|
-
|
|
55
|
-
4. Copy the generated contract into the frontend OpenAPI input.
|
|
56
|
-
- Locate the frontend root by finding `orval.config.*` and the package script that runs Orval or API generation.
|
|
57
|
-
- Read the Orval config to identify the OpenAPI input path.
|
|
58
|
-
- Preserve the frontend input path expected by Orval; do not invent a new input path unless the config is updated too.
|
|
59
|
-
|
|
60
|
-
```bash
|
|
61
|
-
cp <generated-openapi-json> <orval-input-openapi-json>
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
5. Regenerate the frontend API client from the frontend root.
|
|
65
|
-
- Use the API generation script already defined by the frontend package when present.
|
|
66
|
-
- If there is no wrapper script, run the configured Orval command and any local cleanup/format scripts referenced by the package scripts.
|
|
67
|
-
|
|
68
|
-
```bash
|
|
69
|
-
pnpm <api-generation-script>
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
6. Inspect generated changes before touching call sites.
|
|
73
|
-
- Check the Orval input JSON path from the config.
|
|
74
|
-
- Check the generated client output paths from the Orval config.
|
|
75
|
-
- Update handwritten call sites only after seeing the regenerated function names, request body shape, params type, and result type.
|
|
76
|
-
|
|
77
|
-
## How It Works
|
|
78
|
-
|
|
79
|
-
- `smart-doc-maven-plugin` scans Java controller methods, request/response DTOs, annotations, comments, and configured dependency source jars. It emits an OpenAPI contract under the configured `outPath`.
|
|
80
|
-
- The YSS baseline config uses `allInOne: true`, `outPath: "target/openapi"`, a service package filter, `componentType: "NORMAL"`, and disables debug pages and request/response examples by default.
|
|
81
|
-
- Do not copy environment-specific `serverUrl`, `debugEnvUrl`, `openUrl`, Torna `appToken`, or project-specific `revisionLogs` into a reusable scaffold.
|
|
82
|
-
- The backend module is the source of truth for routes, HTTP verbs, DTO field names, enum descriptions, binary responses, multipart inputs, and operation IDs.
|
|
83
|
-
- The frontend `orval.config.*` determines which OpenAPI input file is read and where TypeScript schema types plus client functions are generated.
|
|
84
|
-
- Local cleanup, export-flattening, or formatting scripts may post-process generated files. Use them only when they are part of the repository's generation script.
|
|
85
|
-
|
|
86
|
-
## Repo Checks
|
|
87
|
-
|
|
88
|
-
Run these discovery commands when the layout is uncertain:
|
|
89
|
-
|
|
90
|
-
```bash
|
|
91
|
-
rg -n "smart-doc-maven-plugin|configFile|outPath|openapi" -S pom.xml '**/pom.xml' '**/smart-doc.json'
|
|
92
|
-
find . -maxdepth 6 \( -name 'orval.config.*' -o -name 'package.json' -o -name 'smart-doc.json' \) -print
|
|
93
|
-
rg -n "orval|format:generated|api-schema-cleanup|api-flatten-exports" -S '**/package.json' '**/orval.config.*'
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
## Troubleshooting
|
|
97
|
-
|
|
98
|
-
- If a controller or DTO is missing, check `smart-doc.json` `packageFilters`, the plugin `<includes>`, module dependencies, and whether source jars are available in the local Maven repository.
|
|
99
|
-
- If schema names look unstable or invalid, check `componentType` and the repository's smart-doc configuration.
|
|
100
|
-
- If binary download or Excel upload contracts are wrong, inspect backend annotations and any OpenAPI normalizer/override code in the repo before manually editing generated JSON.
|
|
101
|
-
- If Orval changes a client function signature, update frontend call sites to match the generated contract. Do not preserve old call shapes by hand-editing generated files.
|
|
102
|
-
- If `api-flatten-exports.cjs` cannot parse `getApi`, inspect the generated `index.ts`; an Orval version or mode change may have changed the output shape.
|
|
103
|
-
- If formatting or generation fails in nested workspaces, run from the frontend root that owns `orval.config.*` and the API generation script.
|
|
104
|
-
|
|
105
|
-
## Verification
|
|
106
|
-
|
|
107
|
-
Prefer targeted checks:
|
|
108
|
-
|
|
109
|
-
```bash
|
|
110
|
-
test -s <generated-openapi-json>
|
|
111
|
-
test -s <orval-input-openapi-json>
|
|
112
|
-
cd <frontend-root> && pnpm <api-generation-script>
|
|
113
|
-
git diff -- <orval-input-openapi-json> <generated-client-output-paths>
|
|
114
|
-
```
|
|
115
|
-
|
|
116
|
-
For frontend behavior after API signature changes, run the smallest build or type check that is reliable for the repository and the affected frontend package.
|
|
Binary file
|
|
Binary file
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"isStrict": false,
|
|
3
|
-
"allInOne": true,
|
|
4
|
-
"outPath": "target/openapi",
|
|
5
|
-
"coverOld": true,
|
|
6
|
-
"createDebugPage": false,
|
|
7
|
-
"packageFilters": "{{base_package}}.*",
|
|
8
|
-
"showAuthor": true,
|
|
9
|
-
"requestFieldToUnderline": false,
|
|
10
|
-
"responseFieldToUnderline": false,
|
|
11
|
-
"inlineEnum": true,
|
|
12
|
-
"componentType": "NORMAL",
|
|
13
|
-
"recursionLimit": 7,
|
|
14
|
-
"requestExample": false,
|
|
15
|
-
"responseExample": false,
|
|
16
|
-
"displayActualType": false
|
|
17
|
-
}
|
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: yss-openapi
|
|
3
|
-
description: Use when an implemented YSS Java controller/DTO contract must generate OpenAPI JSON and refresh frontend Orval API clients.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# YSS OpenAPI
|
|
7
|
-
|
|
8
|
-
Use this skill to move an already implemented backend controller/DTO contract into the frontend generated API layer.
|
|
9
|
-
|
|
10
|
-
This is an implementation/generation skill, not the product API design step and not the unified OpenAPI specification governance skill. It generates `openapi.json` from controller methods, request DTOs, response DTOs, annotations, and Java comments; it does not decide naming conventions, resource modeling, error taxonomy, pagination policy, permission semantics, or organization-wide OpenAPI style rules.
|
|
11
|
-
|
|
12
|
-
For new or changed API contracts, first produce an OpenAPI Draft in the repository's agreed API draft location, pass engineering baseline, architecture / Spec Delta design, and Design Review, then Freeze the contract before using this skill to refresh generated clients. When the backend is already the implemented source of truth, use this skill to regenerate and inspect the emitted contract before updating call sites.
|
|
13
|
-
|
|
14
|
-
## Scope Boundary
|
|
15
|
-
|
|
16
|
-
Use this skill for:
|
|
17
|
-
|
|
18
|
-
- Running `smart-doc-maven-plugin` to generate an OpenAPI JSON file from implemented backend code.
|
|
19
|
-
- Copying generated `openapi.json` into the frontend OpenAPI input path expected by Orval.
|
|
20
|
-
- Running frontend API client generation and inspecting generated TypeScript changes.
|
|
21
|
-
- Verifying that implemented controllers/DTOs emit the expected OpenAPI shape before call-site updates.
|
|
22
|
-
|
|
23
|
-
Do not use this skill for:
|
|
24
|
-
|
|
25
|
-
- Designing a new API contract from Spec, prototype, or architecture inputs.
|
|
26
|
-
- Defining the unified OpenAPI style guide or reusable API governance rules.
|
|
27
|
-
- Reviewing design-time OpenAPI Draft files before OpenAPI Freeze.
|
|
28
|
-
- Choosing REST resource boundaries, error models, permission behavior, pagination standards, or contract test policy.
|
|
29
|
-
|
|
30
|
-
For design-time contract review, use `yss-openapi-draft-review`. For a stronger organization-wide OpenAPI governance baseline, prefer a separate OpenAPI lint/style skill backed by a maintained ruleset tool such as Stoplight Spectral or Redocly CLI, then layer YSS-specific response wrappers, permission, pagination, and security-red-line rules on top.
|
|
31
|
-
|
|
32
|
-
## Core Flow
|
|
33
|
-
|
|
34
|
-
1. Locate the backend module that owns smart-doc generation.
|
|
35
|
-
- Search the repository for `smart-doc-maven-plugin`, `configFile`, `outPath`, and `smart-doc.json`.
|
|
36
|
-
- Confirm which module contains the controllers/DTOs being changed and which plugin execution includes them.
|
|
37
|
-
- Read the smart-doc config instead of assuming a directory. Its `outPath` determines where the generated OpenAPI JSON is emitted.
|
|
38
|
-
- For a newly generated YSS scaffold, use the generated `bootstrap/src/main/resources/smart-doc.json` as the baseline and replace `packageFilters` with the actual controller package if needed.
|
|
39
|
-
|
|
40
|
-
2. Generate the backend OpenAPI contract from the repository root.
|
|
41
|
-
- Use the exact Maven wrapper, profiles, and module selector already used by the repository.
|
|
42
|
-
- The YSS `smart-doc-maven-plugin` version is fixed at `yss-4.0.0`; verify the selected POM declares `<version>yss-4.0.0</version>` before generation.
|
|
43
|
-
- Prefer the repo's documented generation command if one exists in scripts, docs, CI, or previous command history.
|
|
44
|
-
- Do not add IntelliJ-specific listener or `-Didea.*` parameters.
|
|
45
|
-
|
|
46
|
-
```bash
|
|
47
|
-
./mvnw <repo profiles/options> <smart-doc plugin goal> -f <root-or-module-pom>
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
3. Find the generated `openapi.json`.
|
|
51
|
-
- Use the smart-doc `outPath` from the selected config as the primary source of truth.
|
|
52
|
-
- If the exact file name is not obvious, search under the configured output directory for OpenAPI JSON files.
|
|
53
|
-
- If multiple files exist, choose the one from the module whose config and plugin includes cover the controllers/DTOs being changed.
|
|
54
|
-
|
|
55
|
-
4. Copy the generated contract into the frontend OpenAPI input.
|
|
56
|
-
- Locate the frontend root by finding `orval.config.*` and the package script that runs Orval or API generation.
|
|
57
|
-
- Read the Orval config to identify the OpenAPI input path.
|
|
58
|
-
- Preserve the frontend input path expected by Orval; do not invent a new input path unless the config is updated too.
|
|
59
|
-
|
|
60
|
-
```bash
|
|
61
|
-
cp <generated-openapi-json> <orval-input-openapi-json>
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
5. Regenerate the frontend API client from the frontend root.
|
|
65
|
-
- Use the API generation script already defined by the frontend package when present.
|
|
66
|
-
- If there is no wrapper script, run the configured Orval command and any local cleanup/format scripts referenced by the package scripts.
|
|
67
|
-
|
|
68
|
-
```bash
|
|
69
|
-
pnpm <api-generation-script>
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
6. Inspect generated changes before touching call sites.
|
|
73
|
-
- Check the Orval input JSON path from the config.
|
|
74
|
-
- Check the generated client output paths from the Orval config.
|
|
75
|
-
- Update handwritten call sites only after seeing the regenerated function names, request body shape, params type, and result type.
|
|
76
|
-
|
|
77
|
-
## How It Works
|
|
78
|
-
|
|
79
|
-
- `smart-doc-maven-plugin` scans Java controller methods, request/response DTOs, annotations, comments, and configured dependency source jars. It emits an OpenAPI contract under the configured `outPath`.
|
|
80
|
-
- The YSS baseline config uses `allInOne: true`, `outPath: "target/openapi"`, a service package filter, `componentType: "NORMAL"`, and disables debug pages and request/response examples by default.
|
|
81
|
-
- Do not copy environment-specific `serverUrl`, `debugEnvUrl`, `openUrl`, Torna `appToken`, or project-specific `revisionLogs` into a reusable scaffold.
|
|
82
|
-
- The backend module is the source of truth for routes, HTTP verbs, DTO field names, enum descriptions, binary responses, multipart inputs, and operation IDs.
|
|
83
|
-
- The frontend `orval.config.*` determines which OpenAPI input file is read and where TypeScript schema types plus client functions are generated.
|
|
84
|
-
- Local cleanup, export-flattening, or formatting scripts may post-process generated files. Use them only when they are part of the repository's generation script.
|
|
85
|
-
|
|
86
|
-
## Repo Checks
|
|
87
|
-
|
|
88
|
-
Run these discovery commands when the layout is uncertain:
|
|
89
|
-
|
|
90
|
-
```bash
|
|
91
|
-
rg -n "smart-doc-maven-plugin|configFile|outPath|openapi" -S pom.xml '**/pom.xml' '**/smart-doc.json'
|
|
92
|
-
find . -maxdepth 6 \( -name 'orval.config.*' -o -name 'package.json' -o -name 'smart-doc.json' \) -print
|
|
93
|
-
rg -n "orval|format:generated|api-schema-cleanup|api-flatten-exports" -S '**/package.json' '**/orval.config.*'
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
## Troubleshooting
|
|
97
|
-
|
|
98
|
-
- If a controller or DTO is missing, check `smart-doc.json` `packageFilters`, the plugin `<includes>`, module dependencies, and whether source jars are available in the local Maven repository.
|
|
99
|
-
- If schema names look unstable or invalid, check `componentType` and the repository's smart-doc configuration.
|
|
100
|
-
- If binary download or Excel upload contracts are wrong, inspect backend annotations and any OpenAPI normalizer/override code in the repo before manually editing generated JSON.
|
|
101
|
-
- If Orval changes a client function signature, update frontend call sites to match the generated contract. Do not preserve old call shapes by hand-editing generated files.
|
|
102
|
-
- If `api-flatten-exports.cjs` cannot parse `getApi`, inspect the generated `index.ts`; an Orval version or mode change may have changed the output shape.
|
|
103
|
-
- If formatting or generation fails in nested workspaces, run from the frontend root that owns `orval.config.*` and the API generation script.
|
|
104
|
-
|
|
105
|
-
## Verification
|
|
106
|
-
|
|
107
|
-
Prefer targeted checks:
|
|
108
|
-
|
|
109
|
-
```bash
|
|
110
|
-
test -s <generated-openapi-json>
|
|
111
|
-
test -s <orval-input-openapi-json>
|
|
112
|
-
cd <frontend-root> && pnpm <api-generation-script>
|
|
113
|
-
git diff -- <orval-input-openapi-json> <generated-client-output-paths>
|
|
114
|
-
```
|
|
115
|
-
|
|
116
|
-
For frontend behavior after API signature changes, run the smallest build or type check that is reliable for the repository and the affected frontend package.
|
|
Binary file
|
|
Binary file
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"isStrict": false,
|
|
3
|
-
"allInOne": true,
|
|
4
|
-
"outPath": "target/openapi",
|
|
5
|
-
"coverOld": true,
|
|
6
|
-
"createDebugPage": false,
|
|
7
|
-
"packageFilters": "{{base_package}}.*",
|
|
8
|
-
"showAuthor": true,
|
|
9
|
-
"requestFieldToUnderline": false,
|
|
10
|
-
"responseFieldToUnderline": false,
|
|
11
|
-
"inlineEnum": true,
|
|
12
|
-
"componentType": "NORMAL",
|
|
13
|
-
"recursionLimit": 7,
|
|
14
|
-
"requestExample": false,
|
|
15
|
-
"responseExample": false,
|
|
16
|
-
"displayActualType": false
|
|
17
|
-
}
|
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: yss-openapi
|
|
3
|
-
description: Use when an implemented YSS Java controller/DTO contract must generate OpenAPI JSON and refresh frontend Orval API clients.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# YSS OpenAPI
|
|
7
|
-
|
|
8
|
-
Use this skill to move an already implemented backend controller/DTO contract into the frontend generated API layer.
|
|
9
|
-
|
|
10
|
-
This is an implementation/generation skill, not the product API design step and not the unified OpenAPI specification governance skill. It generates `openapi.json` from controller methods, request DTOs, response DTOs, annotations, and Java comments; it does not decide naming conventions, resource modeling, error taxonomy, pagination policy, permission semantics, or organization-wide OpenAPI style rules.
|
|
11
|
-
|
|
12
|
-
For new or changed API contracts, first produce an OpenAPI Draft in the repository's agreed API draft location, pass engineering baseline, architecture / Spec Delta design, and Design Review, then Freeze the contract before using this skill to refresh generated clients. When the backend is already the implemented source of truth, use this skill to regenerate and inspect the emitted contract before updating call sites.
|
|
13
|
-
|
|
14
|
-
## Scope Boundary
|
|
15
|
-
|
|
16
|
-
Use this skill for:
|
|
17
|
-
|
|
18
|
-
- Running `smart-doc-maven-plugin` to generate an OpenAPI JSON file from implemented backend code.
|
|
19
|
-
- Copying generated `openapi.json` into the frontend OpenAPI input path expected by Orval.
|
|
20
|
-
- Running frontend API client generation and inspecting generated TypeScript changes.
|
|
21
|
-
- Verifying that implemented controllers/DTOs emit the expected OpenAPI shape before call-site updates.
|
|
22
|
-
|
|
23
|
-
Do not use this skill for:
|
|
24
|
-
|
|
25
|
-
- Designing a new API contract from Spec, prototype, or architecture inputs.
|
|
26
|
-
- Defining the unified OpenAPI style guide or reusable API governance rules.
|
|
27
|
-
- Reviewing design-time OpenAPI Draft files before OpenAPI Freeze.
|
|
28
|
-
- Choosing REST resource boundaries, error models, permission behavior, pagination standards, or contract test policy.
|
|
29
|
-
|
|
30
|
-
For design-time contract review, use `yss-openapi-draft-review`. For a stronger organization-wide OpenAPI governance baseline, prefer a separate OpenAPI lint/style skill backed by a maintained ruleset tool such as Stoplight Spectral or Redocly CLI, then layer YSS-specific response wrappers, permission, pagination, and security-red-line rules on top.
|
|
31
|
-
|
|
32
|
-
## Core Flow
|
|
33
|
-
|
|
34
|
-
1. Locate the backend module that owns smart-doc generation.
|
|
35
|
-
- Search the repository for `smart-doc-maven-plugin`, `configFile`, `outPath`, and `smart-doc.json`.
|
|
36
|
-
- Confirm which module contains the controllers/DTOs being changed and which plugin execution includes them.
|
|
37
|
-
- Read the smart-doc config instead of assuming a directory. Its `outPath` determines where the generated OpenAPI JSON is emitted.
|
|
38
|
-
- For a newly generated YSS scaffold, use the generated `bootstrap/src/main/resources/smart-doc.json` as the baseline and replace `packageFilters` with the actual controller package if needed.
|
|
39
|
-
|
|
40
|
-
2. Generate the backend OpenAPI contract from the repository root.
|
|
41
|
-
- Use the exact Maven wrapper, profiles, and module selector already used by the repository.
|
|
42
|
-
- The YSS `smart-doc-maven-plugin` version is fixed at `yss-4.0.0`; verify the selected POM declares `<version>yss-4.0.0</version>` before generation.
|
|
43
|
-
- Prefer the repo's documented generation command if one exists in scripts, docs, CI, or previous command history.
|
|
44
|
-
- Do not add IntelliJ-specific listener or `-Didea.*` parameters.
|
|
45
|
-
|
|
46
|
-
```bash
|
|
47
|
-
./mvnw <repo profiles/options> <smart-doc plugin goal> -f <root-or-module-pom>
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
3. Find the generated `openapi.json`.
|
|
51
|
-
- Use the smart-doc `outPath` from the selected config as the primary source of truth.
|
|
52
|
-
- If the exact file name is not obvious, search under the configured output directory for OpenAPI JSON files.
|
|
53
|
-
- If multiple files exist, choose the one from the module whose config and plugin includes cover the controllers/DTOs being changed.
|
|
54
|
-
|
|
55
|
-
4. Copy the generated contract into the frontend OpenAPI input.
|
|
56
|
-
- Locate the frontend root by finding `orval.config.*` and the package script that runs Orval or API generation.
|
|
57
|
-
- Read the Orval config to identify the OpenAPI input path.
|
|
58
|
-
- Preserve the frontend input path expected by Orval; do not invent a new input path unless the config is updated too.
|
|
59
|
-
|
|
60
|
-
```bash
|
|
61
|
-
cp <generated-openapi-json> <orval-input-openapi-json>
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
5. Regenerate the frontend API client from the frontend root.
|
|
65
|
-
- Use the API generation script already defined by the frontend package when present.
|
|
66
|
-
- If there is no wrapper script, run the configured Orval command and any local cleanup/format scripts referenced by the package scripts.
|
|
67
|
-
|
|
68
|
-
```bash
|
|
69
|
-
pnpm <api-generation-script>
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
6. Inspect generated changes before touching call sites.
|
|
73
|
-
- Check the Orval input JSON path from the config.
|
|
74
|
-
- Check the generated client output paths from the Orval config.
|
|
75
|
-
- Update handwritten call sites only after seeing the regenerated function names, request body shape, params type, and result type.
|
|
76
|
-
|
|
77
|
-
## How It Works
|
|
78
|
-
|
|
79
|
-
- `smart-doc-maven-plugin` scans Java controller methods, request/response DTOs, annotations, comments, and configured dependency source jars. It emits an OpenAPI contract under the configured `outPath`.
|
|
80
|
-
- The YSS baseline config uses `allInOne: true`, `outPath: "target/openapi"`, a service package filter, `componentType: "NORMAL"`, and disables debug pages and request/response examples by default.
|
|
81
|
-
- Do not copy environment-specific `serverUrl`, `debugEnvUrl`, `openUrl`, Torna `appToken`, or project-specific `revisionLogs` into a reusable scaffold.
|
|
82
|
-
- The backend module is the source of truth for routes, HTTP verbs, DTO field names, enum descriptions, binary responses, multipart inputs, and operation IDs.
|
|
83
|
-
- The frontend `orval.config.*` determines which OpenAPI input file is read and where TypeScript schema types plus client functions are generated.
|
|
84
|
-
- Local cleanup, export-flattening, or formatting scripts may post-process generated files. Use them only when they are part of the repository's generation script.
|
|
85
|
-
|
|
86
|
-
## Repo Checks
|
|
87
|
-
|
|
88
|
-
Run these discovery commands when the layout is uncertain:
|
|
89
|
-
|
|
90
|
-
```bash
|
|
91
|
-
rg -n "smart-doc-maven-plugin|configFile|outPath|openapi" -S pom.xml '**/pom.xml' '**/smart-doc.json'
|
|
92
|
-
find . -maxdepth 6 \( -name 'orval.config.*' -o -name 'package.json' -o -name 'smart-doc.json' \) -print
|
|
93
|
-
rg -n "orval|format:generated|api-schema-cleanup|api-flatten-exports" -S '**/package.json' '**/orval.config.*'
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
## Troubleshooting
|
|
97
|
-
|
|
98
|
-
- If a controller or DTO is missing, check `smart-doc.json` `packageFilters`, the plugin `<includes>`, module dependencies, and whether source jars are available in the local Maven repository.
|
|
99
|
-
- If schema names look unstable or invalid, check `componentType` and the repository's smart-doc configuration.
|
|
100
|
-
- If binary download or Excel upload contracts are wrong, inspect backend annotations and any OpenAPI normalizer/override code in the repo before manually editing generated JSON.
|
|
101
|
-
- If Orval changes a client function signature, update frontend call sites to match the generated contract. Do not preserve old call shapes by hand-editing generated files.
|
|
102
|
-
- If `api-flatten-exports.cjs` cannot parse `getApi`, inspect the generated `index.ts`; an Orval version or mode change may have changed the output shape.
|
|
103
|
-
- If formatting or generation fails in nested workspaces, run from the frontend root that owns `orval.config.*` and the API generation script.
|
|
104
|
-
|
|
105
|
-
## Verification
|
|
106
|
-
|
|
107
|
-
Prefer targeted checks:
|
|
108
|
-
|
|
109
|
-
```bash
|
|
110
|
-
test -s <generated-openapi-json>
|
|
111
|
-
test -s <orval-input-openapi-json>
|
|
112
|
-
cd <frontend-root> && pnpm <api-generation-script>
|
|
113
|
-
git diff -- <orval-input-openapi-json> <generated-client-output-paths>
|
|
114
|
-
```
|
|
115
|
-
|
|
116
|
-
For frontend behavior after API signature changes, run the smallest build or type check that is reliable for the repository and the affected frontend package.
|
|
Binary file
|
|
Binary file
|