create-yss-spec 1.1.4 → 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 +3 -3
- 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 +4 -4
- package/template/.agents/skills/grilling/agents/openai.yaml +3 -0
- package/template/.agents/skills/handoff/SKILL.md +1 -1
- 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/agents/openai.yaml +5 -0
- package/template/.claude/skills/grill-with-docs/agents/openai.yaml +5 -0
- package/template/.claude/skills/grilling/SKILL.md +4 -4
- package/template/.claude/skills/grilling/agents/openai.yaml +3 -0
- package/template/.claude/skills/handoff/SKILL.md +1 -1
- 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 +1 -1
- 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-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 +1 -1
- 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-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 +2 -2
- package/template/.codex/skills/yss-openapi-governance/SKILL.md +2 -2
- package/template/.codex/skills/yss-product-lifecycle/SKILL.md +46 -39
- 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 +1 -1
- 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/agents/openai.yaml +5 -0
- package/template/.hermes/skills/grill-with-docs/agents/openai.yaml +5 -0
- package/template/.hermes/skills/grilling/SKILL.md +4 -4
- package/template/.hermes/skills/grilling/agents/openai.yaml +3 -0
- package/template/.hermes/skills/handoff/SKILL.md +1 -1
- 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/agents/openai.yaml +5 -0
- package/template/.pi/skills/grill-with-docs/agents/openai.yaml +5 -0
- package/template/.pi/skills/grilling/SKILL.md +4 -4
- package/template/.pi/skills/grilling/agents/openai.yaml +3 -0
- package/template/.pi/skills/handoff/SKILL.md +1 -1
- 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/agents/openai.yaml +5 -0
- package/template/.trae/skills/grill-with-docs/agents/openai.yaml +5 -0
- package/template/.trae/skills/grilling/SKILL.md +4 -4
- package/template/.trae/skills/grilling/agents/openai.yaml +3 -0
- package/template/.trae/skills/handoff/SKILL.md +1 -1
- 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 -258
- 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 +35 -35
- 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 +31 -19
- 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 +60 -42
- 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 -141
- package/template/skills-lock.json +1068 -108
- 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-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
|
@@ -37,60 +37,60 @@ def calculate_bounding_box(elements: List[Dict[str, Any]]) -> Tuple[float, float
|
|
|
37
37
|
"""Calculate the bounding box (min_x, min_y, max_x, max_y) of icon elements."""
|
|
38
38
|
if not elements:
|
|
39
39
|
return (0, 0, 0, 0)
|
|
40
|
-
|
|
40
|
+
|
|
41
41
|
min_x = float('inf')
|
|
42
42
|
min_y = float('inf')
|
|
43
43
|
max_x = float('-inf')
|
|
44
44
|
max_y = float('-inf')
|
|
45
|
-
|
|
45
|
+
|
|
46
46
|
for element in elements:
|
|
47
47
|
if 'x' in element and 'y' in element:
|
|
48
48
|
x = element['x']
|
|
49
49
|
y = element['y']
|
|
50
50
|
width = element.get('width', 0)
|
|
51
51
|
height = element.get('height', 0)
|
|
52
|
-
|
|
52
|
+
|
|
53
53
|
min_x = min(min_x, x)
|
|
54
54
|
min_y = min(min_y, y)
|
|
55
55
|
max_x = max(max_x, x + width)
|
|
56
56
|
max_y = max(max_y, y + height)
|
|
57
|
-
|
|
57
|
+
|
|
58
58
|
return (min_x, min_y, max_x, max_y)
|
|
59
59
|
|
|
60
60
|
|
|
61
61
|
def transform_icon_elements(
|
|
62
|
-
elements: List[Dict[str, Any]],
|
|
63
|
-
target_x: float,
|
|
62
|
+
elements: List[Dict[str, Any]],
|
|
63
|
+
target_x: float,
|
|
64
64
|
target_y: float
|
|
65
65
|
) -> List[Dict[str, Any]]:
|
|
66
66
|
"""
|
|
67
67
|
Transform icon elements to target coordinates with unique IDs.
|
|
68
|
-
|
|
68
|
+
|
|
69
69
|
Args:
|
|
70
70
|
elements: Icon elements from JSON file
|
|
71
71
|
target_x: Target X coordinate (top-left position)
|
|
72
72
|
target_y: Target Y coordinate (top-left position)
|
|
73
|
-
|
|
73
|
+
|
|
74
74
|
Returns:
|
|
75
75
|
Transformed elements with new coordinates and IDs
|
|
76
76
|
"""
|
|
77
77
|
if not elements:
|
|
78
78
|
return []
|
|
79
|
-
|
|
79
|
+
|
|
80
80
|
# Calculate bounding box
|
|
81
81
|
min_x, min_y, max_x, max_y = calculate_bounding_box(elements)
|
|
82
|
-
|
|
82
|
+
|
|
83
83
|
# Calculate offset
|
|
84
84
|
offset_x = target_x - min_x
|
|
85
85
|
offset_y = target_y - min_y
|
|
86
|
-
|
|
86
|
+
|
|
87
87
|
# Create ID mapping: old_id -> new_id
|
|
88
88
|
id_mapping = {}
|
|
89
89
|
for element in elements:
|
|
90
90
|
if 'id' in element:
|
|
91
91
|
old_id = element['id']
|
|
92
92
|
id_mapping[old_id] = generate_unique_id()
|
|
93
|
-
|
|
93
|
+
|
|
94
94
|
# Create group ID mapping
|
|
95
95
|
group_id_mapping = {}
|
|
96
96
|
for element in elements:
|
|
@@ -98,47 +98,47 @@ def transform_icon_elements(
|
|
|
98
98
|
for old_group_id in element['groupIds']:
|
|
99
99
|
if old_group_id not in group_id_mapping:
|
|
100
100
|
group_id_mapping[old_group_id] = generate_unique_id()
|
|
101
|
-
|
|
101
|
+
|
|
102
102
|
# Transform elements
|
|
103
103
|
transformed = []
|
|
104
104
|
for element in elements:
|
|
105
105
|
new_element = element.copy()
|
|
106
|
-
|
|
106
|
+
|
|
107
107
|
# Update coordinates
|
|
108
108
|
if 'x' in new_element:
|
|
109
109
|
new_element['x'] = new_element['x'] + offset_x
|
|
110
110
|
if 'y' in new_element:
|
|
111
111
|
new_element['y'] = new_element['y'] + offset_y
|
|
112
|
-
|
|
112
|
+
|
|
113
113
|
# Update ID
|
|
114
114
|
if 'id' in new_element:
|
|
115
115
|
new_element['id'] = id_mapping[new_element['id']]
|
|
116
|
-
|
|
116
|
+
|
|
117
117
|
# Update group IDs
|
|
118
118
|
if 'groupIds' in new_element:
|
|
119
119
|
new_element['groupIds'] = [
|
|
120
120
|
group_id_mapping[gid] for gid in new_element['groupIds']
|
|
121
121
|
]
|
|
122
|
-
|
|
122
|
+
|
|
123
123
|
# Update binding references if they exist
|
|
124
124
|
if 'startBinding' in new_element and new_element['startBinding']:
|
|
125
125
|
if 'elementId' in new_element['startBinding']:
|
|
126
126
|
old_id = new_element['startBinding']['elementId']
|
|
127
127
|
if old_id in id_mapping:
|
|
128
128
|
new_element['startBinding']['elementId'] = id_mapping[old_id]
|
|
129
|
-
|
|
129
|
+
|
|
130
130
|
if 'endBinding' in new_element and new_element['endBinding']:
|
|
131
131
|
if 'elementId' in new_element['endBinding']:
|
|
132
132
|
old_id = new_element['endBinding']['elementId']
|
|
133
133
|
if old_id in id_mapping:
|
|
134
134
|
new_element['endBinding']['elementId'] = id_mapping[old_id]
|
|
135
|
-
|
|
135
|
+
|
|
136
136
|
# Update containerId if it exists
|
|
137
137
|
if 'containerId' in new_element and new_element['containerId']:
|
|
138
138
|
old_id = new_element['containerId']
|
|
139
139
|
if old_id in id_mapping:
|
|
140
140
|
new_element['containerId'] = id_mapping[old_id]
|
|
141
|
-
|
|
141
|
+
|
|
142
142
|
# Update boundElements if they exist
|
|
143
143
|
if 'boundElements' in new_element and new_element['boundElements']:
|
|
144
144
|
new_bound_elements = []
|
|
@@ -149,31 +149,31 @@ def transform_icon_elements(
|
|
|
149
149
|
bound_elem['id'] = id_mapping[old_id]
|
|
150
150
|
new_bound_elements.append(bound_elem)
|
|
151
151
|
new_element['boundElements'] = new_bound_elements
|
|
152
|
-
|
|
152
|
+
|
|
153
153
|
transformed.append(new_element)
|
|
154
|
-
|
|
154
|
+
|
|
155
155
|
return transformed
|
|
156
156
|
|
|
157
157
|
|
|
158
158
|
def load_icon(icon_name: str, library_path: Path) -> List[Dict[str, Any]]:
|
|
159
159
|
"""
|
|
160
160
|
Load icon elements from library.
|
|
161
|
-
|
|
161
|
+
|
|
162
162
|
Args:
|
|
163
163
|
icon_name: Name of the icon (e.g., "EC2", "VPC")
|
|
164
164
|
library_path: Path to the icon library directory
|
|
165
|
-
|
|
165
|
+
|
|
166
166
|
Returns:
|
|
167
167
|
List of icon elements
|
|
168
168
|
"""
|
|
169
169
|
icon_file = library_path / "icons" / f"{icon_name}.json"
|
|
170
|
-
|
|
170
|
+
|
|
171
171
|
if not icon_file.exists():
|
|
172
172
|
raise FileNotFoundError(f"Icon file not found: {icon_file}")
|
|
173
|
-
|
|
173
|
+
|
|
174
174
|
with open(icon_file, 'r', encoding='utf-8') as f:
|
|
175
175
|
icon_data = json.load(f)
|
|
176
|
-
|
|
176
|
+
|
|
177
177
|
return icon_data.get('elements', [])
|
|
178
178
|
|
|
179
179
|
|
|
@@ -216,12 +216,12 @@ def finalize_edit_path(work_path: Path, final_path: Path | None) -> None:
|
|
|
216
216
|
def create_text_label(text: str, x: float, y: float) -> Dict[str, Any]:
|
|
217
217
|
"""
|
|
218
218
|
Create a text label element.
|
|
219
|
-
|
|
219
|
+
|
|
220
220
|
Args:
|
|
221
221
|
text: Label text
|
|
222
222
|
x: X coordinate
|
|
223
223
|
y: Y coordinate
|
|
224
|
-
|
|
224
|
+
|
|
225
225
|
Returns:
|
|
226
226
|
Text element dictionary
|
|
227
227
|
"""
|
|
@@ -274,7 +274,7 @@ def add_icon_to_diagram(
|
|
|
274
274
|
) -> None:
|
|
275
275
|
"""
|
|
276
276
|
Add an icon to an Excalidraw diagram.
|
|
277
|
-
|
|
277
|
+
|
|
278
278
|
Args:
|
|
279
279
|
diagram_path: Path to the Excalidraw diagram file
|
|
280
280
|
icon_name: Name of the icon to add
|
|
@@ -287,43 +287,43 @@ def add_icon_to_diagram(
|
|
|
287
287
|
print(f"Loading icon: {icon_name}")
|
|
288
288
|
icon_elements = load_icon(icon_name, library_path)
|
|
289
289
|
print(f" Loaded {len(icon_elements)} elements")
|
|
290
|
-
|
|
290
|
+
|
|
291
291
|
# Transform icon elements
|
|
292
292
|
print(f"Transforming to position ({x}, {y})")
|
|
293
293
|
transformed_elements = transform_icon_elements(icon_elements, x, y)
|
|
294
|
-
|
|
294
|
+
|
|
295
295
|
# Calculate icon bounding box for label positioning
|
|
296
296
|
if label and transformed_elements:
|
|
297
297
|
min_x, min_y, max_x, max_y = calculate_bounding_box(transformed_elements)
|
|
298
298
|
icon_width = max_x - min_x
|
|
299
299
|
icon_height = max_y - min_y
|
|
300
|
-
|
|
300
|
+
|
|
301
301
|
# Position label below icon, centered
|
|
302
302
|
label_x = min_x + (icon_width / 2) - (len(label) * 5)
|
|
303
303
|
label_y = max_y + 10
|
|
304
|
-
|
|
304
|
+
|
|
305
305
|
label_element = create_text_label(label, label_x, label_y)
|
|
306
306
|
transformed_elements.append(label_element)
|
|
307
307
|
print(f" Added label: '{label}'")
|
|
308
|
-
|
|
308
|
+
|
|
309
309
|
# Load diagram
|
|
310
310
|
print(f"Loading diagram: {diagram_path}")
|
|
311
311
|
with open(diagram_path, 'r', encoding='utf-8') as f:
|
|
312
312
|
diagram = json.load(f)
|
|
313
|
-
|
|
313
|
+
|
|
314
314
|
# Add transformed elements
|
|
315
315
|
if 'elements' not in diagram:
|
|
316
316
|
diagram['elements'] = []
|
|
317
|
-
|
|
317
|
+
|
|
318
318
|
original_count = len(diagram['elements'])
|
|
319
319
|
diagram['elements'].extend(transformed_elements)
|
|
320
320
|
print(f" Added {len(transformed_elements)} elements (total: {original_count} -> {len(diagram['elements'])})")
|
|
321
|
-
|
|
321
|
+
|
|
322
322
|
# Save diagram
|
|
323
323
|
print(f"Saving diagram")
|
|
324
324
|
with open(diagram_path, 'w', encoding='utf-8') as f:
|
|
325
325
|
json.dump(diagram, f, indent=2, ensure_ascii=False)
|
|
326
|
-
|
|
326
|
+
|
|
327
327
|
print(f"✓ Successfully added '{icon_name}' icon to diagram")
|
|
328
328
|
|
|
329
329
|
|
|
@@ -342,22 +342,22 @@ def main():
|
|
|
342
342
|
print(" python add-icon-to-diagram.py diagram.excalidraw EC2 500 300")
|
|
343
343
|
print(" python add-icon-to-diagram.py diagram.excalidraw EC2 500 300 --label 'Web Server'")
|
|
344
344
|
sys.exit(1)
|
|
345
|
-
|
|
345
|
+
|
|
346
346
|
diagram_path = Path(sys.argv[1])
|
|
347
347
|
icon_name = sys.argv[2]
|
|
348
348
|
x = float(sys.argv[3])
|
|
349
349
|
y = float(sys.argv[4])
|
|
350
|
-
|
|
350
|
+
|
|
351
351
|
# Default library path
|
|
352
352
|
script_dir = Path(__file__).parent
|
|
353
353
|
default_library_path = script_dir.parent / "libraries" / "aws-architecture-icons"
|
|
354
|
-
|
|
354
|
+
|
|
355
355
|
# Parse optional arguments
|
|
356
356
|
library_path = default_library_path
|
|
357
357
|
label = None
|
|
358
358
|
# Default: use edit suffix to avoid editor overwrite issues
|
|
359
359
|
use_edit_suffix = True
|
|
360
|
-
|
|
360
|
+
|
|
361
361
|
i = 5
|
|
362
362
|
while i < len(sys.argv):
|
|
363
363
|
if sys.argv[i] == '--library-path':
|
|
@@ -383,16 +383,16 @@ def main():
|
|
|
383
383
|
else:
|
|
384
384
|
print(f"Error: Unknown option: {sys.argv[i]}")
|
|
385
385
|
sys.exit(1)
|
|
386
|
-
|
|
386
|
+
|
|
387
387
|
# Validate inputs
|
|
388
388
|
if not diagram_path.exists():
|
|
389
389
|
print(f"Error: Diagram file not found: {diagram_path}")
|
|
390
390
|
sys.exit(1)
|
|
391
|
-
|
|
391
|
+
|
|
392
392
|
if not library_path.exists():
|
|
393
393
|
print(f"Error: Library path not found: {library_path}")
|
|
394
394
|
sys.exit(1)
|
|
395
|
-
|
|
395
|
+
|
|
396
396
|
try:
|
|
397
397
|
work_path, final_path = prepare_edit_path(diagram_path, use_edit_suffix)
|
|
398
398
|
add_icon_to_diagram(work_path, icon_name, x, y, library_path, label)
|
|
@@ -404,4 +404,3 @@ def main():
|
|
|
404
404
|
|
|
405
405
|
if __name__ == '__main__':
|
|
406
406
|
main()
|
|
407
|
-
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: grilling
|
|
3
|
-
description: Grill the user relentlessly about a plan or
|
|
3
|
+
description: Grill the user relentlessly about a plan, decision, or idea. Use when the user wants to stress-test their thinking, or uses any 'grill' trigger phrases.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
Interview me relentlessly about every aspect of this
|
|
6
|
+
Interview me relentlessly about every aspect of this until we reach a shared understanding. Walk down each branch of the decision tree, resolving dependencies between decisions one-by-one. For each question, provide your recommended answer.
|
|
7
7
|
|
|
8
8
|
Ask the questions one at a time, waiting for feedback on each question before continuing. Asking multiple questions at once is bewildering.
|
|
9
9
|
|
|
10
|
-
If a *fact* can be found by exploring the
|
|
10
|
+
If a *fact* can be found by exploring the environment (filesystem, tools, etc.), look it up rather than asking me. The *decisions*, though, are mine — put each one to me and wait for my answer.
|
|
11
11
|
|
|
12
|
-
Do not
|
|
12
|
+
Do not act on it until I confirm we have reached a shared understanding.
|
|
@@ -9,7 +9,7 @@ Write a handoff document summarising the current conversation so a fresh agent c
|
|
|
9
9
|
|
|
10
10
|
Include a "suggested skills" section in the document, which suggests skills that the agent should invoke.
|
|
11
11
|
|
|
12
|
-
Do not duplicate content already captured in other artifacts (
|
|
12
|
+
Do not duplicate content already captured in other artifacts (specs, plans, ADRs, issues, commits, diffs). Reference them by path or URL instead.
|
|
13
13
|
|
|
14
14
|
Redact any sensitive information, such as API keys, passwords, or personally identifiable information.
|
|
15
15
|
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: implement
|
|
3
|
-
description: "Implement a piece of work based on a
|
|
3
|
+
description: "Implement a piece of work based on a spec or set of tickets."
|
|
4
4
|
disable-model-invocation: true
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
Implement the work described by the user in the
|
|
7
|
+
Implement the work described by the user in the spec or tickets.
|
|
8
8
|
|
|
9
9
|
Use /tdd where possible, at pre-agreed seams.
|
|
10
10
|
|
|
@@ -17,6 +17,11 @@ This command is _informed_ by the project's domain model and built on a shared d
|
|
|
17
17
|
|
|
18
18
|
### 1. Explore
|
|
19
19
|
|
|
20
|
+
**Scope before you scan — YAGNI.** Deepening a module pays off by making future changes to it easier, so put extra weight on the parts of the codebase that have recently changed. Decide *where* to look before you look:
|
|
21
|
+
|
|
22
|
+
- If the user named a direction — a module, a subsystem, a pain point — take it, and skip the inference below.
|
|
23
|
+
- Otherwise, walk back a good stretch of the commit history (`git log --oneline`) to find the codebase's hot spots — the files and areas that keep coming up — and let those paths pull your attention first. If the changes are scattered with no clear hot spot, widen the net.
|
|
24
|
+
|
|
20
25
|
Read the project's domain glossary (`CONTEXT.md`) and any ADRs in the area you're touching first.
|
|
21
26
|
|
|
22
27
|
Then use the Agent tool with `subagent_type=Explore` to walk the codebase. Don't follow rigid heuristics — explore organically and note where you experience friction:
|
|
@@ -56,7 +61,7 @@ Do NOT propose interfaces yet. After the file is written, ask the user: "Which o
|
|
|
56
61
|
|
|
57
62
|
### 3. Grilling loop
|
|
58
63
|
|
|
59
|
-
Once the user picks a candidate, run the `/grilling` skill to walk the
|
|
64
|
+
Once the user picks a candidate, run the `/grilling` skill to walk the decision tree with them — constraints, dependencies, the shape of the deepened module, what sits behind the seam, what tests survive.
|
|
60
65
|
|
|
61
66
|
Side effects happen inline as decisions crystallize — run the `/domain-modeling` skill to keep the domain model current as you go:
|
|
62
67
|
|
|
@@ -36,7 +36,7 @@ The right shape depends on the question:
|
|
|
36
36
|
|
|
37
37
|
Pick whichever shape best fits the question being asked, *not* whichever is easiest to wire to a TUI. Keep it pure: no I/O, no terminal code, no `console.log` for control flow. The TUI imports it and calls into it; nothing flows the other direction.
|
|
38
38
|
|
|
39
|
-
This is what makes the prototype useful past its own lifetime
|
|
39
|
+
This is what makes the prototype useful past its own lifetime: when the question's been answered, the validated reducer / machine / function set can be lifted into the real module on its own.
|
|
40
40
|
|
|
41
41
|
### 4. Build the smallest TUI that exposes the state
|
|
42
42
|
|
|
@@ -66,9 +66,9 @@ If the host project has no task runner, just put the command at the top of the p
|
|
|
66
66
|
|
|
67
67
|
Give the user the run command. They'll drive it themselves; the interesting moments are when they say "wait, that shouldn't be possible" or "huh, I assumed X would be different" — those are the bugs in the _idea_, which is the whole point. If they want new actions added, add them. Prototypes evolve.
|
|
68
68
|
|
|
69
|
-
### 7. Capture the answer
|
|
69
|
+
### 7. Capture the answer and the prototype
|
|
70
70
|
|
|
71
|
-
|
|
71
|
+
Once the prototype has answered its question, capture the answer, then capture the prototype the way the [SKILL](SKILL.md) describes. The logic-specific mapping: the validated reducer / machine / function set lifts into the real module (the decision, absorbed); the TUI shell rides along to the throwaway branch that keeps the prototype as a primary source.
|
|
72
72
|
|
|
73
73
|
## Anti-patterns
|
|
74
74
|
|
|
@@ -21,10 +21,6 @@ The two branches produce very different artifacts — getting this wrong wastes
|
|
|
21
21
|
1. **Throwaway from day one, and clearly marked as such.** Locate the prototype code close to where it will actually be used (next to the module or page it's prototyping for) so context is obvious — but name it so a casual reader can see it's a prototype, not production. For throwaway UI routes, obey whatever routing convention the project already uses; don't invent a new top-level structure.
|
|
22
22
|
2. **One command to run.** Whatever the project's existing task runner supports — `pnpm <name>`, `python <path>`, `bun <path>`, etc. The user must be able to start it without thinking.
|
|
23
23
|
3. **No persistence by default.** State lives in memory. Persistence is the thing the prototype is _checking_, not something it should depend on. If the question explicitly involves a database, hit a scratch DB or a local file with a clear "PROTOTYPE — wipe me" name.
|
|
24
|
-
4. **Skip the polish.** No tests, no error handling beyond what makes the prototype _runnable_, no abstractions. The point is to learn something fast
|
|
24
|
+
4. **Skip the polish.** No tests, no error handling beyond what makes the prototype _runnable_, no abstractions. The point is to learn something fast.
|
|
25
25
|
5. **Surface the state.** After every action (logic) or on every variant switch (UI), print or render the full relevant state so the user can see what changed.
|
|
26
|
-
6. **
|
|
27
|
-
|
|
28
|
-
## When done
|
|
29
|
-
|
|
30
|
-
The _answer_ is the only thing worth keeping from a prototype. Capture it somewhere durable (commit message, ADR, issue, or a `NOTES.md` next to the prototype) along with the question it was answering. If the user is around, that capture is a quick conversation; if not, leave the placeholder so they (or you, on the next pass) can fill in the verdict before deleting the prototype.
|
|
26
|
+
6. **Capture it when done.** Fold any validated decision into the real code, then capture the prototype itself as a **primary source**: commit it to a throwaway branch, out of main, and leave a context pointer to that branch on the implementation issue. Capture the answer too — the verdict and the question it settled — in the issue or a commit. The main branch keeps only the validated decision.
|
|
@@ -97,12 +97,12 @@ Surface the URL (and the `?variant=` keys). The user will flip through whenever
|
|
|
97
97
|
|
|
98
98
|
### 6. Capture the answer and clean up
|
|
99
99
|
|
|
100
|
-
Once a variant has won,
|
|
100
|
+
Once a variant has won, capture the answer — which variant and why — then capture the prototype the way the [SKILL](SKILL.md) describes. Fold the winner into the real code and move the rest onto the throwaway branch, not into main:
|
|
101
101
|
|
|
102
|
-
- **Sub-shape A** —
|
|
103
|
-
- **Sub-shape B** — promote the winning variant to a real route
|
|
102
|
+
- **Sub-shape A** — fold the winner into the existing page; drop the losing variants and the switcher from main.
|
|
103
|
+
- **Sub-shape B** — promote the winning variant to a real route; drop the throwaway route and the switcher from main.
|
|
104
104
|
|
|
105
|
-
|
|
105
|
+
The full set of variants is the primary source, so it lands on the throwaway branch, not the bin — variant components and the switcher left in the main branch rot fast and confuse the next reader.
|
|
106
106
|
|
|
107
107
|
## Anti-patterns
|
|
108
108
|
|
|
@@ -8,7 +8,7 @@ disable-model-invocation: true
|
|
|
8
8
|
|
|
9
9
|
Scaffold the per-repo configuration that the engineering skills assume:
|
|
10
10
|
|
|
11
|
-
- **
|
|
11
|
+
- **Ticket tracker** — where Tickets live (GitHub by default; local markdown is also supported out of the box)
|
|
12
12
|
- **Triage labels** — the strings used for the five canonical triage roles
|
|
13
13
|
- **Domain docs** — where `CONTEXT.md` and ADRs live, and the consumer rules for reading them
|
|
14
14
|
|
|
@@ -26,16 +26,18 @@ Look at the current repo to understand its starting state. Read whatever exists;
|
|
|
26
26
|
- `docs/adr/` and any `src/*/docs/adr/` directories
|
|
27
27
|
- `docs/agents/` — does this skill's prior output already exist?
|
|
28
28
|
- `.scratch/` — sign that a local-markdown issue tracker convention is already in use
|
|
29
|
+
- Is the `triage` skill installed? (a `triage` skill folder alongside this one, or `triage` in your available skills.) This decides whether Section B runs at all.
|
|
30
|
+
- Monorepo signals — a `pnpm-workspace.yaml`, a `workspaces` field in `package.json`, or a populated `packages/*` with its own `src/`. Present only in a genuinely large multi-package repo; their absence means single-context, which is almost every repo.
|
|
29
31
|
|
|
30
32
|
### 2. Present findings and ask
|
|
31
33
|
|
|
32
|
-
Summarise what's present and what's missing. Then
|
|
34
|
+
Summarise what's present and what's missing. Then take the sections in order — one section, one answer, then the next.
|
|
33
35
|
|
|
34
|
-
|
|
36
|
+
Lead each section with the recommended answer so the user can accept it in a word. Give a one-line explainer only when the choice genuinely branches; skip the section entirely when exploration already settled it (Section B when `triage` isn't installed, Section C when there's no monorepo).
|
|
35
37
|
|
|
36
|
-
**Section A —
|
|
38
|
+
**Section A — Ticket tracker.**
|
|
37
39
|
|
|
38
|
-
> Explainer: The "issue tracker" is where issues live for this repo. Skills like `to-
|
|
40
|
+
> Explainer: The "issue tracker" is where issues live for this repo. Skills like `to-tickets`, `triage`, `to-spec`, and `qa` read from and write to it — they need to know whether to call `gh issue create`, write a markdown file under `.scratch/`, or follow some other workflow you describe. Pick the place you actually track work for this repo.
|
|
39
41
|
|
|
40
42
|
Default posture: these skills were designed for GitHub. If a `git remote` points at GitHub, propose that. If a `git remote` points at GitLab (`gitlab.com` or a self-hosted host), propose GitLab. Otherwise (or if the user prefers), offer:
|
|
41
43
|
|
|
@@ -44,41 +46,26 @@ Default posture: these skills were designed for GitHub. If a `git remote` points
|
|
|
44
46
|
- **Local markdown** — issues live as files under `.scratch/<feature>/` in this repo (good for solo projects or repos without a remote)
|
|
45
47
|
- **Other** (Jira, Linear, etc.) — ask the user to describe the workflow in one paragraph; the skill will record it as freeform prose
|
|
46
48
|
|
|
47
|
-
|
|
49
|
+
Record the choice in `docs/agents/issue-tracker.md`. The GitHub and GitLab templates carry a "PRs as a request surface" flag, defaulted **off** — leave it off and don't raise it; a user who wants external PRs in the triage queue can flip the flag in the file later.
|
|
48
50
|
|
|
49
|
-
|
|
51
|
+
**Section B — Triage label vocabulary.** Skip this section entirely if the `triage` skill isn't installed (exploration told you) — an uninstalled skill needs no labels.
|
|
50
52
|
|
|
51
|
-
|
|
53
|
+
If it is installed, ask exactly one question:
|
|
52
54
|
|
|
53
|
-
|
|
55
|
+
> Do you want to keep the default triage labels? (recommended: **yes**)
|
|
54
56
|
|
|
55
|
-
|
|
57
|
+
The defaults are the five canonical roles, each label string equal to its name: `needs-triage`, `needs-info`, `ready-for-agent`, `ready-for-human`, `wontfix`. On **yes**, write them as-is. Only if the user says no — usually because their tracker already uses other names (e.g. `bug:triage` for `needs-triage`) — collect the overrides so `triage` applies existing labels instead of creating duplicates.
|
|
56
58
|
|
|
57
|
-
|
|
59
|
+
**Section C — Domain docs.** Default to **single-context** — one `CONTEXT.md` + `docs/adr/` at the repo root. This fits almost every repo; write it without asking.
|
|
58
60
|
|
|
59
|
-
- `
|
|
60
|
-
- `needs-info` — waiting on reporter
|
|
61
|
-
- `ready-for-agent` — fully specified, AFK-ready (an agent can pick it up with no human context)
|
|
62
|
-
- `ready-for-human` — needs human implementation
|
|
63
|
-
- `wontfix` — will not be actioned
|
|
64
|
-
|
|
65
|
-
Default: each role's string equals its name. Ask the user if they want to override any. If their issue tracker has no existing labels, the defaults are fine.
|
|
66
|
-
|
|
67
|
-
**Section C — Domain docs.**
|
|
68
|
-
|
|
69
|
-
> Explainer: Some skills (`improve-codebase-architecture`, `diagnosing-bugs`, `tdd`) read a `CONTEXT.md` file to learn the project's domain language, and `docs/adr/` for past architectural decisions. They need to know whether the repo has one global context or multiple (e.g. a monorepo with separate frontend/backend contexts) so they look in the right place.
|
|
70
|
-
|
|
71
|
-
Confirm the layout:
|
|
72
|
-
|
|
73
|
-
- **Single-context** — one `CONTEXT.md` + `docs/adr/` at the repo root. Most repos are this.
|
|
74
|
-
- **Multi-context** — `CONTEXT-MAP.md` at the root pointing to per-context `CONTEXT.md` files (typically a monorepo).
|
|
61
|
+
Offer **multi-context** — a root `CONTEXT-MAP.md` pointing to per-context `CONTEXT.md` files — only when exploration found monorepo signals. Then confirm which layout they want.
|
|
75
62
|
|
|
76
63
|
### 3. Confirm and edit
|
|
77
64
|
|
|
78
65
|
Show the user a draft of:
|
|
79
66
|
|
|
80
67
|
- The `## Agent skills` block to add to whichever of `CLAUDE.md` / `AGENTS.md` is being edited (see step 4 for selection rules)
|
|
81
|
-
- The contents of `docs/agents/issue-tracker.md`, `docs/agents/
|
|
68
|
+
- The contents of `docs/agents/issue-tracker.md`, `docs/agents/domain.md`, and `docs/agents/triage-labels.md` (the last only when `triage` is installed)
|
|
82
69
|
|
|
83
70
|
Let them edit before writing.
|
|
84
71
|
|
|
@@ -99,9 +86,9 @@ The block:
|
|
|
99
86
|
```markdown
|
|
100
87
|
## Agent skills
|
|
101
88
|
|
|
102
|
-
###
|
|
89
|
+
### Ticket tracker
|
|
103
90
|
|
|
104
|
-
[one-line summary of where issues are tracked
|
|
91
|
+
[one-line summary of where issues are tracked]. See `docs/agents/issue-tracker.md`.
|
|
105
92
|
|
|
106
93
|
### Triage labels
|
|
107
94
|
|
|
@@ -112,12 +99,14 @@ The block:
|
|
|
112
99
|
[one-line summary of layout — "single-context" or "multi-context"]. See `docs/agents/domain.md`.
|
|
113
100
|
```
|
|
114
101
|
|
|
115
|
-
|
|
102
|
+
Include the `### Triage labels` sub-block, and write `docs/agents/triage-labels.md`, only when `triage` is installed and Section B ran. When it isn't, both are omitted.
|
|
103
|
+
|
|
104
|
+
Then write the docs files using the seed templates in this skill folder as a starting point:
|
|
116
105
|
|
|
117
106
|
- [issue-tracker-github.md](./issue-tracker-github.md) — GitHub issue tracker
|
|
118
107
|
- [issue-tracker-gitlab.md](./issue-tracker-gitlab.md) — GitLab issue tracker
|
|
119
108
|
- [issue-tracker-local.md](./issue-tracker-local.md) — local-markdown issue tracker
|
|
120
|
-
- [triage-labels.md](./triage-labels.md) — label mapping
|
|
109
|
+
- [triage-labels.md](./triage-labels.md) — label mapping (only if `triage` is installed)
|
|
121
110
|
- [domain.md](./domain.md) — domain doc consumer rules + layout
|
|
122
111
|
|
|
123
112
|
For "other" issue trackers, write `docs/agents/issue-tracker.md` from scratch using the user's description.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Ticket tracker: GitLab
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Tickets and Specs for this repo live as GitLab Issues. Use the [`glab`](https://gitlab.com/gitlab-org/cli) CLI for all operations.
|
|
4
4
|
|
|
5
5
|
## Conventions
|
|
6
6
|
|