create-yss-spec 1.1.3 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +20 -2
- package/package.json +13 -2
- package/src/cli.js +367 -51
- package/template/.agents/skills/ask-matt/SKILL.md +8 -4
- package/template/.agents/skills/ask-matt/agents/openai.yaml +5 -0
- package/template/.agents/skills/code-review/SKILL.md +4 -4
- package/template/.agents/skills/code-review/agents/openai.yaml +3 -0
- package/template/.agents/skills/codebase-design/agents/openai.yaml +3 -0
- package/template/.agents/skills/competitive-intelligence/SKILL.md +5 -5
- package/template/.agents/skills/diagnosing-bugs/agents/openai.yaml +3 -0
- package/template/.agents/skills/domain-modeling/agents/openai.yaml +3 -0
- package/template/.agents/skills/excalidraw-diagram-generator/SKILL.md +4 -4
- package/template/.agents/skills/grill-me/SKILL.md +7 -0
- package/template/.agents/skills/grill-me/agents/openai.yaml +5 -0
- package/template/.agents/skills/grill-with-docs/agents/openai.yaml +5 -0
- package/template/.agents/skills/grilling/SKILL.md +12 -0
- package/template/.agents/skills/grilling/agents/openai.yaml +3 -0
- package/template/.agents/skills/handoff/SKILL.md +16 -0
- package/template/.agents/skills/handoff/agents/openai.yaml +5 -0
- package/template/.agents/skills/high-fidelity-html-prototype/SKILL.md +6 -6
- package/template/.agents/skills/high-fidelity-html-prototype/agents/openai.yaml +5 -0
- package/template/.agents/skills/implement/SKILL.md +2 -2
- package/template/.agents/skills/implement/agents/openai.yaml +5 -0
- package/template/.agents/skills/improve-codebase-architecture/SKILL.md +6 -1
- package/template/.agents/skills/improve-codebase-architecture/agents/openai.yaml +5 -0
- package/template/.agents/skills/lombok/SKILL.md +345 -0
- package/template/.agents/skills/mapstruct/SKILL.md +328 -0
- package/template/.agents/skills/prototype/LOGIC.md +3 -3
- package/template/.agents/skills/prototype/SKILL.md +2 -6
- package/template/.agents/skills/prototype/UI.md +4 -4
- package/template/.agents/skills/prototype/agents/openai.yaml +3 -0
- package/template/.agents/skills/research/agents/openai.yaml +3 -0
- package/template/.agents/skills/resolving-merge-conflicts/agents/openai.yaml +3 -0
- package/template/.agents/skills/setup-matt-pocock-skills/SKILL.md +21 -32
- package/template/.agents/skills/setup-matt-pocock-skills/agents/openai.yaml +5 -0
- package/template/.agents/skills/setup-matt-pocock-skills/issue-tracker-github.md +2 -2
- package/template/.agents/skills/setup-matt-pocock-skills/issue-tracker-gitlab.md +2 -2
- package/template/.agents/skills/setup-matt-pocock-skills/issue-tracker-local.md +6 -6
- package/template/.agents/skills/setup-matt-pocock-skills/triage-labels.md +2 -2
- package/template/.agents/skills/tdd/agents/openai.yaml +3 -0
- package/template/.agents/skills/teach/GLOSSARY-FORMAT.md +35 -0
- package/template/.agents/skills/teach/LEARNING-RECORD-FORMAT.md +46 -0
- package/template/.agents/skills/teach/MISSION-FORMAT.md +31 -0
- package/template/.agents/skills/teach/RESOURCES-FORMAT.md +32 -0
- package/template/.agents/skills/teach/SKILL.md +140 -0
- package/template/.agents/skills/teach/agents/openai.yaml +5 -0
- package/template/.agents/skills/to-spec/SKILL.md +58 -0
- package/template/.agents/skills/to-spec/agents/openai.yaml +5 -0
- package/template/.agents/skills/to-tickets/SKILL.md +62 -0
- package/template/.agents/skills/to-tickets/agents/openai.yaml +5 -0
- package/template/.agents/skills/triage/SKILL.md +4 -4
- package/template/.agents/skills/triage/agents/openai.yaml +5 -0
- package/template/.agents/skills/wayfinder/SKILL.md +128 -0
- package/template/.agents/skills/wayfinder/agents/openai.yaml +5 -0
- package/template/.agents/skills/web-design-engineer/SKILL.md +2 -2
- package/template/.agents/skills/writing-great-skills/GLOSSARY.md +201 -0
- package/template/.agents/skills/writing-great-skills/SKILL.md +83 -0
- package/template/.agents/skills/writing-great-skills/agents/openai.yaml +5 -0
- package/template/.agents/skills/yss-cache/SKILL.md +44 -0
- package/template/.agents/skills/yss-cache/agents/openai.yaml +5 -0
- package/template/.agents/skills/yss-cache/references/annotations.md +39 -0
- package/template/.agents/skills/yss-cache/references/architecture.md +25 -0
- package/template/.agents/skills/yss-cache/references/configuration.md +34 -0
- package/template/.agents/skills/yss-cache/references/redis-fallback.md +23 -0
- package/template/.agents/skills/yss-cache/references/redis-topology.md +62 -0
- package/template/.agents/skills/yss-cache/references/serialization.md +17 -0
- package/template/.agents/skills/yss-cache/references/source-index.md +64 -0
- package/template/.agents/skills/yss-cache/references/troubleshooting.md +33 -0
- package/template/.agents/skills/yss-cache/references/verification.md +34 -0
- package/template/.agents/skills/yss-cache/scripts/check-skill-freshness.sh +84 -0
- package/template/.agents/skills/yss-cache/scripts/inspect-cache-usage.sh +96 -0
- package/template/.agents/skills/yss-cache/scripts/verify-cache-component.sh +101 -0
- package/template/.claude/skills/ask-matt/SKILL.md +8 -4
- package/template/.claude/skills/ask-matt/agents/openai.yaml +5 -0
- package/template/.claude/skills/code-review/SKILL.md +4 -4
- package/template/.claude/skills/code-review/agents/openai.yaml +3 -0
- package/template/.claude/skills/codebase-design/agents/openai.yaml +3 -0
- package/template/.claude/skills/competitive-intelligence/SKILL.md +5 -5
- package/template/.claude/skills/diagnosing-bugs/agents/openai.yaml +3 -0
- package/template/.claude/skills/domain-modeling/agents/openai.yaml +3 -0
- package/template/.claude/skills/excalidraw-diagram-generator/SKILL.md +37 -16
- package/template/.claude/skills/excalidraw-diagram-generator/scripts/add-arrow.py +18 -18
- package/template/.claude/skills/excalidraw-diagram-generator/scripts/add-icon-to-diagram.py +46 -47
- package/template/.claude/skills/grill-me/SKILL.md +7 -0
- package/template/.claude/skills/grill-me/agents/openai.yaml +5 -0
- package/template/.claude/skills/grill-with-docs/agents/openai.yaml +5 -0
- package/template/.claude/skills/grilling/SKILL.md +12 -0
- package/template/.claude/skills/grilling/agents/openai.yaml +3 -0
- package/template/.claude/skills/handoff/SKILL.md +16 -0
- package/template/.claude/skills/handoff/agents/openai.yaml +5 -0
- package/template/.claude/skills/implement/SKILL.md +2 -2
- package/template/.claude/skills/implement/agents/openai.yaml +5 -0
- package/template/.claude/skills/improve-codebase-architecture/SKILL.md +6 -1
- package/template/.claude/skills/improve-codebase-architecture/agents/openai.yaml +5 -0
- package/template/.claude/skills/prototype/LOGIC.md +3 -3
- package/template/.claude/skills/prototype/SKILL.md +2 -6
- package/template/.claude/skills/prototype/UI.md +4 -4
- package/template/.claude/skills/prototype/agents/openai.yaml +3 -0
- package/template/.claude/skills/research/agents/openai.yaml +3 -0
- package/template/.claude/skills/resolving-merge-conflicts/agents/openai.yaml +3 -0
- package/template/.claude/skills/setup-matt-pocock-skills/SKILL.md +21 -32
- package/template/.claude/skills/setup-matt-pocock-skills/agents/openai.yaml +5 -0
- package/template/.claude/skills/setup-matt-pocock-skills/issue-tracker-github.md +2 -2
- package/template/.claude/skills/setup-matt-pocock-skills/issue-tracker-gitlab.md +2 -2
- package/template/.claude/skills/setup-matt-pocock-skills/issue-tracker-local.md +6 -6
- package/template/.claude/skills/setup-matt-pocock-skills/triage-labels.md +2 -2
- package/template/.claude/skills/tdd/agents/openai.yaml +3 -0
- package/template/.claude/skills/teach/GLOSSARY-FORMAT.md +35 -0
- package/template/.claude/skills/teach/LEARNING-RECORD-FORMAT.md +46 -0
- package/template/.claude/skills/teach/MISSION-FORMAT.md +31 -0
- package/template/.claude/skills/teach/RESOURCES-FORMAT.md +32 -0
- package/template/.claude/skills/teach/SKILL.md +140 -0
- package/template/.claude/skills/teach/agents/openai.yaml +5 -0
- package/template/.claude/skills/to-spec/SKILL.md +58 -0
- package/template/.claude/skills/to-spec/agents/openai.yaml +5 -0
- package/template/.claude/skills/to-tickets/SKILL.md +62 -0
- package/template/.claude/skills/to-tickets/agents/openai.yaml +5 -0
- package/template/.claude/skills/triage/SKILL.md +4 -4
- package/template/.claude/skills/triage/agents/openai.yaml +5 -0
- package/template/.claude/skills/wayfinder/SKILL.md +128 -0
- package/template/.claude/skills/wayfinder/agents/openai.yaml +5 -0
- package/template/.claude/skills/web-design-engineer/SKILL.md +2 -2
- package/template/.claude/skills/writing-great-skills/GLOSSARY.md +201 -0
- package/template/.claude/skills/writing-great-skills/SKILL.md +83 -0
- package/template/.claude/skills/writing-great-skills/agents/openai.yaml +5 -0
- package/template/.claude/skills/yss-cache/SKILL.md +44 -0
- package/template/.claude/skills/yss-cache/agents/openai.yaml +5 -0
- package/template/.claude/skills/yss-cache/references/annotations.md +39 -0
- package/template/.claude/skills/yss-cache/references/architecture.md +25 -0
- package/template/.claude/skills/yss-cache/references/configuration.md +34 -0
- package/template/.claude/skills/yss-cache/references/redis-fallback.md +23 -0
- package/template/.claude/skills/yss-cache/references/redis-topology.md +62 -0
- package/template/.claude/skills/yss-cache/references/serialization.md +17 -0
- package/template/.claude/skills/yss-cache/references/source-index.md +64 -0
- package/template/.claude/skills/yss-cache/references/troubleshooting.md +33 -0
- package/template/.claude/skills/yss-cache/references/verification.md +34 -0
- package/template/.claude/skills/yss-cache/scripts/check-skill-freshness.sh +84 -0
- package/template/.claude/skills/yss-cache/scripts/inspect-cache-usage.sh +96 -0
- package/template/.claude/skills/yss-cache/scripts/verify-cache-component.sh +101 -0
- package/template/.codex/config.toml +3 -0
- package/template/.codex/skills/ask-matt/SKILL.md +8 -4
- package/template/.codex/skills/ask-matt/agents/openai.yaml +5 -0
- package/template/.codex/skills/code-review/SKILL.md +4 -4
- package/template/.codex/skills/code-review/agents/openai.yaml +3 -0
- package/template/.codex/skills/code-review-process/references/automation-and-standards.md +1 -1
- package/template/.codex/skills/codebase-design/agents/openai.yaml +3 -0
- package/template/.codex/skills/competitive-intelligence/SKILL.md +5 -5
- package/template/.codex/skills/cross-repo-implementation-routing/SKILL.md +2 -2
- package/template/.codex/skills/diagnosing-bugs/agents/openai.yaml +3 -0
- package/template/.codex/skills/domain-modeling/agents/openai.yaml +3 -0
- package/template/.codex/skills/grill-with-docs/agents/openai.yaml +5 -0
- package/template/.codex/skills/handoff/SKILL.md +16 -0
- package/template/.codex/skills/handoff/agents/openai.yaml +5 -0
- package/template/.codex/skills/high-fidelity-html-prototype/SKILL.md +6 -6
- package/template/.codex/skills/implement/SKILL.md +2 -2
- package/template/.codex/skills/implement/agents/openai.yaml +5 -0
- package/template/.codex/skills/improve-codebase-architecture/SKILL.md +6 -1
- package/template/.codex/skills/improve-codebase-architecture/agents/openai.yaml +5 -0
- package/template/.codex/skills/product-design-prototype/SKILL.md +14 -10
- package/template/.codex/skills/product-design-prototype/agents/openai.yaml +1 -1
- package/template/.codex/skills/prototype/LOGIC.md +3 -3
- package/template/.codex/skills/prototype/SKILL.md +2 -6
- package/template/.codex/skills/prototype/UI.md +4 -4
- package/template/.codex/skills/prototype/agents/openai.yaml +3 -0
- package/template/.codex/skills/prototype-review/SKILL.md +6 -6
- package/template/.codex/skills/prototype-review/agents/openai.yaml +2 -2
- package/template/.codex/skills/research/agents/openai.yaml +3 -0
- package/template/.codex/skills/resolving-merge-conflicts/agents/openai.yaml +3 -0
- package/template/.codex/skills/setup-matt-pocock-skills/SKILL.md +21 -32
- package/template/.codex/skills/setup-matt-pocock-skills/agents/openai.yaml +5 -0
- package/template/.codex/skills/setup-matt-pocock-skills/issue-tracker-github.md +2 -2
- package/template/.codex/skills/setup-matt-pocock-skills/issue-tracker-gitlab.md +2 -2
- package/template/.codex/skills/setup-matt-pocock-skills/issue-tracker-local.md +6 -6
- package/template/.codex/skills/setup-matt-pocock-skills/triage-labels.md +2 -2
- package/template/.codex/skills/tdd/agents/openai.yaml +3 -0
- package/template/.codex/skills/to-spec/SKILL.md +58 -0
- package/template/.codex/skills/to-spec/agents/openai.yaml +5 -0
- package/template/.codex/skills/to-tickets/SKILL.md +62 -0
- package/template/.codex/skills/to-tickets/agents/openai.yaml +5 -0
- package/template/.codex/skills/triage/SKILL.md +4 -4
- package/template/.codex/skills/triage/agents/openai.yaml +5 -0
- package/template/.codex/skills/wayfinder/SKILL.md +128 -0
- package/template/.codex/skills/wayfinder/agents/openai.yaml +5 -0
- package/template/.codex/skills/writing-great-skills/GLOSSARY.md +201 -0
- package/template/.codex/skills/writing-great-skills/SKILL.md +83 -0
- package/template/.codex/skills/writing-great-skills/agents/openai.yaml +5 -0
- package/template/.codex/skills/yss-api-integration/SKILL.md +1 -1
- package/template/.codex/skills/yss-cache/SKILL.md +29 -58
- package/template/.codex/skills/yss-cache/agents/openai.yaml +2 -2
- package/template/.codex/skills/yss-cache/references/annotations.md +39 -0
- package/template/.codex/skills/yss-cache/references/architecture.md +25 -0
- package/template/.codex/skills/yss-cache/references/configuration.md +34 -0
- package/template/.codex/skills/yss-cache/references/redis-fallback.md +23 -0
- package/template/.codex/skills/yss-cache/references/redis-topology.md +62 -0
- package/template/.codex/skills/yss-cache/references/serialization.md +17 -0
- package/template/.codex/skills/yss-cache/references/source-index.md +1 -1
- package/template/.codex/skills/yss-cache/references/troubleshooting.md +33 -0
- package/template/.codex/skills/yss-cache/references/verification.md +34 -0
- package/template/.codex/skills/yss-cache/scripts/check-skill-freshness.sh +84 -0
- package/template/.codex/skills/yss-cache/scripts/inspect-cache-usage.sh +96 -0
- package/template/.codex/skills/yss-cache/scripts/verify-cache-component.sh +101 -0
- package/template/.codex/skills/yss-ddd-scaffold-generator/SKILL.md +1 -0
- package/template/.codex/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-parent/SKILL.md +2 -2
- package/template/.codex/skills/yss-design-system/SKILL.md +9 -2
- package/template/.codex/skills/yss-design-system/references/design-system.md +12 -0
- package/template/.codex/skills/yss-domain-modeling/SKILL.md +3 -3
- package/template/.codex/skills/yss-domain-modeling/agents/openai.yaml +1 -1
- package/template/.codex/skills/yss-domain-modeling/references/modeling-workflow.md +2 -2
- package/template/.codex/skills/yss-filerunner/SKILL.md +1 -1
- package/template/.codex/skills/yss-openapi/SKILL.md +35 -47
- package/template/.codex/skills/yss-openapi/img.png +0 -0
- package/template/.codex/skills/yss-openapi/img_1.png +0 -0
- package/template/.codex/skills/yss-openapi-draft-review/SKILL.md +3 -3
- package/template/.codex/skills/yss-openapi-governance/SKILL.md +4 -4
- package/template/.codex/skills/yss-product-lifecycle/SKILL.md +57 -34
- package/template/.codex/skills/yss-product-lifecycle/references/artifact-checklist.md +23 -21
- package/template/.codex/skills/yss-product-lifecycle/references/stage-routing.md +15 -15
- package/template/.codex/skills/yss-product-lifecycle/references/yss-skill-routing.md +13 -8
- package/template/.codex/skills/yss-repository/SKILL.md +11 -3
- package/template/.codex/skills/yss-router/SKILL.md +2 -3
- package/template/.codex/skills/yss-router/references/boundaries.md +0 -1
- package/template/.codex/skills/yss-source-index/references/source-map-config.md +0 -1
- package/template/.codex/skills/yss-source-index/scripts/refresh-yss-skill-index.py +0 -3
- package/template/.codex/skills/yss-web-controller/SKILL.md +9 -3
- package/template/.hermes/skills/ask-matt/SKILL.md +8 -4
- package/template/.hermes/skills/ask-matt/agents/openai.yaml +5 -0
- package/template/.hermes/skills/code-review/SKILL.md +4 -4
- package/template/.hermes/skills/code-review/agents/openai.yaml +3 -0
- package/template/.hermes/skills/codebase-design/agents/openai.yaml +3 -0
- package/template/.hermes/skills/competitive-intelligence/SKILL.md +5 -5
- package/template/.hermes/skills/diagnosing-bugs/agents/openai.yaml +3 -0
- package/template/.hermes/skills/domain-modeling/agents/openai.yaml +3 -0
- package/template/.hermes/skills/excalidraw-diagram-generator/SKILL.md +37 -16
- package/template/.hermes/skills/excalidraw-diagram-generator/scripts/add-arrow.py +18 -18
- package/template/.hermes/skills/excalidraw-diagram-generator/scripts/add-icon-to-diagram.py +46 -47
- package/template/.hermes/skills/grill-me/SKILL.md +7 -0
- package/template/.hermes/skills/grill-me/agents/openai.yaml +5 -0
- package/template/.hermes/skills/grill-with-docs/agents/openai.yaml +5 -0
- package/template/.hermes/skills/grilling/SKILL.md +12 -0
- package/template/.hermes/skills/grilling/agents/openai.yaml +3 -0
- package/template/.hermes/skills/handoff/SKILL.md +16 -0
- package/template/.hermes/skills/handoff/agents/openai.yaml +5 -0
- package/template/.hermes/skills/implement/SKILL.md +2 -2
- package/template/.hermes/skills/implement/agents/openai.yaml +5 -0
- package/template/.hermes/skills/improve-codebase-architecture/SKILL.md +6 -1
- package/template/.hermes/skills/improve-codebase-architecture/agents/openai.yaml +5 -0
- package/template/.hermes/skills/prototype/LOGIC.md +3 -3
- package/template/.hermes/skills/prototype/SKILL.md +2 -6
- package/template/.hermes/skills/prototype/UI.md +4 -4
- package/template/.hermes/skills/prototype/agents/openai.yaml +3 -0
- package/template/.hermes/skills/research/agents/openai.yaml +3 -0
- package/template/.hermes/skills/resolving-merge-conflicts/agents/openai.yaml +3 -0
- package/template/.hermes/skills/setup-matt-pocock-skills/SKILL.md +21 -32
- package/template/.hermes/skills/setup-matt-pocock-skills/agents/openai.yaml +5 -0
- package/template/.hermes/skills/setup-matt-pocock-skills/issue-tracker-github.md +2 -2
- package/template/.hermes/skills/setup-matt-pocock-skills/issue-tracker-gitlab.md +2 -2
- package/template/.hermes/skills/setup-matt-pocock-skills/issue-tracker-local.md +6 -6
- package/template/.hermes/skills/setup-matt-pocock-skills/triage-labels.md +2 -2
- package/template/.hermes/skills/tdd/agents/openai.yaml +3 -0
- package/template/.hermes/skills/teach/GLOSSARY-FORMAT.md +35 -0
- package/template/.hermes/skills/teach/LEARNING-RECORD-FORMAT.md +46 -0
- package/template/.hermes/skills/teach/MISSION-FORMAT.md +31 -0
- package/template/.hermes/skills/teach/RESOURCES-FORMAT.md +32 -0
- package/template/.hermes/skills/teach/SKILL.md +140 -0
- package/template/.hermes/skills/teach/agents/openai.yaml +5 -0
- package/template/.hermes/skills/to-spec/SKILL.md +58 -0
- package/template/.hermes/skills/to-spec/agents/openai.yaml +5 -0
- package/template/.hermes/skills/to-tickets/SKILL.md +62 -0
- package/template/.hermes/skills/to-tickets/agents/openai.yaml +5 -0
- package/template/.hermes/skills/triage/SKILL.md +4 -4
- package/template/.hermes/skills/triage/agents/openai.yaml +5 -0
- package/template/.hermes/skills/wayfinder/SKILL.md +128 -0
- package/template/.hermes/skills/wayfinder/agents/openai.yaml +5 -0
- package/template/.hermes/skills/web-design-engineer/SKILL.md +2 -2
- package/template/.hermes/skills/writing-great-skills/GLOSSARY.md +201 -0
- package/template/.hermes/skills/writing-great-skills/SKILL.md +83 -0
- package/template/.hermes/skills/writing-great-skills/agents/openai.yaml +5 -0
- package/template/.hermes/skills/yss-cache/SKILL.md +44 -0
- package/template/.hermes/skills/yss-cache/agents/openai.yaml +5 -0
- package/template/.hermes/skills/yss-cache/references/annotations.md +39 -0
- package/template/.hermes/skills/yss-cache/references/architecture.md +25 -0
- package/template/.hermes/skills/yss-cache/references/configuration.md +34 -0
- package/template/.hermes/skills/yss-cache/references/redis-fallback.md +23 -0
- package/template/.hermes/skills/yss-cache/references/redis-topology.md +62 -0
- package/template/.hermes/skills/yss-cache/references/serialization.md +17 -0
- package/template/.hermes/skills/yss-cache/references/source-index.md +64 -0
- package/template/.hermes/skills/yss-cache/references/troubleshooting.md +33 -0
- package/template/.hermes/skills/yss-cache/references/verification.md +34 -0
- package/template/.hermes/skills/yss-cache/scripts/check-skill-freshness.sh +84 -0
- package/template/.hermes/skills/yss-cache/scripts/inspect-cache-usage.sh +96 -0
- package/template/.hermes/skills/yss-cache/scripts/verify-cache-component.sh +101 -0
- package/template/.obsidian/app.json +3 -0
- package/template/.obsidian/appearance.json +5 -0
- package/template/.obsidian/community-plugins.json +4 -0
- package/template/.obsidian/core-plugins.json +33 -0
- package/template/.obsidian/graph.json +22 -0
- package/template/.obsidian/plugins/obsidian-excalidraw-plugin/data.json +1085 -0
- package/template/.obsidian/plugins/obsidian-excalidraw-plugin/main.js +30 -0
- package/template/.obsidian/plugins/obsidian-excalidraw-plugin/manifest.json +12 -0
- package/template/.obsidian/plugins/obsidian-excalidraw-plugin/styles.css +1 -0
- package/template/.obsidian/plugins/obsidian-git/main.js +415 -0
- package/template/.obsidian/plugins/obsidian-git/manifest.json +10 -0
- package/template/.obsidian/plugins/obsidian-git/styles.css +705 -0
- package/template/.obsidian/workspace.json +222 -0
- package/template/.pi/skills/ask-matt/SKILL.md +8 -4
- package/template/.pi/skills/ask-matt/agents/openai.yaml +5 -0
- package/template/.pi/skills/code-review/SKILL.md +4 -4
- package/template/.pi/skills/code-review/agents/openai.yaml +3 -0
- package/template/.pi/skills/codebase-design/agents/openai.yaml +3 -0
- package/template/.pi/skills/competitive-intelligence/SKILL.md +5 -5
- package/template/.pi/skills/diagnosing-bugs/agents/openai.yaml +3 -0
- package/template/.pi/skills/domain-modeling/agents/openai.yaml +3 -0
- package/template/.pi/skills/excalidraw-diagram-generator/SKILL.md +37 -16
- package/template/.pi/skills/excalidraw-diagram-generator/scripts/add-arrow.py +18 -18
- package/template/.pi/skills/excalidraw-diagram-generator/scripts/add-icon-to-diagram.py +46 -47
- package/template/.pi/skills/grill-me/SKILL.md +7 -0
- package/template/.pi/skills/grill-me/agents/openai.yaml +5 -0
- package/template/.pi/skills/grill-with-docs/agents/openai.yaml +5 -0
- package/template/.pi/skills/grilling/SKILL.md +12 -0
- package/template/.pi/skills/grilling/agents/openai.yaml +3 -0
- package/template/.pi/skills/handoff/SKILL.md +16 -0
- package/template/.pi/skills/handoff/agents/openai.yaml +5 -0
- package/template/.pi/skills/implement/SKILL.md +2 -2
- package/template/.pi/skills/implement/agents/openai.yaml +5 -0
- package/template/.pi/skills/improve-codebase-architecture/SKILL.md +6 -1
- package/template/.pi/skills/improve-codebase-architecture/agents/openai.yaml +5 -0
- package/template/.pi/skills/prototype/LOGIC.md +3 -3
- package/template/.pi/skills/prototype/SKILL.md +2 -6
- package/template/.pi/skills/prototype/UI.md +4 -4
- package/template/.pi/skills/prototype/agents/openai.yaml +3 -0
- package/template/.pi/skills/research/agents/openai.yaml +3 -0
- package/template/.pi/skills/resolving-merge-conflicts/agents/openai.yaml +3 -0
- package/template/.pi/skills/setup-matt-pocock-skills/SKILL.md +21 -32
- package/template/.pi/skills/setup-matt-pocock-skills/agents/openai.yaml +5 -0
- package/template/.pi/skills/setup-matt-pocock-skills/issue-tracker-github.md +2 -2
- package/template/.pi/skills/setup-matt-pocock-skills/issue-tracker-gitlab.md +2 -2
- package/template/.pi/skills/setup-matt-pocock-skills/issue-tracker-local.md +6 -6
- package/template/.pi/skills/setup-matt-pocock-skills/triage-labels.md +2 -2
- package/template/.pi/skills/tdd/agents/openai.yaml +3 -0
- package/template/.pi/skills/teach/GLOSSARY-FORMAT.md +35 -0
- package/template/.pi/skills/teach/LEARNING-RECORD-FORMAT.md +46 -0
- package/template/.pi/skills/teach/MISSION-FORMAT.md +31 -0
- package/template/.pi/skills/teach/RESOURCES-FORMAT.md +32 -0
- package/template/.pi/skills/teach/SKILL.md +140 -0
- package/template/.pi/skills/teach/agents/openai.yaml +5 -0
- package/template/.pi/skills/to-spec/SKILL.md +58 -0
- package/template/.pi/skills/to-spec/agents/openai.yaml +5 -0
- package/template/.pi/skills/to-tickets/SKILL.md +62 -0
- package/template/.pi/skills/to-tickets/agents/openai.yaml +5 -0
- package/template/.pi/skills/triage/SKILL.md +4 -4
- package/template/.pi/skills/triage/agents/openai.yaml +5 -0
- package/template/.pi/skills/wayfinder/SKILL.md +128 -0
- package/template/.pi/skills/wayfinder/agents/openai.yaml +5 -0
- package/template/.pi/skills/web-design-engineer/SKILL.md +2 -2
- package/template/.pi/skills/writing-great-skills/GLOSSARY.md +201 -0
- package/template/.pi/skills/writing-great-skills/SKILL.md +83 -0
- package/template/.pi/skills/writing-great-skills/agents/openai.yaml +5 -0
- package/template/.pi/skills/yss-cache/SKILL.md +44 -0
- package/template/.pi/skills/yss-cache/agents/openai.yaml +5 -0
- package/template/.pi/skills/yss-cache/references/annotations.md +39 -0
- package/template/.pi/skills/yss-cache/references/architecture.md +25 -0
- package/template/.pi/skills/yss-cache/references/configuration.md +34 -0
- package/template/.pi/skills/yss-cache/references/redis-fallback.md +23 -0
- package/template/.pi/skills/yss-cache/references/redis-topology.md +62 -0
- package/template/.pi/skills/yss-cache/references/serialization.md +17 -0
- package/template/.pi/skills/yss-cache/references/source-index.md +64 -0
- package/template/.pi/skills/yss-cache/references/troubleshooting.md +33 -0
- package/template/.pi/skills/yss-cache/references/verification.md +34 -0
- package/template/.pi/skills/yss-cache/scripts/check-skill-freshness.sh +84 -0
- package/template/.pi/skills/yss-cache/scripts/inspect-cache-usage.sh +96 -0
- package/template/.pi/skills/yss-cache/scripts/verify-cache-component.sh +101 -0
- package/template/.trae/skills/ask-matt/SKILL.md +8 -4
- package/template/.trae/skills/ask-matt/agents/openai.yaml +5 -0
- package/template/.trae/skills/code-review/SKILL.md +4 -4
- package/template/.trae/skills/code-review/agents/openai.yaml +3 -0
- package/template/.trae/skills/codebase-design/agents/openai.yaml +3 -0
- package/template/.trae/skills/competitive-intelligence/SKILL.md +5 -5
- package/template/.trae/skills/diagnosing-bugs/agents/openai.yaml +3 -0
- package/template/.trae/skills/domain-modeling/agents/openai.yaml +3 -0
- package/template/.trae/skills/excalidraw-diagram-generator/SKILL.md +37 -16
- package/template/.trae/skills/excalidraw-diagram-generator/scripts/add-arrow.py +18 -18
- package/template/.trae/skills/excalidraw-diagram-generator/scripts/add-icon-to-diagram.py +46 -47
- package/template/.trae/skills/grill-me/SKILL.md +7 -0
- package/template/.trae/skills/grill-me/agents/openai.yaml +5 -0
- package/template/.trae/skills/grill-with-docs/agents/openai.yaml +5 -0
- package/template/.trae/skills/grilling/SKILL.md +12 -0
- package/template/.trae/skills/grilling/agents/openai.yaml +3 -0
- package/template/.trae/skills/handoff/SKILL.md +16 -0
- package/template/.trae/skills/handoff/agents/openai.yaml +5 -0
- package/template/.trae/skills/implement/SKILL.md +2 -2
- package/template/.trae/skills/implement/agents/openai.yaml +5 -0
- package/template/.trae/skills/improve-codebase-architecture/SKILL.md +6 -1
- package/template/.trae/skills/improve-codebase-architecture/agents/openai.yaml +5 -0
- package/template/.trae/skills/prototype/LOGIC.md +3 -3
- package/template/.trae/skills/prototype/SKILL.md +2 -6
- package/template/.trae/skills/prototype/UI.md +4 -4
- package/template/.trae/skills/prototype/agents/openai.yaml +3 -0
- package/template/.trae/skills/research/agents/openai.yaml +3 -0
- package/template/.trae/skills/resolving-merge-conflicts/agents/openai.yaml +3 -0
- package/template/.trae/skills/setup-matt-pocock-skills/SKILL.md +21 -32
- package/template/.trae/skills/setup-matt-pocock-skills/agents/openai.yaml +5 -0
- package/template/.trae/skills/setup-matt-pocock-skills/issue-tracker-github.md +2 -2
- package/template/.trae/skills/setup-matt-pocock-skills/issue-tracker-gitlab.md +2 -2
- package/template/.trae/skills/setup-matt-pocock-skills/issue-tracker-local.md +6 -6
- package/template/.trae/skills/setup-matt-pocock-skills/triage-labels.md +2 -2
- package/template/.trae/skills/tdd/agents/openai.yaml +3 -0
- package/template/.trae/skills/teach/GLOSSARY-FORMAT.md +35 -0
- package/template/.trae/skills/teach/LEARNING-RECORD-FORMAT.md +46 -0
- package/template/.trae/skills/teach/MISSION-FORMAT.md +31 -0
- package/template/.trae/skills/teach/RESOURCES-FORMAT.md +32 -0
- package/template/.trae/skills/teach/SKILL.md +140 -0
- package/template/.trae/skills/teach/agents/openai.yaml +5 -0
- package/template/.trae/skills/to-spec/SKILL.md +58 -0
- package/template/.trae/skills/to-spec/agents/openai.yaml +5 -0
- package/template/.trae/skills/to-tickets/SKILL.md +62 -0
- package/template/.trae/skills/to-tickets/agents/openai.yaml +5 -0
- package/template/.trae/skills/triage/SKILL.md +4 -4
- package/template/.trae/skills/triage/agents/openai.yaml +5 -0
- package/template/.trae/skills/wayfinder/SKILL.md +128 -0
- package/template/.trae/skills/wayfinder/agents/openai.yaml +5 -0
- package/template/.trae/skills/web-design-engineer/SKILL.md +2 -2
- package/template/.trae/skills/writing-great-skills/GLOSSARY.md +201 -0
- package/template/.trae/skills/writing-great-skills/SKILL.md +83 -0
- package/template/.trae/skills/writing-great-skills/agents/openai.yaml +5 -0
- package/template/.trae/skills/yss-cache/SKILL.md +44 -0
- package/template/.trae/skills/yss-cache/agents/openai.yaml +5 -0
- package/template/.trae/skills/yss-cache/references/annotations.md +39 -0
- package/template/.trae/skills/yss-cache/references/architecture.md +25 -0
- package/template/.trae/skills/yss-cache/references/configuration.md +34 -0
- package/template/.trae/skills/yss-cache/references/redis-fallback.md +23 -0
- package/template/.trae/skills/yss-cache/references/redis-topology.md +62 -0
- package/template/.trae/skills/yss-cache/references/serialization.md +17 -0
- package/template/.trae/skills/yss-cache/references/source-index.md +64 -0
- package/template/.trae/skills/yss-cache/references/troubleshooting.md +33 -0
- package/template/.trae/skills/yss-cache/references/verification.md +34 -0
- package/template/.trae/skills/yss-cache/scripts/check-skill-freshness.sh +84 -0
- package/template/.trae/skills/yss-cache/scripts/inspect-cache-usage.sh +96 -0
- package/template/.trae/skills/yss-cache/scripts/verify-cache-component.sh +101 -0
- package/template/AGENTS.md +89 -250
- package/template/CONTEXT.md +24 -11
- package/template/README.md +31 -45
- package/template/docs/adr/{adr-product-design-prototype-entrypoint.md → 0001-product-design-prototype-entrypoint.md} +3 -3
- package/template/docs/adr/0002-yss-project-repository-mode.md +3 -0
- package/template/docs/agents/README.md +4 -5
- package/template/docs/agents/domain.md +13 -15
- package/template/docs/agents/gitlab-workflow-skills.md +5 -5
- package/template/docs/agents/issue-tracker.md +15 -14
- package/template/docs/agents/skills-maintenance.md +44 -109
- package/template/docs/agents/triage-labels.md +10 -12
- package/template/docs/api/templates/openapi-draft-review-checklist.md +4 -4
- package/template/docs/api/templates/openapi-freeze-record-template.md +5 -5
- package/template/docs/architecture/README.md +4 -4
- package/template/docs/architecture/templates/architecture-review-checklist.md +4 -4
- package/template/docs/architecture/templates/business-architecture-template.md +7 -7
- package/template/docs/architecture/templates/data-architecture-template.md +4 -4
- package/template/docs/architecture/templates/engineering-baseline-review-template.md +4 -3
- package/template/docs/architecture/templates/functional-architecture-template.md +7 -7
- package/template/docs/architecture/templates/system-overview-design-template.md +5 -6
- package/template/docs/architecture/templates/tech-design-template.md +2 -2
- package/template/docs/design/README.md +8 -8
- package/template/docs/design/design.md +10 -1
- package/template/docs/design/diagrams/README.md +1 -1
- package/template/docs/design/templates/interaction-spec-template.md +6 -6
- package/template/docs/design/templates/product-overview-design-template.md +8 -8
- package/template/docs/design/templates/prototype-confirmation-template.md +4 -4
- package/template/docs/design/templates/prototype-review-checklist.md +5 -5
- package/template/docs/design/templates/state-matrix-template.md +1 -1
- package/template/docs/discovery/IDEATION.md +2 -2
- package/template/docs/discovery/README.md +4 -4
- package/template/docs/discovery/templates/competitive-analysis-template.md +4 -4
- package/template/docs/discovery/templates/discovery-template.md +8 -8
- package/template/docs/implementation/create-yss-spec-repository-mode-contract.md +59 -0
- package/template/docs/process/MATT-POCOCK-ENGINEERING-SKILLS.md +49 -30
- package/template/docs/process/harness-automation-candidates.md +10 -13
- package/template/docs/process/harness-executive-blueprint.md +11 -11
- package/template/docs/process/harness-optimization-backlog.md +6 -6
- package/template/docs/process/harness-pilot-retro-metrics.md +8 -8
- package/template/docs/process/harness-pilot-selection.md +8 -8
- package/template/docs/process/harness-process-tailoring.md +35 -16
- package/template/docs/process/harness-work-unit-map.md +9 -9
- package/template/docs/process/implementation-repo-integration.md +25 -11
- package/template/docs/process/lifecycle-artifact-map.md +66 -40
- package/template/docs/process/product-prototype-workflow.md +10 -10
- package/template/docs/process/skill-governance.md +12 -4
- package/template/docs/process/subagent-collaboration-validation.md +53 -0
- package/template/docs/process/subagent-collaboration.md +111 -0
- package/template/docs/process/template-governance-grilling-record.md +38 -0
- package/template/docs/process/template-governance-skill-validation.md +44 -0
- package/template/docs/process/templates/stage-checkpoint-template.md +42 -7
- package/template/docs/releases/next-major-template-governance.md +32 -0
- package/template/docs/requirements/README.md +11 -11
- package/template/docs/{adr/template.md → templates/adr-template.md} +2 -2
- package/template/docs/templates/agent-brief-template.md +5 -5
- package/template/docs/templates/build-architecture-checklist-template.md +41 -11
- package/template/docs/templates/implementation-repo-registry-template.md +8 -3
- package/template/docs/templates/implementation-routing-template.md +85 -19
- package/template/docs/templates/requirement-freeze-template.md +8 -8
- package/template/docs/templates/review-report-template.md +50 -0
- package/template/docs/templates/spec-delta-template.md +5 -5
- package/template/docs/templates/{prd-template.md → spec-template.md} +19 -9
- package/template/docs/templates/subagent-task-package-template.md +93 -0
- package/template/docs/templates/verification-record-template.md +2 -2
- package/template/docs/templates/vertical-slice-ticket-template.md +88 -0
- package/template/docs/user-guide/README.md +2 -2
- package/template/docs/user-guide/create-yss-spec-cli-guide.md +27 -209
- package/template/docs/user-guide/excalidraw-diagram-generator-guide.md +8 -8
- package/template/docs/user-guide/grill-with-docs-best-practices.md +16 -16
- package/template/docs/user-guide/grill-with-docs-guide.md +19 -19
- package/template/docs/user-guide/lifecycle-best-practices.md +40 -40
- package/template/docs/user-guide/product-lifecycle-workflow.md +31 -31
- package/template/docs/user-guide/product-rd-lifecycle-best-practices.md +121 -121
- package/template/docs/user-guide/spec-ticket-migration-guide.md +35 -0
- package/template/scripts/sync-skills +126 -0
- package/template/scripts/update-skill-lock +202 -0
- package/template/scripts/verify-lifecycle-scenarios +136 -0
- package/template/scripts/verify-template +148 -155
- package/template/skills-lock.json +1068 -65
- package/template/yss-project.yaml +2 -0
- package/template.manifest.json +3 -16
- package/template/.agent/skills/ask-matt/SKILL.md +0 -74
- package/template/.agent/skills/code-review/SKILL.md +0 -89
- package/template/.agent/skills/codebase-design/DEEPENING.md +0 -37
- package/template/.agent/skills/codebase-design/DESIGN-IT-TWICE.md +0 -44
- package/template/.agent/skills/codebase-design/SKILL.md +0 -114
- package/template/.agent/skills/competitive-intelligence/SKILL.md +0 -94
- package/template/.agent/skills/diagnosing-bugs/SKILL.md +0 -134
- package/template/.agent/skills/diagnosing-bugs/scripts/hitl-loop.template.sh +0 -41
- package/template/.agent/skills/domain-modeling/ADR-FORMAT.md +0 -47
- package/template/.agent/skills/domain-modeling/CONTEXT-FORMAT.md +0 -60
- package/template/.agent/skills/domain-modeling/SKILL.md +0 -74
- package/template/.agent/skills/grill-with-docs/SKILL.md +0 -7
- package/template/.agent/skills/implement/SKILL.md +0 -15
- package/template/.agent/skills/improve-codebase-architecture/HTML-REPORT.md +0 -123
- package/template/.agent/skills/improve-codebase-architecture/SKILL.md +0 -66
- package/template/.agent/skills/prototype/LOGIC.md +0 -79
- package/template/.agent/skills/prototype/SKILL.md +0 -30
- package/template/.agent/skills/prototype/UI.md +0 -112
- package/template/.agent/skills/research/SKILL.md +0 -12
- package/template/.agent/skills/resolving-merge-conflicts/SKILL.md +0 -14
- package/template/.agent/skills/setup-matt-pocock-skills/SKILL.md +0 -127
- package/template/.agent/skills/setup-matt-pocock-skills/domain.md +0 -51
- package/template/.agent/skills/setup-matt-pocock-skills/issue-tracker-github.md +0 -45
- package/template/.agent/skills/setup-matt-pocock-skills/issue-tracker-gitlab.md +0 -46
- package/template/.agent/skills/setup-matt-pocock-skills/issue-tracker-local.md +0 -30
- package/template/.agent/skills/setup-matt-pocock-skills/triage-labels.md +0 -15
- package/template/.agent/skills/tdd/SKILL.md +0 -36
- package/template/.agent/skills/tdd/mocking.md +0 -59
- package/template/.agent/skills/tdd/tests.md +0 -77
- package/template/.agent/skills/to-issues/SKILL.md +0 -84
- package/template/.agent/skills/to-prd/SKILL.md +0 -75
- package/template/.agent/skills/triage/AGENT-BRIEF.md +0 -207
- package/template/.agent/skills/triage/OUT-OF-SCOPE.md +0 -105
- package/template/.agent/skills/triage/SKILL.md +0 -112
- package/template/.agents/skills/to-issues/SKILL.md +0 -84
- package/template/.agents/skills/to-prd/SKILL.md +0 -75
- package/template/.claude/skills/to-issues/SKILL.md +0 -84
- package/template/.claude/skills/to-prd/SKILL.md +0 -75
- package/template/.codex/skills/to-issues/SKILL.md +0 -84
- package/template/.codex/skills/to-prd/SKILL.md +0 -75
- package/template/.codex/skills/yss-anti-scheduler/SKILL.md +0 -53
- package/template/.codex/skills/yss-anti-scheduler/agents/openai.yaml +0 -4
- package/template/.codex/skills/yss-anti-scheduler/references/source-index.md +0 -157
- package/template/.codex/skills/yss-cache/assets/ClearCache.java +0 -34
- package/template/.codex/skills/yss-cache/assets/QueryCache.java +0 -36
- package/template/.codex/skills/yss-cache/assets/UpdateCache.java +0 -34
- package/template/.codex/skills/yss-cache/references/README.md +0 -5
- package/template/.hermes/skills/to-issues/SKILL.md +0 -84
- package/template/.hermes/skills/to-prd/SKILL.md +0 -75
- package/template/.pi/skills/to-issues/SKILL.md +0 -84
- package/template/.pi/skills/to-prd/SKILL.md +0 -75
- package/template/.trae/skills/to-issues/SKILL.md +0 -84
- package/template/.trae/skills/to-prd/SKILL.md +0 -75
- package/template/docs/templates/vertical-slice-issue-template.md +0 -61
- /package/template/docs/requirements/{issues → tickets}/.gitkeep +0 -0
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# 证据化排障
|
|
2
|
+
|
|
3
|
+
## 缓存未命中
|
|
4
|
+
|
|
5
|
+
1. 检查 starter/后端依赖和 `@EnableYssCloudCache`。
|
|
6
|
+
2. 检查 `active-type` 与实际 Provider/CacheManager Bean。
|
|
7
|
+
3. 确认调用经过 Spring 代理,不是同类自调用。
|
|
8
|
+
4. 检查 SpEL 参数名、null、集合顺序和租户维度。
|
|
9
|
+
5. 比较两次调用生成的 cache name/key,并检查 Redis 实际 key。
|
|
10
|
+
6. 检查 `condition`、`unless`、TTL 和序列化异常。
|
|
11
|
+
|
|
12
|
+
## 更新后仍读旧值
|
|
13
|
+
|
|
14
|
+
1. 列出所有写、删、状态变更入口,确认每条路径都更新或清理相同 cache/key。
|
|
15
|
+
2. 检查事务是否尚未提交;YSS 写/删/清理可能在 `afterCommit` 执行。
|
|
16
|
+
3. 检查是否误用了 Caffeine、fallback 或 JetCache local cache。
|
|
17
|
+
4. 检查 `allEntries`、`beforeInvocation` 和空 key 产生的 `SimpleKey.EMPTY`。
|
|
18
|
+
|
|
19
|
+
## Redis 启动或连接失败
|
|
20
|
+
|
|
21
|
+
1. 判定 Standalone/Sentinel/Cluster,检查拓扑互斥和 Cluster DB 0。
|
|
22
|
+
2. 分别核对 Redis 数据节点与 Sentinel 认证。
|
|
23
|
+
3. 检查 SSL、DNS、端口、connect/read timeout 和 Jedis pool。
|
|
24
|
+
4. 检查用户自定义连接工厂是否使默认配置回退。
|
|
25
|
+
|
|
26
|
+
## Redis 故障后行为异常
|
|
27
|
+
|
|
28
|
+
1. 检查 fallback 是否明确开启、目标 Provider 是否存在且 available。
|
|
29
|
+
2. 区分只读回退与脏写回退。
|
|
30
|
+
3. 查看恢复时 Redis 清理失败日志;失败时框架应保持降级并重试。
|
|
31
|
+
4. 多节点差异优先按 fallback 一致性窗口分析,不要误判为 Redis 广播失效。
|
|
32
|
+
|
|
33
|
+
可先运行 `scripts/inspect-cache-usage.sh <project-root>` 取得静态证据,再进入源码路径。
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# 验证与完成标准
|
|
2
|
+
|
|
3
|
+
## 组件
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
./mvnw -f yss-microservice-components/yss-component-cache-parent/pom.xml verify
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
跨模块测试使用父 reactor 的 `-pl <module> -am`,避免解析本地旧 SNAPSHOT。也可运行:
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
scripts/verify-cache-component.sh --source-root /path/to/yss-cloud-microservice
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## 消费项目
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
./mvnw -pl <starter-module> -am -DskipTests package
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
完整启动依赖数据库、注册中心等外部服务时,构建验证与启动验证分开报告。
|
|
22
|
+
|
|
23
|
+
## 验收矩阵
|
|
24
|
+
|
|
25
|
+
- 首次调用执行业务,第二次相同 key 命中缓存。
|
|
26
|
+
- 不同租户/业务 key 不串值。
|
|
27
|
+
- 更新、删除、状态变更后旧值失效。
|
|
28
|
+
- `condition`、`unless` 和异常返回行为符合预期。
|
|
29
|
+
- 默认 TTL 和枚举覆盖 TTL 在后端物理存在。
|
|
30
|
+
- Redis 停止后行为符合 fallback 配置;恢复后旧 Redis 值不会重新出现。
|
|
31
|
+
- Sentinel/Cluster 创建正确连接工厂,Cluster 使用 DB 0。
|
|
32
|
+
- Docker 可用时真实 Redis 认证、JSON template、JDK cache serialization 和 TTL 测试实际执行。
|
|
33
|
+
- Java 8 组件 class major version 为 52。
|
|
34
|
+
- `git diff --check` 通过,消费 starter 构建通过。
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
set -u
|
|
3
|
+
|
|
4
|
+
skill_dir=$(CDPATH= cd -- "$(dirname -- "$0")/.." && pwd)
|
|
5
|
+
|
|
6
|
+
locate_source() {
|
|
7
|
+
if [ "$#" -gt 0 ] && [ -n "$1" ]; then
|
|
8
|
+
if [ -d "$1/yss-microservice-components/yss-component-cache-parent" ]; then
|
|
9
|
+
echo "$1"
|
|
10
|
+
return 0
|
|
11
|
+
fi
|
|
12
|
+
return 1
|
|
13
|
+
fi
|
|
14
|
+
if [ -n "${YSS_SOURCE_ROOT:-}" ] && [ -d "$YSS_SOURCE_ROOT/yss-microservice-components/yss-component-cache-parent" ]; then
|
|
15
|
+
echo "$YSS_SOURCE_ROOT"
|
|
16
|
+
return 0
|
|
17
|
+
fi
|
|
18
|
+
for candidate in "$PWD" "$PWD/.." "$HOME/Projects/yss-cloud-microservice" "$HOME/Documents/yss-project/yss-cloud-microservice"; do
|
|
19
|
+
if [ -d "$candidate/yss-microservice-components/yss-component-cache-parent" ]; then
|
|
20
|
+
(CDPATH= cd -- "$candidate" && pwd)
|
|
21
|
+
return 0
|
|
22
|
+
fi
|
|
23
|
+
done
|
|
24
|
+
return 1
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
source_root=$(locate_source "${1:-}") || {
|
|
28
|
+
echo "ERROR: cannot locate yss-component-cache-parent; pass source root or set YSS_SOURCE_ROOT" >&2
|
|
29
|
+
exit 2
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
parent="$source_root/yss-microservice-components/yss-component-cache-parent"
|
|
33
|
+
annotation="$parent/yss-component-spring-cache/src/main/java/com/yss/cloud/cache/annotation/ClearCache.java"
|
|
34
|
+
properties="$parent/yss-component-spring-cache/src/main/java/com/yss/cloud/cache/YssCacheProperties.java"
|
|
35
|
+
connection="$parent/yss-component-redis-cache/src/main/java/com/yss/cloud/cache/redis/config/RedisConnFactoryConfig.java"
|
|
36
|
+
index="$skill_dir/references/source-index.md"
|
|
37
|
+
fail=0
|
|
38
|
+
|
|
39
|
+
require_text() {
|
|
40
|
+
file=$1
|
|
41
|
+
pattern=$2
|
|
42
|
+
label=$3
|
|
43
|
+
if ! grep -Eq "$pattern" "$file"; then
|
|
44
|
+
echo "STALE: $label not found in $file"
|
|
45
|
+
fail=1
|
|
46
|
+
fi
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
require_text "$annotation" 'boolean allEntries\(\)' 'ClearCache.allEntries'
|
|
50
|
+
require_text "$annotation" 'boolean beforeInvocation\(\)' 'ClearCache.beforeInvocation'
|
|
51
|
+
require_text "$properties" 'private Duration defaultTtl' 'yss.cache.default-ttl'
|
|
52
|
+
require_text "$properties" 'private boolean fallbackEnabled' 'Redis fallback-enabled'
|
|
53
|
+
require_text "$properties" 'private String fallbackType' 'Redis fallback-type'
|
|
54
|
+
require_text "$properties" 'private boolean clearFallbackOnRecovery' 'Redis clear-fallback-on-recovery'
|
|
55
|
+
require_text "$connection" 'cannot be configured together' 'Sentinel/Cluster mutual exclusion'
|
|
56
|
+
require_text "$connection" 'database must be 0' 'Cluster database 0 guard'
|
|
57
|
+
|
|
58
|
+
for module in yss-component-spring-cache yss-component-redis-cache yss-component-caffeine-cache yss-component-cache-starter yss-component-jetcache; do
|
|
59
|
+
if ! grep -q "$module" "$index"; then
|
|
60
|
+
echo "STALE: source-index is missing module $module"
|
|
61
|
+
fail=1
|
|
62
|
+
fi
|
|
63
|
+
done
|
|
64
|
+
|
|
65
|
+
generated=$(sed -n 's/^Generated: //p' "$index" | head -1)
|
|
66
|
+
if [ -z "$generated" ]; then
|
|
67
|
+
echo "STALE: source-index has no Generated timestamp"
|
|
68
|
+
fail=1
|
|
69
|
+
else
|
|
70
|
+
echo "INFO: source-index generated at $generated"
|
|
71
|
+
fi
|
|
72
|
+
|
|
73
|
+
if [ "$annotation" -nt "$index" ] || [ "$properties" -nt "$index" ] || [ "$connection" -nt "$index" ]; then
|
|
74
|
+
echo "STALE: critical cache source is newer than source-index"
|
|
75
|
+
fail=1
|
|
76
|
+
fi
|
|
77
|
+
|
|
78
|
+
if [ "$fail" -ne 0 ]; then
|
|
79
|
+
echo "RESULT: skill/source contract drift detected; refresh with yss-source-index and review semantic references"
|
|
80
|
+
exit 1
|
|
81
|
+
fi
|
|
82
|
+
|
|
83
|
+
echo "RESULT: yss-cache critical contracts match source at $source_root"
|
|
84
|
+
exit 0
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
set -u
|
|
3
|
+
|
|
4
|
+
usage() {
|
|
5
|
+
echo "Usage: $0 <project-root>" >&2
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
if [ "$#" -ne 1 ]; then
|
|
9
|
+
usage
|
|
10
|
+
exit 2
|
|
11
|
+
fi
|
|
12
|
+
|
|
13
|
+
root=$1
|
|
14
|
+
if [ ! -d "$root" ]; then
|
|
15
|
+
echo "ERROR: project root does not exist: $root" >&2
|
|
16
|
+
exit 2
|
|
17
|
+
fi
|
|
18
|
+
|
|
19
|
+
if command -v rg >/dev/null 2>&1; then
|
|
20
|
+
search() { rg -n --hidden --glob '!target/**' --glob '!.git/**' --glob '*.java' --glob '*.yml' --glob '*.yaml' --glob '*.properties' --glob 'pom.xml' "$1" "$root" 2>/dev/null || true; }
|
|
21
|
+
files() { rg --files "$root" -g '*.yml' -g '*.yaml' -g '*.properties' -g '*.java' -g 'pom.xml'; }
|
|
22
|
+
else
|
|
23
|
+
search() { grep -REn "$1" "$root" --include='*.java' --include='*.yml' --include='*.yaml' --include='*.properties' --include='pom.xml' 2>/dev/null || true; }
|
|
24
|
+
files() { find "$root" -type f \( -name '*.java' -o -name '*.yml' -o -name '*.yaml' -o -name '*.properties' -o -name 'pom.xml' \); }
|
|
25
|
+
fi
|
|
26
|
+
|
|
27
|
+
tmp=${TMPDIR:-/tmp}/yss-cache-inspect.$$
|
|
28
|
+
trap 'rm -f "$tmp"' EXIT HUP INT TERM
|
|
29
|
+
files >"$tmp"
|
|
30
|
+
if [ ! -s "$tmp" ]; then
|
|
31
|
+
echo "ERROR: no Java, Maven, or configuration files found under $root" >&2
|
|
32
|
+
exit 2
|
|
33
|
+
fi
|
|
34
|
+
|
|
35
|
+
fail=0
|
|
36
|
+
echo "YSS cache usage inspection: $root"
|
|
37
|
+
|
|
38
|
+
report() {
|
|
39
|
+
level=$1
|
|
40
|
+
title=$2
|
|
41
|
+
pattern=$3
|
|
42
|
+
result=$(search "$pattern")
|
|
43
|
+
if [ -n "$result" ]; then
|
|
44
|
+
echo
|
|
45
|
+
echo "[$level] $title"
|
|
46
|
+
echo "$result" | sed -n '1,20p'
|
|
47
|
+
fi
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
report INFO "Cache component dependencies" 'yss-component-(cache-starter|spring-cache|redis-cache|caffeine-cache|hazelcast-cache|jetcache)'
|
|
51
|
+
report INFO "Cache enable annotations" '@EnableYssCloud(Cache|RedisCache)'
|
|
52
|
+
report INFO "YSS cache annotations" '@(QueryCache|UpdateCache|ClearCache)'
|
|
53
|
+
report INFO "Configured backend and TTL" 'yss\.cache\.(active-type|default-ttl)|active-type:|default-ttl:'
|
|
54
|
+
report INFO "Redis fallback configuration" 'fallback-(enabled|type)|clear-fallback-on-recovery'
|
|
55
|
+
report INFO "RedisTemplate injection contracts" 'RedisTemplate[[:space:]]*<'
|
|
56
|
+
|
|
57
|
+
sentinel=$(search 'spring\.redis\.sentinel|sentinel:')
|
|
58
|
+
cluster=$(search 'spring\.redis\.cluster|cluster:')
|
|
59
|
+
if [ -n "$sentinel" ] && [ -n "$cluster" ]; then
|
|
60
|
+
echo
|
|
61
|
+
echo "[ERROR] Both Redis Sentinel and Cluster configuration markers were found. Confirm they are not active in the same profile."
|
|
62
|
+
fail=1
|
|
63
|
+
fi
|
|
64
|
+
|
|
65
|
+
if [ -n "$cluster" ]; then
|
|
66
|
+
nonzero=$(search 'spring\.redis\.database[[:space:]]*=[[:space:]]*[1-9][0-9]*|database:[[:space:]]*[1-9][0-9]*')
|
|
67
|
+
if [ -n "$nonzero" ]; then
|
|
68
|
+
echo
|
|
69
|
+
echo "[ERROR] Redis Cluster requires database 0."
|
|
70
|
+
echo "$nonzero" | sed -n '1,20p'
|
|
71
|
+
fail=1
|
|
72
|
+
fi
|
|
73
|
+
fi
|
|
74
|
+
|
|
75
|
+
clear_without_key=$(search '@ClearCache[[:space:]]*(\([^)]*\))?')
|
|
76
|
+
if [ -n "$clear_without_key" ]; then
|
|
77
|
+
echo
|
|
78
|
+
echo "[REVIEW] ClearCache usages found. Verify each use has a stable key or explicit allEntries=true; no-arg methods produce SimpleKey.EMPTY."
|
|
79
|
+
fi
|
|
80
|
+
|
|
81
|
+
query=$(search '@QueryCache')
|
|
82
|
+
update=$(search '@(UpdateCache|ClearCache)')
|
|
83
|
+
if [ -n "$query" ] && [ -z "$update" ]; then
|
|
84
|
+
echo
|
|
85
|
+
echo "[REVIEW] QueryCache is used but no UpdateCache/ClearCache annotation was found. Inspect explicit invalidation paths."
|
|
86
|
+
fi
|
|
87
|
+
|
|
88
|
+
if [ "$fail" -ne 0 ]; then
|
|
89
|
+
echo
|
|
90
|
+
echo "RESULT: blocking cache configuration defects found"
|
|
91
|
+
exit 1
|
|
92
|
+
fi
|
|
93
|
+
|
|
94
|
+
echo
|
|
95
|
+
echo "RESULT: no statically provable blocking cache defect found; REVIEW items still require code inspection"
|
|
96
|
+
exit 0
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
set -u
|
|
3
|
+
|
|
4
|
+
source_root=""
|
|
5
|
+
consumer_root=""
|
|
6
|
+
consumer_module=""
|
|
7
|
+
|
|
8
|
+
usage() {
|
|
9
|
+
echo "Usage: $0 [--source-root PATH] [--consumer-root PATH --consumer-module MODULE]" >&2
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
while [ "$#" -gt 0 ]; do
|
|
13
|
+
case "$1" in
|
|
14
|
+
--source-root) [ "$#" -ge 2 ] || { usage; exit 2; }; source_root=$2; shift 2 ;;
|
|
15
|
+
--consumer-root) [ "$#" -ge 2 ] || { usage; exit 2; }; consumer_root=$2; shift 2 ;;
|
|
16
|
+
--consumer-module) [ "$#" -ge 2 ] || { usage; exit 2; }; consumer_module=$2; shift 2 ;;
|
|
17
|
+
-h|--help) usage; exit 0 ;;
|
|
18
|
+
*) usage; exit 2 ;;
|
|
19
|
+
esac
|
|
20
|
+
done
|
|
21
|
+
|
|
22
|
+
if [ -z "$source_root" ]; then
|
|
23
|
+
source_root=${YSS_SOURCE_ROOT:-}
|
|
24
|
+
fi
|
|
25
|
+
if [ -z "$source_root" ]; then
|
|
26
|
+
for candidate in "$PWD" "$PWD/.." "$HOME/Projects/yss-cloud-microservice" "$HOME/Documents/yss-project/yss-cloud-microservice"; do
|
|
27
|
+
if [ -d "$candidate/yss-microservice-components/yss-component-cache-parent" ]; then
|
|
28
|
+
source_root=$candidate
|
|
29
|
+
break
|
|
30
|
+
fi
|
|
31
|
+
done
|
|
32
|
+
fi
|
|
33
|
+
|
|
34
|
+
parent="${source_root%/}/yss-microservice-components/yss-component-cache-parent"
|
|
35
|
+
if [ -z "$source_root" ] || [ ! -f "$parent/pom.xml" ]; then
|
|
36
|
+
echo "ERROR: cannot locate cache parent; use --source-root or YSS_SOURCE_ROOT" >&2
|
|
37
|
+
exit 2
|
|
38
|
+
fi
|
|
39
|
+
if [ ! -x "$source_root/mvnw" ]; then
|
|
40
|
+
echo "ERROR: Maven wrapper is missing or not executable: $source_root/mvnw" >&2
|
|
41
|
+
exit 2
|
|
42
|
+
fi
|
|
43
|
+
if { [ -n "$consumer_root" ] && [ -z "$consumer_module" ]; } || { [ -z "$consumer_root" ] && [ -n "$consumer_module" ]; }; then
|
|
44
|
+
echo "ERROR: --consumer-root and --consumer-module must be provided together" >&2
|
|
45
|
+
exit 2
|
|
46
|
+
fi
|
|
47
|
+
|
|
48
|
+
echo "== Cache reactor verify =="
|
|
49
|
+
(cd "$source_root" && ./mvnw -f "$parent/pom.xml" verify) || exit 1
|
|
50
|
+
|
|
51
|
+
echo "== Docker integration status =="
|
|
52
|
+
report="$parent/yss-component-redis-cache/target/surefire-reports/TEST-com.yss.cloud.cache.redis.config.RedisStandaloneIntegrationTest.xml"
|
|
53
|
+
if command -v docker >/dev/null 2>&1 && docker info >/dev/null 2>&1; then
|
|
54
|
+
if [ ! -f "$report" ]; then
|
|
55
|
+
echo "ERROR: Docker is available but Redis integration report is missing" >&2
|
|
56
|
+
exit 1
|
|
57
|
+
fi
|
|
58
|
+
if grep -Eq 'skipped="[1-9]' "$report"; then
|
|
59
|
+
echo "ERROR: Docker is available but Redis integration test was skipped" >&2
|
|
60
|
+
exit 1
|
|
61
|
+
fi
|
|
62
|
+
echo "PASS: real Redis integration test executed"
|
|
63
|
+
else
|
|
64
|
+
echo "SKIP: Docker is unavailable; Redis integration test may be skipped by assumption"
|
|
65
|
+
fi
|
|
66
|
+
|
|
67
|
+
echo "== Diff whitespace =="
|
|
68
|
+
if command -v git >/dev/null 2>&1 && git -C "$source_root" rev-parse --is-inside-work-tree >/dev/null 2>&1; then
|
|
69
|
+
git -C "$source_root" diff --check || exit 1
|
|
70
|
+
else
|
|
71
|
+
echo "SKIP: source root is not a Git worktree"
|
|
72
|
+
fi
|
|
73
|
+
|
|
74
|
+
echo "== Java 8 bytecode =="
|
|
75
|
+
classes=$(find "$parent" -path '*/target/classes/*.class' -type f | head -1)
|
|
76
|
+
if [ -z "$classes" ]; then
|
|
77
|
+
echo "ERROR: no compiled cache class found" >&2
|
|
78
|
+
exit 1
|
|
79
|
+
fi
|
|
80
|
+
if ! command -v javap >/dev/null 2>&1; then
|
|
81
|
+
echo "ERROR: javap is required for bytecode verification" >&2
|
|
82
|
+
exit 2
|
|
83
|
+
fi
|
|
84
|
+
majors=$(find "$parent" -path '*/target/classes/*.class' -type f -exec javap -verbose {} \; 2>/dev/null | sed -n 's/.*major version: *//p' | sort -u)
|
|
85
|
+
if [ "$majors" != "52" ]; then
|
|
86
|
+
echo "ERROR: expected only Java 8 major version 52, found: $majors" >&2
|
|
87
|
+
exit 1
|
|
88
|
+
fi
|
|
89
|
+
echo "PASS: all cache classes use major version 52"
|
|
90
|
+
|
|
91
|
+
if [ -n "$consumer_root" ]; then
|
|
92
|
+
echo "== Consumer build =="
|
|
93
|
+
if [ ! -x "$consumer_root/mvnw" ] || [ ! -f "$consumer_root/pom.xml" ]; then
|
|
94
|
+
echo "ERROR: invalid consumer root: $consumer_root" >&2
|
|
95
|
+
exit 2
|
|
96
|
+
fi
|
|
97
|
+
(cd "$consumer_root" && ./mvnw -pl "$consumer_module" -am -DskipTests package) || exit 1
|
|
98
|
+
fi
|
|
99
|
+
|
|
100
|
+
echo "RESULT: cache verification passed"
|
|
101
|
+
exit 0
|
|
@@ -20,16 +20,16 @@ The route most work travels. You have an idea and want it built.
|
|
|
20
20
|
- **`/prototype`** to answer the question with throwaway code,
|
|
21
21
|
- **`/handoff`** back what you learned, and reference it from the original idea thread.
|
|
22
22
|
3. **Branch — is this a multi-session build?**
|
|
23
|
-
- **Yes** → **`/to-
|
|
23
|
+
- **Yes** → **`/to-spec`** (turn the thread into a spec), then **`/to-tickets`** to split it into tracer-bullet tickets, each declaring its **blocking edges**. On a local tracker that's one file per ticket under `.scratch/<feature>/tickets/`, worked blockers-first by hand; on a real tracker the edges become native blocking links, so any ticket whose blockers are done can be grabbed — kick off **`/implement`** per ticket, **clearing context between each one**.
|
|
24
24
|
- **No** → **`/implement`** right here, in the same context window.
|
|
25
25
|
|
|
26
26
|
Either way, **`/implement`** builds each issue by driving **`/tdd`** internally — one red-green slice at a time — then closes out by running **`/code-review`**, a two-axis review (Standards + Spec) of the diff, before committing. Reach for **`/tdd`** on its own when you just want to build a concrete behaviour test-first without a full spec, and **`/code-review`** on its own whenever you want to review a branch or PR against a fixed point.
|
|
27
27
|
|
|
28
28
|
### Context hygiene
|
|
29
29
|
|
|
30
|
-
Keep steps 1–3 in **one unbroken context window** — don't compact or clear until after `/to-
|
|
30
|
+
Keep steps 1–3 in **one unbroken context window** — don't compact or clear until after `/to-tickets` — so the grilling, spec, and tickets all build on the same thinking. Each `/implement` then starts fresh, working from the ticket.
|
|
31
31
|
|
|
32
|
-
The limit on this is the **[smart zone](https://www.aihero.dev/ai-coding-dictionary/smart-zone)**: the window (~120k tokens on state-of-the-art models) within which the model still reasons sharply. If a session approaches it before `/to-
|
|
32
|
+
The limit on this is the **[smart zone](https://www.aihero.dev/ai-coding-dictionary/smart-zone)**: the window (~120k tokens on state-of-the-art models) within which the model still reasons sharply. If a session approaches it before `/to-tickets`, don't push on degraded — `/handoff` and continue in a fresh thread.
|
|
33
33
|
|
|
34
34
|
## On-ramps
|
|
35
35
|
|
|
@@ -37,10 +37,14 @@ A starting situation that generates work, then merges onto the main flow.
|
|
|
37
37
|
|
|
38
38
|
- **Bugs and requests piling up** → **`/triage`**. It moves issues through triage roles and produces agent-ready issues, which **`/implement`** later picks up.
|
|
39
39
|
|
|
40
|
-
Triage is only for issues **you didn't create** — bug reports, incoming feature requests, anything that arrives raw.
|
|
40
|
+
Triage is only for issues **you didn't create** — bug reports, incoming feature requests, anything that arrives raw. Tickets that `/to-tickets` produced are already agent-ready, so **don't triage them**.
|
|
41
41
|
|
|
42
42
|
- **Something's broken** → **`/diagnosing-bugs`**. For the hard ones: the bug that resists a first glance, the intermittent flake, the regression that crept in between two known-good states. It refuses to theorise until it has a **tight feedback loop** — one command that already goes red on *this* bug — then fixes with a regression test. Its post-mortem hands off to **`/improve-codebase-architecture`** when the real finding is that there's no good seam to lock the bug down.
|
|
43
43
|
|
|
44
|
+
- **A huge, foggy effort — a greenfield project or a huge feature build, too big for one session** → **`/wayfinder`**, the most cognitively demanding flow here. When the way from here to the destination isn't visible yet, it charts a **shared map** of **decision tickets** on the issue tracker and resolves them one at a time — producing **decisions, not deliverables** — until the fog is pushed back and the way is clear. Where **`/grill-with-docs`** sharpens an idea you can hold in one session, wayfinder is for the idea you can't — and it's slower and denser, so save it for exactly that, never a well-scoped feature.
|
|
45
|
+
|
|
46
|
+
When the map clears, **it hands off, it doesn't build**: merge onto the main flow at **`/to-spec`**, which collapses the map's linked decisions into a buildable plan, then `/to-tickets` and `/implement` as usual. Looping the map straight into `/implement` skips that collapse and throws the linked detail away — go straight to `/implement` only when the effort turned out genuinely small.
|
|
47
|
+
|
|
44
48
|
## Codebase health
|
|
45
49
|
|
|
46
50
|
Not feature work — upkeep.
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: code-review
|
|
3
|
-
description: Review the changes since a fixed point (commit, branch, tag, or merge-base) along two axes — Standards (does the code follow this repo's documented coding standards?) and Spec (does the code match what the originating issue/
|
|
3
|
+
description: Review the changes since a fixed point (commit, branch, tag, or merge-base) along two axes — Standards (does the code follow this repo's documented coding standards?) and Spec (does the code match what the originating issue/Spec asked for?). Runs both reviews in parallel sub-agents and reports them side by side. Use when the user wants to review a branch, a PR, work-in-progress changes, or asks to "review since X".
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
Two-axis review of the diff between `HEAD` and a fixed point the user supplies:
|
|
7
7
|
|
|
8
8
|
- **Standards** — does the code conform to this repo's documented coding standards?
|
|
9
|
-
- **Spec** — does the code faithfully implement the originating
|
|
9
|
+
- **Spec** — does the code faithfully implement the originating Ticket / Spec?
|
|
10
10
|
|
|
11
11
|
Both axes run as **parallel sub-agents** so they don't pollute each other's context, then this skill aggregates their findings.
|
|
12
12
|
|
|
@@ -26,9 +26,9 @@ Before going further, confirm the fixed point resolves (`git rev-parse <fixed-po
|
|
|
26
26
|
|
|
27
27
|
Look for the originating spec, in this order:
|
|
28
28
|
|
|
29
|
-
1.
|
|
29
|
+
1. Ticket references in the commit messages (`#123`, `Closes #45`, GitLab `!67`, etc.) — fetch via the workflow in `docs/agents/issue-tracker.md`.
|
|
30
30
|
2. A path the user passed as an argument.
|
|
31
|
-
3. A
|
|
31
|
+
3. A Spec file under `docs/`, `specs/`, or `.scratch/` matching the branch name or feature.
|
|
32
32
|
4. If nothing is found, ask the user where the spec is. If they say there isn't one, the **Spec** sub-agent will skip and report "no spec available".
|
|
33
33
|
|
|
34
34
|
### 3. Identify the standards sources
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: competitive-intelligence
|
|
3
|
-
description: Use when researching competitors, market positioning, pricing, feature gaps, customer sentiment, or category trends before Discovery,
|
|
3
|
+
description: Use when researching competitors, market positioning, pricing, feature gaps, customer sentiment, or category trends before Discovery, Spec, product strategy, or roadmap decisions.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Competitive Intelligence
|
|
7
7
|
|
|
8
8
|
Source requested for this project: `anthropics/knowledge-work-plugins`, `sales/skills/competitive-intelligence`.
|
|
9
9
|
|
|
10
|
-
Use this skill when competitive or market facts are needed to shape product Discovery,
|
|
10
|
+
Use this skill when competitive or market facts are needed to shape product Discovery, Spec scope, positioning, differentiation, pricing assumptions, or roadmap tradeoffs.
|
|
11
11
|
|
|
12
12
|
## Core Rules
|
|
13
13
|
|
|
@@ -43,11 +43,11 @@ Use this skill when competitive or market facts are needed to shape product Disc
|
|
|
43
43
|
- Differentiators and defensibility.
|
|
44
44
|
- Gaps and underserved jobs-to-be-done.
|
|
45
45
|
- Risks if we copy the competitor too closely.
|
|
46
|
-
- Product opportunities for
|
|
46
|
+
- Product opportunities for Spec or roadmap.
|
|
47
47
|
5. Hand off to lifecycle assets:
|
|
48
48
|
- Update Discovery findings in `docs/discovery/`.
|
|
49
49
|
- Create or update a competitor matrix in `docs/discovery/reports/`.
|
|
50
|
-
- Feed stable user, pain, MVP, non-goal, and success criteria into `grill-with-docs` and `to-
|
|
50
|
+
- Feed stable user, pain, MVP, non-goal, and success criteria into `grill-with-docs` and `to-spec`.
|
|
51
51
|
- Record uncertain claims as assumptions, not requirements.
|
|
52
52
|
|
|
53
53
|
## Output Shape
|
|
@@ -76,7 +76,7 @@ For a quick brief:
|
|
|
76
76
|
| 维度 | 竞品 A | 竞品 B | 我们的机会 |
|
|
77
77
|
|---|---|---|---|
|
|
78
78
|
|
|
79
|
-
###
|
|
79
|
+
### Spec 输入
|
|
80
80
|
- 用户 / 痛点:
|
|
81
81
|
- MVP 建议:
|
|
82
82
|
- 非目标范围:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: excalidraw-diagram-generator
|
|
3
|
-
description: 'Generate Excalidraw diagrams from natural language descriptions. Use when asked to "create a diagram", "make a flowchart", "visualize a process", "draw a system architecture", "create a mind map", or "generate an Excalidraw file". Supports flowcharts, relationship diagrams, mind maps,
|
|
3
|
+
description: 'Generate Excalidraw diagrams from natural language descriptions. Use when asked to "create a diagram", "make a flowchart", "visualize a process", "draw a system architecture", "draw business/functional/system/data architecture", "create a mind map", or "generate an Excalidraw file". Supports flowcharts, relationship diagrams, mind maps, business flows, system architecture, ER, class, sequence, lineage, and data flow diagrams. Outputs .excalidraw JSON files that can be opened directly in Excalidraw.'
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Excalidraw Diagram Generator
|
|
@@ -31,6 +31,27 @@ Use this skill when users request:
|
|
|
31
31
|
- 🔄 **Sequence Diagrams**: Object interactions over time, message flows
|
|
32
32
|
- 🗃️ **ER Diagrams**: Database entity relationships, data models
|
|
33
33
|
|
|
34
|
+
## YSS Lifecycle Integration
|
|
35
|
+
|
|
36
|
+
In YSS projects, this skill is a visualization and review aid. It can clarify lifecycle artifacts, but it must not replace Discovery, Spec, OpenAPI, ADR, Spec Delta design, or tests.
|
|
37
|
+
|
|
38
|
+
Use it after the relevant source artifact exists:
|
|
39
|
+
|
|
40
|
+
| Lifecycle artifact | Typical timing | Useful diagrams | Recommended output |
|
|
41
|
+
|--------------------|----------------|-----------------|--------------------|
|
|
42
|
+
| Business architecture | Opportunity exploration / Discovery | user journey, value stream, swimlane, capability map, ecosystem map | `docs/discovery/diagrams/` or `docs/architecture/diagrams/` |
|
|
43
|
+
| Functional architecture | Spec baseline / product design / Spec calibration | feature map, module map, dependency graph, page map | `docs/design/diagrams/` or `docs/architecture/diagrams/` |
|
|
44
|
+
| System architecture | Engineering baseline / Architecture / Spec Delta design | C4/container view, deployment, sequence, DDD boundary, DFD | `docs/architecture/diagrams/` |
|
|
45
|
+
| Data architecture | Detailed design before persistence / repository work | ER, class, meta-model, lineage graph, query/data-flow diagram | `docs/architecture/diagrams/` |
|
|
46
|
+
|
|
47
|
+
Guardrails:
|
|
48
|
+
|
|
49
|
+
- Do not invent product requirements or architecture decisions only from the diagram prompt.
|
|
50
|
+
- Reference the source artifact in the Markdown document that links the `.excalidraw` file.
|
|
51
|
+
- If a diagram exposes a missing field, unclear state, dependency, or boundary problem, write that finding back to the source Spec, OpenAPI Draft, architecture document, ADR, Spec Delta design, or issue.
|
|
52
|
+
- Do not require diagrams for small copy, style, configuration, or single-point bug fixes.
|
|
53
|
+
- For data modeling, metadata management, model versioning, or lineage-analysis products, prefer ER, class/meta-model, DFD, and lineage diagrams before persistence implementation.
|
|
54
|
+
|
|
34
55
|
## Prerequisites
|
|
35
56
|
|
|
36
57
|
- Clear description of what should be visualized
|
|
@@ -178,7 +199,7 @@ Structure the complete Excalidraw file:
|
|
|
178
199
|
### Layout Tips
|
|
179
200
|
|
|
180
201
|
1. **Start positions**: Center important elements, use consistent spacing
|
|
181
|
-
2. **Spacing**:
|
|
202
|
+
2. **Spacing**:
|
|
182
203
|
- Horizontal gap: 200-300px between elements
|
|
183
204
|
- Vertical gap: 100-150px between rows
|
|
184
205
|
3. **Colors**: Use consistent color scheme
|
|
@@ -315,18 +336,18 @@ For specialized diagrams (e.g., AWS/GCP/Azure architecture diagrams), you can us
|
|
|
315
336
|
|
|
316
337
|
```
|
|
317
338
|
To use [AWS/GCP/Azure/etc.] architecture icons, please follow these steps:
|
|
318
|
-
|
|
339
|
+
|
|
319
340
|
1. Visit https://libraries.excalidraw.com/
|
|
320
341
|
2. Search for "[AWS Architecture Icons/etc.]" and download the .excalidrawlib file
|
|
321
342
|
3. Create directory: skills/excalidraw-diagram-generator/libraries/[icon-set-name]/
|
|
322
343
|
4. Place the downloaded file in that directory
|
|
323
344
|
5. Run the splitter script:
|
|
324
345
|
python skills/excalidraw-diagram-generator/scripts/split-excalidraw-library.py skills/excalidraw-diagram-generator/libraries/[icon-set-name]/
|
|
325
|
-
|
|
346
|
+
|
|
326
347
|
This will split the library into individual icon files for efficient use.
|
|
327
348
|
After setup is complete, I can create your diagram using the actual AWS/cloud icons.
|
|
328
|
-
|
|
329
|
-
Alternatively, I can create the diagram now using simple shapes (rectangles, ellipses)
|
|
349
|
+
|
|
350
|
+
Alternatively, I can create the diagram now using simple shapes (rectangles, ellipses)
|
|
330
351
|
which you can later replace with icons manually in Excalidraw.
|
|
331
352
|
```
|
|
332
353
|
|
|
@@ -389,15 +410,15 @@ The repository includes Python scripts that handle icon integration automaticall
|
|
|
389
410
|
<diagram-path> <icon-name> <x> <y> [--label "Text"] [--library-path PATH]
|
|
390
411
|
```
|
|
391
412
|
- Edit via `.excalidraw.edit` is enabled by default to avoid overwrite issues; pass `--no-use-edit-suffix` to disable.
|
|
392
|
-
|
|
413
|
+
|
|
393
414
|
**Examples**:
|
|
394
415
|
```bash
|
|
395
416
|
# Add EC2 icon at position (400, 300) with label
|
|
396
417
|
python scripts/add-icon-to-diagram.py diagram.excalidraw EC2 400 300 --label "Web Server"
|
|
397
|
-
|
|
418
|
+
|
|
398
419
|
# Add VPC icon at position (200, 150)
|
|
399
420
|
python scripts/add-icon-to-diagram.py diagram.excalidraw VPC 200 150
|
|
400
|
-
|
|
421
|
+
|
|
401
422
|
# Add icon from different library
|
|
402
423
|
python scripts/add-icon-to-diagram.py diagram.excalidraw Compute-Engine 500 200 \
|
|
403
424
|
--library-path libraries/gcp-icons --label "API Server"
|
|
@@ -409,15 +430,15 @@ The repository includes Python scripts that handle icon integration automaticall
|
|
|
409
430
|
<diagram-path> <from-x> <from-y> <to-x> <to-y> [--label "Text"] [--style solid|dashed|dotted] [--color HEX]
|
|
410
431
|
```
|
|
411
432
|
- Edit via `.excalidraw.edit` is enabled by default to avoid overwrite issues; pass `--no-use-edit-suffix` to disable.
|
|
412
|
-
|
|
433
|
+
|
|
413
434
|
**Examples**:
|
|
414
435
|
```bash
|
|
415
436
|
# Simple arrow from (300, 250) to (500, 300)
|
|
416
437
|
python scripts/add-arrow.py diagram.excalidraw 300 250 500 300
|
|
417
|
-
|
|
438
|
+
|
|
418
439
|
# Arrow with label
|
|
419
440
|
python scripts/add-arrow.py diagram.excalidraw 300 250 500 300 --label "HTTPS"
|
|
420
|
-
|
|
441
|
+
|
|
421
442
|
# Dashed arrow with custom color
|
|
422
443
|
python scripts/add-arrow.py diagram.excalidraw 400 350 600 400 --style dashed --color "#7950f2"
|
|
423
444
|
```
|
|
@@ -426,14 +447,14 @@ The repository includes Python scripts that handle icon integration automaticall
|
|
|
426
447
|
```bash
|
|
427
448
|
# Step 1: Create base diagram with title and structure
|
|
428
449
|
# (Create .excalidraw file with initial elements)
|
|
429
|
-
|
|
450
|
+
|
|
430
451
|
# Step 2: Add icons with labels
|
|
431
452
|
python scripts/add-icon-to-diagram.py my-diagram.excalidraw "Internet-gateway" 200 150 --label "Internet Gateway"
|
|
432
453
|
python scripts/add-icon-to-diagram.py my-diagram.excalidraw VPC 250 250
|
|
433
454
|
python scripts/add-icon-to-diagram.py my-diagram.excalidraw ELB 350 300 --label "Load Balancer"
|
|
434
455
|
python scripts/add-icon-to-diagram.py my-diagram.excalidraw EC2 450 350 --label "EC2 Instance"
|
|
435
456
|
python scripts/add-icon-to-diagram.py my-diagram.excalidraw RDS 550 400 --label "Database"
|
|
436
|
-
|
|
457
|
+
|
|
437
458
|
# Step 3: Add connecting arrows
|
|
438
459
|
python scripts/add-arrow.py my-diagram.excalidraw 250 200 300 250 # Internet → VPC
|
|
439
460
|
python scripts/add-arrow.py my-diagram.excalidraw 300 300 400 300 # VPC → ELB
|
|
@@ -453,7 +474,7 @@ The repository includes Python scripts that handle icon integration automaticall
|
|
|
453
474
|
|
|
454
475
|
Only use this if Python scripts are unavailable:
|
|
455
476
|
|
|
456
|
-
1. **Check for libraries**:
|
|
477
|
+
1. **Check for libraries**:
|
|
457
478
|
```
|
|
458
479
|
List directory: skills/excalidraw-diagram-generator/libraries/
|
|
459
480
|
Look for subdirectories containing reference.md files
|
|
@@ -549,7 +570,7 @@ python scripts/add-arrow.py my-aws-diagram.excalidraw 565 330 650 350 --label "S
|
|
|
549
570
|
- `icons/Internet-gateway.json` (298 lines)
|
|
550
571
|
- `icons/VPC.json` (550 lines)
|
|
551
572
|
- `icons/ELB.json` (363 lines)
|
|
552
|
-
- `icons/EC2.json` (231 lines)
|
|
573
|
+
- `icons/EC2.json` (231 lines)
|
|
553
574
|
- `icons/RDS.json` (similar size)
|
|
554
575
|
**Total: ~2000+ lines of JSON to process**
|
|
555
576
|
4. Extract elements from each JSON
|