timsquad 3.6.0 → 3.7.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.ko.md +103 -111
- package/README.md +100 -108
- package/dist/commands/init.js +4 -8
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/{upgrade.d.ts → update.d.ts} +3 -3
- package/dist/commands/update.d.ts.map +1 -0
- package/dist/commands/{upgrade.js → update.js} +12 -17
- package/dist/commands/update.js.map +1 -0
- package/dist/daemon/event-queue.d.ts +3 -11
- package/dist/daemon/event-queue.d.ts.map +1 -1
- package/dist/daemon/event-queue.js +62 -203
- package/dist/daemon/event-queue.js.map +1 -1
- package/dist/daemon/index.d.ts +1 -1
- package/dist/daemon/index.d.ts.map +1 -1
- package/dist/daemon/index.js +15 -14
- package/dist/daemon/index.js.map +1 -1
- package/dist/index.js +3 -43
- package/dist/index.js.map +1 -1
- package/dist/lib/agent-generator.d.ts.map +1 -1
- package/dist/lib/agent-generator.js +10 -10
- package/dist/lib/agent-generator.js.map +1 -1
- package/dist/lib/compile-rules.d.ts.map +1 -1
- package/dist/lib/compile-rules.js +37 -4
- package/dist/lib/compile-rules.js.map +1 -1
- package/dist/lib/compiler.d.ts +1 -0
- package/dist/lib/compiler.d.ts.map +1 -1
- package/dist/lib/compiler.js +67 -11
- package/dist/lib/compiler.js.map +1 -1
- package/dist/{commands/log.d.ts → lib/log-utils.d.ts} +7 -15
- package/dist/lib/log-utils.d.ts.map +1 -0
- package/dist/lib/log-utils.js +347 -0
- package/dist/lib/log-utils.js.map +1 -0
- package/dist/lib/skill-generator.d.ts.map +1 -1
- package/dist/lib/skill-generator.js +4 -44
- package/dist/lib/skill-generator.js.map +1 -1
- package/dist/lib/ssot-map.d.ts.map +1 -1
- package/dist/lib/ssot-map.js +3 -0
- package/dist/lib/ssot-map.js.map +1 -1
- package/dist/lib/template.d.ts +10 -3
- package/dist/lib/template.d.ts.map +1 -1
- package/dist/lib/template.js +136 -22
- package/dist/lib/template.js.map +1 -1
- package/dist/lib/upgrade-backup.js +1 -1
- package/dist/lib/upgrade-backup.js.map +1 -1
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/config.js +34 -34
- package/dist/types/config.js.map +1 -1
- package/dist/types/feedback.d.ts +1 -54
- package/dist/types/feedback.d.ts.map +1 -1
- package/dist/types/feedback.js +1 -22
- package/dist/types/feedback.js.map +1 -1
- package/dist/types/project.d.ts +5 -0
- package/dist/types/project.d.ts.map +1 -1
- package/dist/types/project.js +15 -0
- package/dist/types/project.js.map +1 -1
- package/dist/types/ssot-map.d.ts +2 -0
- package/dist/types/ssot-map.d.ts.map +1 -1
- package/package.json +1 -1
- package/templates/base/agents/base/tsq-architect.md +1 -1
- package/templates/base/agents/base/tsq-dba.md +3 -1
- package/templates/base/agents/base/tsq-designer.md +3 -1
- package/templates/base/agents/base/tsq-developer.md +3 -1
- package/templates/base/agents/base/tsq-librarian.md +1 -1
- package/templates/base/agents/base/tsq-qa.md +3 -1
- package/templates/base/agents/base/tsq-security.md +3 -1
- package/templates/base/agents/overlays/platform/claude-code.md +2 -2
- package/templates/base/config.template.yaml +17 -28
- package/templates/base/knowledge/templates/task-result.md +5 -10
- package/templates/base/skills/_template/SKILL.md +1 -3
- package/templates/base/skills/{architecture → tsq-architecture}/SKILL.md +2 -2
- package/templates/base/skills/tsq-audit/SKILL.md +74 -0
- package/templates/base/skills/{methodology/bdd → tsq-bdd}/SKILL.md +14 -9
- package/templates/base/skills/{coding → tsq-coding}/SKILL.md +2 -4
- package/templates/base/skills/tsq-controller/SKILL.md +81 -0
- package/templates/base/skills/{mobile/dart → tsq-dart}/SKILL.md +5 -3
- package/templates/base/skills/{database → tsq-database}/SKILL.md +5 -2
- package/templates/base/skills/{methodology/ddd → tsq-ddd}/SKILL.md +15 -10
- package/templates/base/skills/{methodology/debugging → tsq-debugging}/SKILL.md +2 -2
- package/templates/base/skills/tsq-decompose/SKILL.md +117 -0
- package/templates/base/skills/tsq-delete/SKILL.md +72 -0
- package/templates/base/skills/{mobile/flutter → tsq-flutter}/SKILL.md +6 -3
- package/templates/base/skills/tsq-grill/SKILL.md +86 -0
- package/templates/base/skills/{backend/node → tsq-hono}/SKILL.md +6 -4
- package/templates/base/skills/tsq-librarian/SKILL.md +78 -0
- package/templates/base/skills/tsq-log/SKILL.md +30 -0
- package/templates/base/skills/{frontend/nextjs → tsq-nextjs}/SKILL.md +14 -9
- package/templates/base/skills/{planning → tsq-planning}/SKILL.md +2 -2
- package/templates/base/skills/{database/prisma → tsq-prisma}/SKILL.md +15 -9
- package/templates/base/skills/{product-audit → tsq-product-audit}/SKILL.md +2 -4
- package/templates/base/skills/{prompt-engineering → tsq-prompt}/SKILL.md +6 -4
- package/templates/base/skills/tsq-protocol/SKILL.md +85 -33
- package/templates/base/skills/{frontend/react → tsq-react}/SKILL.md +6 -3
- package/templates/base/skills/tsq-retro/SKILL.md +86 -0
- package/templates/base/skills/tsq-retro/references/feedback-guide.md +58 -0
- package/templates/base/skills/tsq-retro/references/improve-protocol.md +87 -0
- package/templates/base/skills/{security → tsq-security}/SKILL.md +2 -4
- package/templates/base/skills/{spec → tsq-spec}/SKILL.md +4 -6
- package/templates/base/skills/{stability-verification → tsq-stability}/SKILL.md +3 -3
- package/templates/base/skills/tsq-start/SKILL.md +90 -0
- package/templates/base/skills/tsq-start/references/onboarding-questions.md +177 -0
- package/templates/base/skills/tsq-status/SKILL.md +32 -0
- package/templates/base/skills/{methodology/tdd → tsq-tdd}/SKILL.md +6 -3
- package/templates/base/skills/{testing → tsq-testing}/SKILL.md +5 -7
- package/templates/base/skills/{typescript → tsq-typescript}/SKILL.md +2 -2
- package/templates/base/skills/{ui-design → tsq-ui}/SKILL.md +2 -2
- package/templates/base/skills/tsq-update/SKILL.md +48 -0
- package/templates/base/timsquad/constraints/competency-framework.xml +2 -2
- package/templates/base/timsquad/constraints/ssot-schema.xml +2 -2
- package/templates/base/timsquad/process/phase-checklist.yaml +1 -1
- package/templates/base/timsquad/process/state-machine.xml +2 -2
- package/templates/base/timsquad/process/validation-rules.xml +8 -8
- package/templates/base/timsquad/process/workflow-base.xml +8 -8
- package/templates/base/timsquad/retrospective/cycle-report.template.md +2 -2
- package/templates/base/timsquad/retrospective/patterns/failure-patterns.md +1 -1
- package/templates/base/timsquad/retrospective/patterns/success-patterns.md +2 -2
- package/templates/base/timsquad/retrospective/retrospective-state.xml +2 -2
- package/templates/base/timsquad/ssot/audit-trail-spec.template.md +155 -0
- package/templates/base/timsquad/ssot/compliance-matrix.template.md +105 -0
- package/templates/base/timsquad/ssot/component-map.template.md +181 -0
- package/templates/base/timsquad/ssot/data-design.template.md +4 -4
- package/templates/base/timsquad/ssot/deployment-spec.template.md +29 -22
- package/templates/base/timsquad/ssot/env-config.template.md +4 -2
- package/templates/base/timsquad/ssot/error-codes.template.md +3 -3
- package/templates/base/timsquad/ssot/functional-spec.template.md +40 -3
- package/templates/base/timsquad/ssot/glossary.template.md +2 -2
- package/templates/base/timsquad/ssot/infra-topology.template.md +191 -0
- package/templates/base/timsquad/ssot/integration-spec.template.md +2 -2
- package/templates/base/timsquad/ssot/monitoring-spec.template.md +185 -0
- package/templates/base/timsquad/ssot/navigation-map.template.md +154 -0
- package/templates/base/timsquad/ssot/performance-budget.template.md +132 -0
- package/templates/base/timsquad/ssot/planning.template.md +3 -3
- package/templates/base/timsquad/ssot/prd/_template.md +73 -0
- package/templates/base/timsquad/ssot/prd.template.md +10 -21
- package/templates/base/timsquad/ssot/requirements.template.md +3 -3
- package/templates/base/timsquad/ssot/sdk-spec.template.md +223 -0
- package/templates/base/timsquad/ssot/service-spec.template.md +3 -3
- package/templates/base/timsquad/ssot/state-machine.template.md +127 -0
- package/templates/base/timsquad/ssot/ui-ux-spec.template.md +43 -3
- package/templates/base/timsquad/ssot-map.template.yaml +28 -0
- package/templates/base/timsquad/state/workspace.xml +11 -11
- package/templates/platforms/claude-code/rules/adr-rules.md +1 -1
- package/templates/platforms/claude-code/rules/build-gate.md +1 -1
- package/templates/platforms/claude-code/rules/completion-verification.md +0 -2
- package/templates/platforms/claude-code/rules/context-monitor.md +1 -1
- package/templates/platforms/claude-code/rules/feedback-routing.md +2 -2
- package/templates/platforms/claude-code/rules/phase-management.md +2 -2
- package/templates/platforms/claude-code/rules/plan-review.md +2 -2
- package/templates/platforms/claude-code/rules/quality-guards.md +0 -2
- package/templates/platforms/claude-code/rules/sequence-management.md +15 -15
- package/templates/platforms/claude-code/rules/session-notes.md +1 -1
- package/templates/platforms/claude-code/rules/workspace-sync.md +1 -1
- package/templates/platforms/claude-code/scripts/build-gate.sh +6 -1
- package/templates/platforms/claude-code/scripts/change-scope-guard.sh +1 -4
- package/templates/platforms/claude-code/scripts/check-capability.sh +68 -0
- package/templates/platforms/claude-code/scripts/completion-guard.sh +62 -4
- package/templates/platforms/claude-code/scripts/context-restore.sh +33 -6
- package/templates/platforms/claude-code/scripts/phase-guard.sh +2 -5
- package/templates/platforms/claude-code/scripts/pre-compact.sh +3 -3
- package/templates/platforms/claude-code/scripts/safe-guard.sh +2 -5
- package/templates/platforms/claude-code/scripts/subagent-start.sh +11 -0
- package/templates/platforms/claude-code/scripts/subagent-stop.sh +11 -0
- package/templates/platforms/claude-code/settings.json +20 -74
- package/templates/project-types/api-backend/config.yaml +9 -5
- package/templates/project-types/api-backend/process/workflow.xml +2 -2
- package/templates/project-types/fintech/config.yaml +13 -19
- package/templates/project-types/fintech/ssot/audit-trail-spec.template.md +207 -0
- package/templates/project-types/fintech/ssot/compliance-matrix.template.md +187 -0
- package/templates/project-types/infra/config.yaml +7 -4
- package/templates/project-types/infra/process/workflow.xml +3 -3
- package/templates/project-types/mobile-app/config.yaml +8 -14
- package/templates/project-types/mobile-app/process/workflow.xml +4 -4
- package/templates/project-types/platform/config.yaml +8 -5
- package/templates/project-types/platform/process/workflow.xml +3 -3
- package/templates/project-types/web-app/config.yaml +9 -15
- package/templates/project-types/web-app/process/workflow.xml +6 -6
- package/templates/project-types/web-service/config.yaml +10 -19
- package/templates/project-types/web-service/process/workflow.xml +6 -6
- package/dist/commands/audit.d.ts +0 -22
- package/dist/commands/audit.d.ts.map +0 -1
- package/dist/commands/audit.js +0 -233
- package/dist/commands/audit.js.map +0 -1
- package/dist/commands/compile.d.ts +0 -3
- package/dist/commands/compile.d.ts.map +0 -1
- package/dist/commands/compile.js +0 -251
- package/dist/commands/compile.js.map +0 -1
- package/dist/commands/feedback.d.ts +0 -12
- package/dist/commands/feedback.d.ts.map +0 -1
- package/dist/commands/feedback.js +0 -382
- package/dist/commands/feedback.js.map +0 -1
- package/dist/commands/full.d.ts +0 -3
- package/dist/commands/full.d.ts.map +0 -1
- package/dist/commands/full.js +0 -88
- package/dist/commands/full.js.map +0 -1
- package/dist/commands/git/commit.d.ts +0 -3
- package/dist/commands/git/commit.d.ts.map +0 -1
- package/dist/commands/git/commit.js +0 -85
- package/dist/commands/git/commit.js.map +0 -1
- package/dist/commands/git/index.d.ts +0 -5
- package/dist/commands/git/index.d.ts.map +0 -1
- package/dist/commands/git/index.js +0 -5
- package/dist/commands/git/index.js.map +0 -1
- package/dist/commands/git/pr.d.ts +0 -3
- package/dist/commands/git/pr.d.ts.map +0 -1
- package/dist/commands/git/pr.js +0 -139
- package/dist/commands/git/pr.js.map +0 -1
- package/dist/commands/git/release.d.ts +0 -3
- package/dist/commands/git/release.d.ts.map +0 -1
- package/dist/commands/git/release.js +0 -153
- package/dist/commands/git/release.js.map +0 -1
- package/dist/commands/git/sync.d.ts +0 -3
- package/dist/commands/git/sync.d.ts.map +0 -1
- package/dist/commands/git/sync.js +0 -132
- package/dist/commands/git/sync.js.map +0 -1
- package/dist/commands/improve.d.ts +0 -3
- package/dist/commands/improve.d.ts.map +0 -1
- package/dist/commands/improve.js +0 -286
- package/dist/commands/improve.js.map +0 -1
- package/dist/commands/knowledge.d.ts +0 -3
- package/dist/commands/knowledge.d.ts.map +0 -1
- package/dist/commands/knowledge.js +0 -316
- package/dist/commands/knowledge.js.map +0 -1
- package/dist/commands/log.d.ts.map +0 -1
- package/dist/commands/log.js +0 -1468
- package/dist/commands/log.js.map +0 -1
- package/dist/commands/meta-index.d.ts +0 -3
- package/dist/commands/meta-index.d.ts.map +0 -1
- package/dist/commands/meta-index.js +0 -431
- package/dist/commands/meta-index.js.map +0 -1
- package/dist/commands/metrics.d.ts +0 -3
- package/dist/commands/metrics.d.ts.map +0 -1
- package/dist/commands/metrics.js +0 -843
- package/dist/commands/metrics.js.map +0 -1
- package/dist/commands/quick.d.ts +0 -3
- package/dist/commands/quick.d.ts.map +0 -1
- package/dist/commands/quick.js +0 -136
- package/dist/commands/quick.js.map +0 -1
- package/dist/commands/retro.d.ts +0 -3
- package/dist/commands/retro.d.ts.map +0 -1
- package/dist/commands/retro.js +0 -885
- package/dist/commands/retro.js.map +0 -1
- package/dist/commands/session.d.ts +0 -3
- package/dist/commands/session.d.ts.map +0 -1
- package/dist/commands/session.js +0 -346
- package/dist/commands/session.js.map +0 -1
- package/dist/commands/skills.d.ts +0 -12
- package/dist/commands/skills.d.ts.map +0 -1
- package/dist/commands/skills.js +0 -228
- package/dist/commands/skills.js.map +0 -1
- package/dist/commands/status.d.ts +0 -3
- package/dist/commands/status.d.ts.map +0 -1
- package/dist/commands/status.js +0 -127
- package/dist/commands/status.js.map +0 -1
- package/dist/commands/upgrade.d.ts.map +0 -1
- package/dist/commands/upgrade.js.map +0 -1
- package/dist/commands/watch.d.ts +0 -3
- package/dist/commands/watch.d.ts.map +0 -1
- package/dist/commands/watch.js +0 -213
- package/dist/commands/watch.js.map +0 -1
- package/dist/commands/workflow.d.ts +0 -5
- package/dist/commands/workflow.d.ts.map +0 -1
- package/dist/commands/workflow.js +0 -781
- package/dist/commands/workflow.js.map +0 -1
- package/templates/base/skills/audit/SKILL.md +0 -66
- package/templates/base/skills/controller/SKILL.md +0 -77
- package/templates/base/skills/controller/delegation/developer.md +0 -25
- package/templates/base/skills/controller/delegation/librarian.md +0 -33
- package/templates/base/skills/controller/delegation/reviewer.md +0 -19
- package/templates/base/skills/controller/triggers/phase-complete.md +0 -25
- package/templates/base/skills/controller/triggers/sequence-complete.md +0 -15
- package/templates/base/skills/controller/triggers/ssot-changed.md +0 -14
- package/templates/base/skills/controller/triggers/task-complete.md +0 -14
- package/templates/base/skills/librarian/SKILL.md +0 -53
- package/templates/base/skills/main-session-constraints/SKILL.md +0 -62
- package/templates/base/skills/retrospective/SKILL.md +0 -77
- package/templates/base/skills/review/SKILL.md +0 -72
- package/templates/base/skills/tsq-cli/SKILL.md +0 -73
- package/templates/base/skills/tsq-cli/references/cli-reference.md +0 -92
- package/templates/base/timsquad/feedback/feedback-router.sh +0 -341
- package/templates/base/timsquad/feedback/routing-rules.yaml +0 -352
- package/templates/platforms/claude-code/CLAUDE.md.template +0 -89
- package/templates/platforms/claude-code/rules/skill-suggest.md +0 -27
- package/templates/platforms/claude-code/scripts/skill-inject.sh +0 -216
- package/templates/platforms/claude-code/scripts/skill-rules.json +0 -95
- package/templates/platforms/claude-code/scripts/skill-suggest.sh +0 -105
- package/templates/platforms/claude-code/scripts/subagent-inject.sh +0 -53
- /package/templates/base/skills/{architecture → tsq-architecture}/references/adr-template.md +0 -0
- /package/templates/base/skills/{architecture → tsq-architecture}/references/api-design.md +0 -0
- /package/templates/base/skills/{methodology/bdd → tsq-bdd}/rules/gherkin-patterns.md +0 -0
- /package/templates/base/skills/{coding → tsq-coding}/rules/async-patterns.md +0 -0
- /package/templates/base/skills/{coding → tsq-coding}/rules/code-organization.md +0 -0
- /package/templates/base/skills/{coding → tsq-coding}/rules/error-handling.md +0 -0
- /package/templates/base/skills/{coding → tsq-coding}/rules/patterns.md +0 -0
- /package/templates/base/skills/{coding → tsq-coding}/rules/type-safety.md +0 -0
- /package/templates/base/skills/{controller → tsq-controller}/memory/.gitkeep +0 -0
- /package/templates/base/skills/{controller → tsq-controller}/references/README.md +0 -0
- /package/templates/base/skills/{controller → tsq-controller}/rules/README.md +0 -0
- /package/templates/base/skills/{mobile/dart → tsq-dart}/rules/async-patterns.md +0 -0
- /package/templates/base/skills/{mobile/dart → tsq-dart}/rules/code-style.md +0 -0
- /package/templates/base/skills/{mobile/dart → tsq-dart}/rules/null-safety.md +0 -0
- /package/templates/base/skills/{mobile/dart → tsq-dart}/rules/type-system.md +0 -0
- /package/templates/base/skills/{database → tsq-database}/rules/query-optimization.md +0 -0
- /package/templates/base/skills/{database → tsq-database}/rules/supabase-patterns.md +0 -0
- /package/templates/base/skills/{methodology/ddd → tsq-ddd}/rules/strategic-patterns.md +0 -0
- /package/templates/base/skills/{methodology/debugging → tsq-debugging}/references/root-cause-tracing.md +0 -0
- /package/templates/base/skills/{mobile/flutter → tsq-flutter}/ci-cd/SKILL.md +0 -0
- /package/templates/base/skills/{mobile/flutter → tsq-flutter}/ci-cd/references/ci-cd-pipeline.md +0 -0
- /package/templates/base/skills/{mobile/flutter → tsq-flutter}/ci-cd/rules/code-signing.md +0 -0
- /package/templates/base/skills/{mobile/flutter → tsq-flutter}/ci-cd/rules/codemagic-setup.md +0 -0
- /package/templates/base/skills/{mobile/flutter → tsq-flutter}/ci-cd/rules/fastlane-setup.md +0 -0
- /package/templates/base/skills/{mobile/flutter → tsq-flutter}/ci-cd/rules/github-actions.md +0 -0
- /package/templates/base/skills/{mobile/flutter → tsq-flutter}/ci-cd/rules/store-deployment.md +0 -0
- /package/templates/base/skills/{mobile/flutter → tsq-flutter}/ci-cd/rules/versioning.md +0 -0
- /package/templates/base/skills/{mobile/flutter → tsq-flutter}/i18n/SKILL.md +0 -0
- /package/templates/base/skills/{mobile/flutter → tsq-flutter}/i18n/references/i18n-architecture.md +0 -0
- /package/templates/base/skills/{mobile/flutter → tsq-flutter}/i18n/rules/arb-files.md +0 -0
- /package/templates/base/skills/{mobile/flutter → tsq-flutter}/i18n/rules/locale-switching.md +0 -0
- /package/templates/base/skills/{mobile/flutter → tsq-flutter}/i18n/rules/localization-setup.md +0 -0
- /package/templates/base/skills/{mobile/flutter → tsq-flutter}/i18n/rules/plural-gender.md +0 -0
- /package/templates/base/skills/{mobile/flutter → tsq-flutter}/i18n/rules/text-direction.md +0 -0
- /package/templates/base/skills/{mobile/flutter → tsq-flutter}/monitoring/SKILL.md +0 -0
- /package/templates/base/skills/{mobile/flutter → tsq-flutter}/monitoring/references/monitoring-architecture.md +0 -0
- /package/templates/base/skills/{mobile/flutter → tsq-flutter}/monitoring/rules/analytics.md +0 -0
- /package/templates/base/skills/{mobile/flutter → tsq-flutter}/monitoring/rules/crashlytics-setup.md +0 -0
- /package/templates/base/skills/{mobile/flutter → tsq-flutter}/monitoring/rules/logging.md +0 -0
- /package/templates/base/skills/{mobile/flutter → tsq-flutter}/monitoring/rules/performance-monitoring.md +0 -0
- /package/templates/base/skills/{mobile/flutter → tsq-flutter}/monitoring/rules/sentry-integration.md +0 -0
- /package/templates/base/skills/{mobile/flutter → tsq-flutter}/networking/SKILL.md +0 -0
- /package/templates/base/skills/{mobile/flutter → tsq-flutter}/networking/references/api-client-architecture.md +0 -0
- /package/templates/base/skills/{mobile/flutter → tsq-flutter}/networking/rules/caching.md +0 -0
- /package/templates/base/skills/{mobile/flutter → tsq-flutter}/networking/rules/connectivity.md +0 -0
- /package/templates/base/skills/{mobile/flutter → tsq-flutter}/networking/rules/dio-setup.md +0 -0
- /package/templates/base/skills/{mobile/flutter → tsq-flutter}/networking/rules/error-handling.md +0 -0
- /package/templates/base/skills/{mobile/flutter → tsq-flutter}/networking/rules/interceptors.md +0 -0
- /package/templates/base/skills/{mobile/flutter → tsq-flutter}/networking/rules/retrofit-patterns.md +0 -0
- /package/templates/base/skills/{mobile/flutter → tsq-flutter}/push-notifications/SKILL.md +0 -0
- /package/templates/base/skills/{mobile/flutter → tsq-flutter}/push-notifications/references/notification-architecture.md +0 -0
- /package/templates/base/skills/{mobile/flutter → tsq-flutter}/push-notifications/references/platform-setup.md +0 -0
- /package/templates/base/skills/{mobile/flutter → tsq-flutter}/push-notifications/rules/background-processing.md +0 -0
- /package/templates/base/skills/{mobile/flutter → tsq-flutter}/push-notifications/rules/deep-linking.md +0 -0
- /package/templates/base/skills/{mobile/flutter → tsq-flutter}/push-notifications/rules/fcm-setup.md +0 -0
- /package/templates/base/skills/{mobile/flutter → tsq-flutter}/push-notifications/rules/local-notifications.md +0 -0
- /package/templates/base/skills/{mobile/flutter → tsq-flutter}/push-notifications/rules/notification-handling.md +0 -0
- /package/templates/base/skills/{mobile/flutter → tsq-flutter}/push-notifications/rules/notification-permissions.md +0 -0
- /package/templates/base/skills/{mobile/flutter → tsq-flutter}/push-notifications/rules/rich-notifications.md +0 -0
- /package/templates/base/skills/{mobile/flutter → tsq-flutter}/references/freezed-patterns.md +0 -0
- /package/templates/base/skills/{mobile/flutter → tsq-flutter}/references/project-structure.md +0 -0
- /package/templates/base/skills/{mobile/flutter → tsq-flutter}/rules/animations.md +0 -0
- /package/templates/base/skills/{mobile/flutter → tsq-flutter}/rules/architecture.md +0 -0
- /package/templates/base/skills/{mobile/flutter → tsq-flutter}/rules/navigation-routing.md +0 -0
- /package/templates/base/skills/{mobile/flutter → tsq-flutter}/rules/performance.md +0 -0
- /package/templates/base/skills/{mobile/flutter → tsq-flutter}/rules/platform-adaptive.md +0 -0
- /package/templates/base/skills/{mobile/flutter → tsq-flutter}/rules/state-management.md +0 -0
- /package/templates/base/skills/{mobile/flutter → tsq-flutter}/rules/testing.md +0 -0
- /package/templates/base/skills/{mobile/flutter → tsq-flutter}/rules/widget-conventions.md +0 -0
- /package/templates/base/skills/{mobile/flutter → tsq-flutter}/security/SKILL.md +0 -0
- /package/templates/base/skills/{mobile/flutter → tsq-flutter}/security/references/mobile-security-checklist.md +0 -0
- /package/templates/base/skills/{mobile/flutter → tsq-flutter}/security/rules/api-key-protection.md +0 -0
- /package/templates/base/skills/{mobile/flutter → tsq-flutter}/security/rules/authentication.md +0 -0
- /package/templates/base/skills/{mobile/flutter → tsq-flutter}/security/rules/data-protection.md +0 -0
- /package/templates/base/skills/{mobile/flutter → tsq-flutter}/security/rules/obfuscation.md +0 -0
- /package/templates/base/skills/{mobile/flutter → tsq-flutter}/security/rules/secure-storage.md +0 -0
- /package/templates/base/skills/{mobile/flutter → tsq-flutter}/security/rules/ssl-pinning.md +0 -0
- /package/templates/base/skills/{backend/node → tsq-hono}/rules/async-patterns.md +0 -0
- /package/templates/base/skills/{backend/node → tsq-hono}/rules/deployment.md +0 -0
- /package/templates/base/skills/{backend/node → tsq-hono}/rules/env-config.md +0 -0
- /package/templates/base/skills/{backend/node → tsq-hono}/rules/error-handling.md +0 -0
- /package/templates/base/skills/{backend/node → tsq-hono}/rules/hono-app-setup.md +0 -0
- /package/templates/base/skills/{backend/node → tsq-hono}/rules/jwt-auth.md +0 -0
- /package/templates/base/skills/{backend/node → tsq-hono}/rules/middleware.md +0 -0
- /package/templates/base/skills/{backend/node → tsq-hono}/rules/testing.md +0 -0
- /package/templates/base/skills/{frontend/nextjs → tsq-nextjs}/rules/app-router.md +0 -0
- /package/templates/base/skills/{planning → tsq-planning}/references/prd-guide.md +0 -0
- /package/templates/base/skills/{planning → tsq-planning}/references/requirements-guide.md +0 -0
- /package/templates/base/skills/{database/prisma → tsq-prisma}/rules/queries.md +0 -0
- /package/templates/base/skills/{database/prisma → tsq-prisma}/rules/schema-design.md +0 -0
- /package/templates/base/skills/{product-audit → tsq-product-audit}/checklists/01-security.md +0 -0
- /package/templates/base/skills/{product-audit → tsq-product-audit}/checklists/02-performance.md +0 -0
- /package/templates/base/skills/{product-audit → tsq-product-audit}/checklists/03-seo.md +0 -0
- /package/templates/base/skills/{product-audit → tsq-product-audit}/checklists/04-accessibility.md +0 -0
- /package/templates/base/skills/{product-audit → tsq-product-audit}/checklists/05-ui-ux.md +0 -0
- /package/templates/base/skills/{product-audit → tsq-product-audit}/checklists/06-architecture.md +0 -0
- /package/templates/base/skills/{product-audit → tsq-product-audit}/checklists/07-functional-requirements.md +0 -0
- /package/templates/base/skills/{product-audit → tsq-product-audit}/rules/audit-protocol.md +0 -0
- /package/templates/base/skills/{product-audit → tsq-product-audit}/rules/false-positive-guard.md +0 -0
- /package/templates/base/skills/{product-audit → tsq-product-audit}/rules/scoring-criteria.md +0 -0
- /package/templates/base/skills/{product-audit → tsq-product-audit}/templates/improvement-plan-template.md +0 -0
- /package/templates/base/skills/{product-audit → tsq-product-audit}/templates/report-template.md +0 -0
- /package/templates/base/skills/{frontend/react → tsq-react}/rules/_sections.md +0 -0
- /package/templates/base/skills/{frontend/react → tsq-react}/rules/anti-patterns.md +0 -0
- /package/templates/base/skills/{frontend/react → tsq-react}/rules/async-api-routes.md +0 -0
- /package/templates/base/skills/{frontend/react → tsq-react}/rules/async-defer-await.md +0 -0
- /package/templates/base/skills/{frontend/react → tsq-react}/rules/async-dependencies.md +0 -0
- /package/templates/base/skills/{frontend/react → tsq-react}/rules/async-parallel.md +0 -0
- /package/templates/base/skills/{frontend/react → tsq-react}/rules/async-suspense-boundaries.md +0 -0
- /package/templates/base/skills/{frontend/react → tsq-react}/rules/bundle-barrel-imports.md +0 -0
- /package/templates/base/skills/{frontend/react → tsq-react}/rules/bundle-defer-third-party.md +0 -0
- /package/templates/base/skills/{frontend/react → tsq-react}/rules/bundle-dynamic-imports.md +0 -0
- /package/templates/base/skills/{frontend/react → tsq-react}/rules/component-conventions.md +0 -0
- /package/templates/base/skills/{frontend/react → tsq-react}/rules/js-combine-iterations.md +0 -0
- /package/templates/base/skills/{frontend/react → tsq-react}/rules/js-early-exit.md +0 -0
- /package/templates/base/skills/{frontend/react → tsq-react}/rules/js-index-maps.md +0 -0
- /package/templates/base/skills/{frontend/react → tsq-react}/rules/js-set-map-lookups.md +0 -0
- /package/templates/base/skills/{frontend/react → tsq-react}/rules/rendering-conditional-render.md +0 -0
- /package/templates/base/skills/{frontend/react → tsq-react}/rules/rendering-content-visibility.md +0 -0
- /package/templates/base/skills/{frontend/react → tsq-react}/rules/rendering-hoist-jsx.md +0 -0
- /package/templates/base/skills/{frontend/react → tsq-react}/rules/rerender-defer-reads.md +0 -0
- /package/templates/base/skills/{frontend/react → tsq-react}/rules/rerender-derived-state.md +0 -0
- /package/templates/base/skills/{frontend/react → tsq-react}/rules/rerender-memo.md +0 -0
- /package/templates/base/skills/{frontend/react → tsq-react}/rules/rerender-transitions.md +0 -0
- /package/templates/base/skills/{frontend/react → tsq-react}/rules/server-after-nonblocking.md +0 -0
- /package/templates/base/skills/{frontend/react → tsq-react}/rules/server-cache-react.md +0 -0
- /package/templates/base/skills/{frontend/react → tsq-react}/rules/server-parallel-fetching.md +0 -0
- /package/templates/base/skills/{frontend/react → tsq-react}/rules/state-location.md +0 -0
- /package/templates/base/skills/{retrospective → tsq-retro}/references/improvement-template.md +0 -0
- /package/templates/base/skills/{security → tsq-security}/rules/auth-patterns.md +0 -0
- /package/templates/base/skills/{security → tsq-security}/rules/dependency-security.md +0 -0
- /package/templates/base/skills/{security → tsq-security}/rules/input-validation.md +0 -0
- /package/templates/base/skills/{security → tsq-security}/rules/owasp-examples.md +0 -0
- /package/templates/base/skills/{security → tsq-security}/rules/secrets-management.md +0 -0
- /package/templates/base/skills/{security → tsq-security}/scripts/check-secrets.sh +0 -0
- /package/templates/base/skills/{stability-verification → tsq-stability}/references/release-checklist.md +0 -0
- /package/templates/base/skills/{stability-verification → tsq-stability}/references/security-fix-patterns.md +0 -0
- /package/templates/base/skills/{stability-verification → tsq-stability}/rules/verification-layers.md +0 -0
- /package/templates/base/skills/{stability-verification → tsq-stability}/rules/verification-workflow.md +0 -0
- /package/templates/base/skills/{stability-verification → tsq-stability}/scripts/verify.sh +0 -0
- /package/templates/base/skills/{methodology/tdd → tsq-tdd}/rules/real-world-example.md +0 -0
- /package/templates/base/skills/{methodology/tdd → tsq-tdd}/rules/techniques.md +0 -0
- /package/templates/base/skills/{testing → tsq-testing}/references/e2e-stability.md +0 -0
- /package/templates/base/skills/{testing → tsq-testing}/references/testing-patterns.md +0 -0
- /package/templates/base/skills/{typescript → tsq-typescript}/rules/type-patterns.md +0 -0
- /package/templates/base/skills/{typescript → tsq-typescript}/rules/utility-types.md +0 -0
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: tsq-decompose
|
|
3
|
+
description: |
|
|
4
|
+
Sub-PRD에서 Phase-Sequence-Task 계획을 자동 생성하는 스킬.
|
|
5
|
+
기능 요구사항을 의존성 분석하여 DAG 기반 실행 계획으로 분해.
|
|
6
|
+
Use when: "태스크 분해", "계획 생성", "decompose", "분해", "플래닝",
|
|
7
|
+
"실행 계획", "Phase 계획", 또는 Sub-PRD가 작성된 후 실행 계획이 필요할 때.
|
|
8
|
+
version: "1.0.0"
|
|
9
|
+
tags: [tsq, planning, decompose, task, dag]
|
|
10
|
+
user-invocable: true
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# /tsq-decompose — 자동 태스크 분해
|
|
14
|
+
|
|
15
|
+
Sub-PRD의 요구사항을 분석하여 Phase-Sequence-Task 구조의 실행 계획을 자동 생성한다.
|
|
16
|
+
|
|
17
|
+
## Concepts
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
Phase = Topological Layer (순차 실행, 이전 Phase 완료 필요)
|
|
21
|
+
Sequence = Parallel Batch (동일 Phase 내 병렬 실행 가능 단위)
|
|
22
|
+
Task = Atomic Work Unit (단일 에이전트가 수행하는 최소 작업)
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
- Phase ID: `P{N}` (P1, P2, ...)
|
|
26
|
+
- Sequence ID: `P{N}-S{NNN}` (P1-S001, P1-S002, ...)
|
|
27
|
+
- Task ID: `P{N}-S{NNN}-T{NNN}` (P1-S001-T001, ...)
|
|
28
|
+
|
|
29
|
+
## Process
|
|
30
|
+
|
|
31
|
+
### Step 1: Sub-PRD 스캔
|
|
32
|
+
|
|
33
|
+
1. `.timsquad/ssot/prd/` 하위 Sub-PRD 파일 전체 읽기
|
|
34
|
+
2. 각 Sub-PRD에서 Must-Have(P0) 요구사항 추출
|
|
35
|
+
3. Should-Have(P1)는 별도 Phase 후순위 배치
|
|
36
|
+
|
|
37
|
+
### Step 2: 의존성 분석
|
|
38
|
+
|
|
39
|
+
요구사항 간 의존성 그래프 구성:
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
데이터 모델 → API 구현 → UI 구현
|
|
43
|
+
인증 → 권한 기반 기능
|
|
44
|
+
공통 컴포넌트 → 화면별 구현
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
의존성 판단 기준:
|
|
48
|
+
- **데이터 의존**: 테이블/스키마가 필요한 기능은 DB 설계 후
|
|
49
|
+
- **API 의존**: API가 필요한 UI는 API 구현 후
|
|
50
|
+
- **기능 의존**: Sub-PRD 간 명시적 참조
|
|
51
|
+
|
|
52
|
+
### Step 3: DAG 정렬 → Phase 배치
|
|
53
|
+
|
|
54
|
+
1. Topological sort로 의존성 레이어 계산
|
|
55
|
+
2. 같은 레이어 = 같은 Phase
|
|
56
|
+
3. Phase 내에서 독립적인 작업 그룹 = Sequence
|
|
57
|
+
4. Sequence 내 개별 작업 = Task
|
|
58
|
+
|
|
59
|
+
Phase 배치 관례:
|
|
60
|
+
| Phase | 일반적 내용 |
|
|
61
|
+
|:---:|------|
|
|
62
|
+
| P1 | 인프라/DB 스키마/공통 설정 |
|
|
63
|
+
| P2 | 핵심 API + 비즈니스 로직 |
|
|
64
|
+
| P3 | UI/UX 구현 |
|
|
65
|
+
| P4 | 통합 + E2E 테스트 |
|
|
66
|
+
| P5+ | 보안 감사, 성능 최적화, 배포 |
|
|
67
|
+
|
|
68
|
+
### Step 4: Task 상세화
|
|
69
|
+
|
|
70
|
+
각 Task에 포함할 정보: Task ID, 설명, 담당 에이전트, 입력(SSOT refs, 선행 산출물), 출력(코드, 테스트, 문서), 완료 기준.
|
|
71
|
+
|
|
72
|
+
### Step 5: Traceability 매핑 (Layer A)
|
|
73
|
+
|
|
74
|
+
각 Sub-PRD의 Mapped Artifacts 테이블에 생성된 Task ID를 역링크:
|
|
75
|
+
|
|
76
|
+
```markdown
|
|
77
|
+
| Type | ID | Link |
|
|
78
|
+
|------|----|------|
|
|
79
|
+
| Tasks | P1-S001-T001~T003 | [planning.md](../planning.md#P1-S001) |
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### Step 6: planning.md 생성
|
|
83
|
+
|
|
84
|
+
`.timsquad/ssot/planning.md`에 Phase-Sequence-Task 전체 계획 작성.
|
|
85
|
+
각 Sequence에 PRD 역방향 링크 포함 (Layer B):
|
|
86
|
+
|
|
87
|
+
```markdown
|
|
88
|
+
### Sequence S001: Authentication (PRD: [prd/auth](./prd/auth.md))
|
|
89
|
+
| Task ID | Description | Agent | PRD Ref | FR Ref |
|
|
90
|
+
|---------|-------------|-------|---------|--------|
|
|
91
|
+
| P1-S001-T001 | DB schema | dba | prd/auth | FR-AUTH-001 |
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
### Step 6.5: Plan Review (자동)
|
|
95
|
+
|
|
96
|
+
planning.md 생성 후 Controller에 Plan Reviewer 위임 요청. Reviewer(fork 컨텍스트)가 Sub-PRD 커버리지 100%, DAG 무결성, Task 크기(1에이전트 1세션), Phase 배치 순서를 검증. 결과를 Step 7에서 함께 제시.
|
|
97
|
+
|
|
98
|
+
### Step 7: Human Checkpoint
|
|
99
|
+
|
|
100
|
+
생성된 계획을 사용자에게 제시하고 컨펌을 받는다:
|
|
101
|
+
- Phase별 요약 (목표, 예상 Task 수, 핵심 산출물)
|
|
102
|
+
- 의존성 그래프 (mermaid)
|
|
103
|
+
- 수정/추가/삭제 요청 반영 후 확정
|
|
104
|
+
|
|
105
|
+
## Output
|
|
106
|
+
|
|
107
|
+
- `.timsquad/ssot/planning.md` — 확정된 실행 계획
|
|
108
|
+
- Sub-PRD Mapped Artifacts 업데이트 (Layer A 링크)
|
|
109
|
+
- 의존성 그래프 (mermaid diagram in planning.md)
|
|
110
|
+
|
|
111
|
+
## Rules
|
|
112
|
+
|
|
113
|
+
- Sub-PRD가 없으면 실행 불가 → `/tsq-grill` 먼저 안내
|
|
114
|
+
- 사용자 컨펌 없이 실행 계획 확정 금지
|
|
115
|
+
- Task 1개 = 에이전트 1명이 1회 세션에 완료 가능한 크기
|
|
116
|
+
- 순환 의존성 발견 시 사용자에게 알리고 해결책 제시
|
|
117
|
+
- planning.md 이외 SSOT 문서는 Mapped Artifacts 테이블만 수정
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: tsq-delete
|
|
3
|
+
description: |
|
|
4
|
+
TimSquad 프레임워크를 프로젝트에서 완전 제거. 모든 에이전트, 스킬, 훅, 룰 정리.
|
|
5
|
+
Use when: /tsq-delete, "timsquad 제거", "tsq 삭제", "프레임워크 제거"
|
|
6
|
+
version: "1.0.0"
|
|
7
|
+
tags: [tsq, delete, remove, cleanup]
|
|
8
|
+
user-invocable: true
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# /tsq-delete — Remove TimSquad
|
|
12
|
+
|
|
13
|
+
## Protocol
|
|
14
|
+
|
|
15
|
+
1. **사용자 확인**: 반드시 삭제 전 확인 요청
|
|
16
|
+
```
|
|
17
|
+
TimSquad 프레임워크를 이 프로젝트에서 완전히 제거합니다.
|
|
18
|
+
제거 대상:
|
|
19
|
+
- .timsquad/ (설정, 로그, SSOT, 상태 전부)
|
|
20
|
+
- .claude/skills/tsq-* (TimSquad 스킬)
|
|
21
|
+
- .claude/agents/tsq-* (TimSquad 에이전트)
|
|
22
|
+
- .claude/rules/ (TimSquad 룰)
|
|
23
|
+
- .claude/scripts/ (TimSquad 훅 스크립트)
|
|
24
|
+
- .claude/settings.json 내 TimSquad 훅
|
|
25
|
+
- CLAUDE.md 내 TimSquad 블록
|
|
26
|
+
|
|
27
|
+
보존됨:
|
|
28
|
+
- CLAUDE.md (tsq 블록만 제거, 나머지 유지)
|
|
29
|
+
- .claude/settings.json (tsq 훅만 제거, 나머지 유지)
|
|
30
|
+
- 소스코드 (절대 변경 안 됨)
|
|
31
|
+
|
|
32
|
+
계속하시겠습니까?
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
2. **제거 실행** (사용자 승인 후):
|
|
36
|
+
|
|
37
|
+
a. **데몬 중지**:
|
|
38
|
+
```bash
|
|
39
|
+
tsq daemon stop 2>/dev/null || true
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
b. **스킬 제거**: `.claude/skills/tsq-*` 디렉토리 전부 삭제
|
|
43
|
+
|
|
44
|
+
c. **에이전트 제거**: `.claude/agents/tsq-*` 파일 전부 삭제
|
|
45
|
+
|
|
46
|
+
d. **룰 제거**: `.claude/rules/` 디렉토리 삭제
|
|
47
|
+
|
|
48
|
+
e. **스크립트 제거**: `.claude/scripts/` 디렉토리 삭제
|
|
49
|
+
|
|
50
|
+
f. **CLAUDE.md 정리**: `<!-- tsq:start -->` ~ `<!-- tsq:end -->` 블록 제거
|
|
51
|
+
- 블록 제거 후 빈 줄 정리
|
|
52
|
+
- 나머지 사용자 콘텐츠 보존
|
|
53
|
+
|
|
54
|
+
g. **settings.json 정리**: hooks 내 tsq 관련 항목 제거
|
|
55
|
+
- `.claude/scripts/` 경로 참조하는 훅 제거
|
|
56
|
+
- 나머지 사용자 훅 보존
|
|
57
|
+
|
|
58
|
+
h. **.timsquad 제거**: 전체 디렉토리 삭제 (마지막 단계)
|
|
59
|
+
|
|
60
|
+
3. **완료 보고**:
|
|
61
|
+
```
|
|
62
|
+
TimSquad가 프로젝트에서 제거되었습니다.
|
|
63
|
+
- 소스코드는 변경되지 않았습니다.
|
|
64
|
+
- 재설치: npx timsquad init
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Safety
|
|
68
|
+
|
|
69
|
+
- 소스코드 (`src/`, `app/`, `lib/` 등)는 절대 변경하지 않음
|
|
70
|
+
- CLAUDE.md에서 tsq 블록만 제거, 나머지 보존
|
|
71
|
+
- settings.json에서 tsq 훅만 제거, 나머지 보존
|
|
72
|
+
- 반드시 사용자 확인 후 실행
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: flutter
|
|
3
|
-
description:
|
|
2
|
+
name: tsq-flutter
|
|
3
|
+
description: |
|
|
4
|
+
Flutter 개발 가이드라인. Feature-first 아키텍처, Riverpod 상태관리, 위젯 합성, 성능 최적화, 크로스플랫폼 적응형 UI.
|
|
5
|
+
Use when: Flutter 위젯 작성·수정, 상태관리 설계, 크로스플랫폼 UI 구현, pubspec.yaml 설정 시.
|
|
4
6
|
version: "1.0.0"
|
|
5
|
-
tags: [flutter, mobile, cross-platform, riverpod]
|
|
7
|
+
tags: [tsq, flutter, mobile, cross-platform, riverpod]
|
|
6
8
|
user-invocable: false
|
|
7
9
|
---
|
|
8
10
|
|
|
@@ -10,6 +12,7 @@ user-invocable: false
|
|
|
10
12
|
|
|
11
13
|
Flutter 3.x 기반 크로스플랫폼 앱 개발 가이드라인.
|
|
12
14
|
Flutter 공식 아키텍처 가이드 + VGV + Riverpod 커뮤니티 베스트 프랙티스 종합.
|
|
15
|
+
기본 스택: Riverpod, go_router, freezed. 프로젝트 설정(`memory/conventions.md`)으로 재정의 가능.
|
|
13
16
|
|
|
14
17
|
## Philosophy
|
|
15
18
|
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: tsq-grill
|
|
3
|
+
description: |
|
|
4
|
+
Sub-PRD 작성/보강을 위한 소크라틱 심층 인터뷰 스킬.
|
|
5
|
+
기능별 Why/What/How를 체계적으로 파고들어 모호한 요구사항을 구체화.
|
|
6
|
+
Use when: "기능 상세화", "요구사항 인터뷰", "PRD 보강", "grill", "기능 정의",
|
|
7
|
+
"Sub-PRD 작성", "기능 스펙 잡기", 또는 PRD 기능 인덱스에 빈 항목이 있을 때.
|
|
8
|
+
version: "1.0.0"
|
|
9
|
+
tags: [tsq, prd, interview, grill, requirements]
|
|
10
|
+
user-invocable: true
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# /tsq-grill — 소크라틱 심층 인터뷰
|
|
14
|
+
|
|
15
|
+
PRD의 기능을 하나씩 깊이 파고들어 Sub-PRD를 작성하거나 보강하는 스킬.
|
|
16
|
+
"질문을 통해 답을 끌어낸다"는 소크라틱 방법론을 따른다.
|
|
17
|
+
|
|
18
|
+
## When to Use
|
|
19
|
+
|
|
20
|
+
- 새 기능의 Sub-PRD를 처음 작성할 때
|
|
21
|
+
- 기존 Sub-PRD의 빈 섹션을 채울 때
|
|
22
|
+
- 모호한 요구사항을 구체화해야 할 때
|
|
23
|
+
- PRD 기능 인덱스에 Link가 비어있을 때
|
|
24
|
+
|
|
25
|
+
## Process
|
|
26
|
+
|
|
27
|
+
### Phase 1: 대상 선정
|
|
28
|
+
|
|
29
|
+
1. `.timsquad/ssot/prd.md`의 기능 인덱스 테이블 읽기
|
|
30
|
+
2. Sub-PRD가 없거나 빈 기능 식별
|
|
31
|
+
3. 사용자에게 인터뷰 대상 기능 확인 (복수 선택 가능)
|
|
32
|
+
|
|
33
|
+
### Phase 2: 디자인 트리 인터뷰
|
|
34
|
+
|
|
35
|
+
기능마다 3단계 깊이로 질문한다. 한 번에 2-3개 질문, 답변 받으면 다음 깊이로.
|
|
36
|
+
|
|
37
|
+
```
|
|
38
|
+
Why (목적)
|
|
39
|
+
├── 이 기능이 없으면 사용자에게 어떤 문제가 생기나?
|
|
40
|
+
├── 핵심 사용자 시나리오는?
|
|
41
|
+
└── 성공을 어떻게 측정하나?
|
|
42
|
+
|
|
43
|
+
What (범위)
|
|
44
|
+
├── Must-Have vs Nice-to-Have 경계는?
|
|
45
|
+
├── 이 기능이 다루지 않는 것은?
|
|
46
|
+
├── 어떤 데이터가 필요하고 어디서 오나?
|
|
47
|
+
└── 기존 시스템과 연동 포인트는?
|
|
48
|
+
|
|
49
|
+
How (설계)
|
|
50
|
+
├── 사용자 흐름 (Happy Path → Exception Path)?
|
|
51
|
+
├── 상태 전환이 있다면?
|
|
52
|
+
├── 에러 케이스와 처리 방식은?
|
|
53
|
+
└── 성능/보안 고려사항은?
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
질문 방식 원칙:
|
|
57
|
+
- 한 번에 질문 2-3개만 (과부하 방지)
|
|
58
|
+
- 사용자 답변을 요약해서 확인받기 ("~라는 뜻이 맞나요?")
|
|
59
|
+
- 모호한 답변에는 구체적 예시로 재질문
|
|
60
|
+
- "모르겠다"는 답변도 유효 — 결정 보류로 기록
|
|
61
|
+
|
|
62
|
+
### Phase 3: Sub-PRD 생성
|
|
63
|
+
|
|
64
|
+
인터뷰 결과를 `.timsquad/ssot/prd/[feature].md`로 구조화:
|
|
65
|
+
|
|
66
|
+
1. `ssot/prd/_template.md` 복사
|
|
67
|
+
2. 인터뷰 답변으로 각 섹션 채우기
|
|
68
|
+
3. Mapped Artifacts는 빈 링크로 두되 구조 유지
|
|
69
|
+
4. 설계 결정 테이블에 인터뷰 중 나온 선택지/결정 기록
|
|
70
|
+
|
|
71
|
+
### Phase 4: PRD 인덱스 업데이트
|
|
72
|
+
|
|
73
|
+
`prd.md`의 기능 인덱스 테이블에 새 Sub-PRD 링크 추가.
|
|
74
|
+
|
|
75
|
+
## Output
|
|
76
|
+
|
|
77
|
+
- `.timsquad/ssot/prd/[feature].md` — Sub-PRD 파일
|
|
78
|
+
- `prd.md` 기능 인덱스 업데이트
|
|
79
|
+
- 인터뷰 로그: `.timsquad/logs/grill-[feature]-[date].md`
|
|
80
|
+
|
|
81
|
+
## Rules
|
|
82
|
+
|
|
83
|
+
- 사용자 답변을 임의로 해석하지 않는다 — 확인 후 기록
|
|
84
|
+
- "아직 모르겠다"는 TBD로 표시하되, 결정이 필요한 시점을 명시
|
|
85
|
+
- SSOT 외 파일 수정 금지
|
|
86
|
+
- Sub-PRD 생성 후 사용자에게 리뷰 요청 (Human Checkpoint)
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
---
|
|
2
|
-
name:
|
|
3
|
-
description:
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
name: tsq-hono
|
|
3
|
+
description: |
|
|
4
|
+
Hono Framework 백엔드 개발 가이드라인. 비동기 우선, Zod 타입 안전, Clean Architecture 레이어 분리.
|
|
5
|
+
Use when: Hono 라우트 작성, Node.js 백엔드 구현, 미들웨어 설계, API 엔드포인트 개발, zValidator 사용 시.
|
|
6
|
+
version: "1.1.0"
|
|
7
|
+
tags: [tsq, hono, nodejs, backend]
|
|
6
8
|
user-invocable: false
|
|
7
9
|
---
|
|
8
10
|
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: tsq-librarian
|
|
3
|
+
description: |
|
|
4
|
+
Phase 종합 기록, Phase Memory 생성, SSOT 상태 갱신, 문서 작성 전담 스킬.
|
|
5
|
+
Phase 완료 시 controller가 호출하여 Trail 추출 + Memory 생성 + 종합 리포트를 생성한다.
|
|
6
|
+
Use when: Phase 완료 후 기록, 리포트 작성, SSOT 상태 점검, 문서 갱신, 로그 정리 시.
|
|
7
|
+
version: "2.0.0"
|
|
8
|
+
tags: [tsq, librarian, recording, documentation, phase-report, phase-memory]
|
|
9
|
+
user-invocable: false
|
|
10
|
+
context: fork
|
|
11
|
+
allowed-tools: Read, Write, Edit, Grep, Glob, Bash
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Librarian (Phase 기록 + Memory 전담)
|
|
15
|
+
|
|
16
|
+
Phase 종합 기록 전담. 문서 작성/갱신만 수행하고 소스 코드를 수정하지 않는다.
|
|
17
|
+
Phase Trail을 아카이브하고, 다음 Phase를 위한 Phase Memory를 생성한다.
|
|
18
|
+
|
|
19
|
+
## Contract
|
|
20
|
+
|
|
21
|
+
- **Trigger**: Phase 완료 시 controller의 phase-complete 트리거가 호출
|
|
22
|
+
- **Input**: L1/L2/L3 로그 + Decision Log + SSOT 현재 상태 + Phase 정보
|
|
23
|
+
- **Output**: Phase Trail + Phase Memory + 종합 리포트 + context note
|
|
24
|
+
- **Error**: 기록 실패 시 에러 리포트만 생성 (프로세스 차단 안 함)
|
|
25
|
+
- **Dependencies**: tsq-protocol
|
|
26
|
+
|
|
27
|
+
## Protocol
|
|
28
|
+
|
|
29
|
+
1. **L1/L2 로그 수집**: `.timsquad/logs/` 하위 해당 Phase 로그 전체 읽기
|
|
30
|
+
2. **Decision Log 수집**: `.timsquad/state/decisions.jsonl` 읽기
|
|
31
|
+
3. **SSOT 상태 확인 + Carry-over**:
|
|
32
|
+
- `.compile-manifest.json` hash 비교 → stale 목록 식별
|
|
33
|
+
- `.timsquad/.daemon/drift-warnings.json` 존재 시 drift 항목도 carry-over에 포함
|
|
34
|
+
- Stale + Drift 항목은 carry-over로 기록 (다음 Phase의 Architect가 갱신)
|
|
35
|
+
- SSOT 내용 직접 수정 금지 (메타데이터 last_reviewed, status만 갱신 허용)
|
|
36
|
+
4. **Phase Trail 작성**: `.timsquad/trails/phase-{id}.md` 생성
|
|
37
|
+
- 작업 요약 (L1/L2/L3에서 뭘 했는지)
|
|
38
|
+
- 주요 의사결정 (decisions.jsonl에서 추출, 이유 포함)
|
|
39
|
+
- 막혔던 점과 해결 방법
|
|
40
|
+
- 보류/carry-over 항목 (carry_over: true인 결정들)
|
|
41
|
+
5. **Phase Memory 아카이브 + 새 HEAD 생성**:
|
|
42
|
+
a. 현재 `phase-memory.md` → `trails/phase-{id}-memory.md` 복사 (아카이브)
|
|
43
|
+
b. 새 `phase-memory.md` 생성 (~50줄 엄수):
|
|
44
|
+
```yaml
|
|
45
|
+
---
|
|
46
|
+
phase: {new-phase-id}
|
|
47
|
+
prev: trails/phase-{id}-memory.md
|
|
48
|
+
created: {ISO8601}
|
|
49
|
+
---
|
|
50
|
+
```
|
|
51
|
+
c. 본문: 이전 Phase 한 줄 요약 + 핵심 결정 (최대 5개, carry_over 우선) + 주의사항 + carry-over
|
|
52
|
+
d. 에이전트 참조 규칙: HEAD만 기본 읽기. 필요시 prev 링크 따라 최대 3단계 추적
|
|
53
|
+
6. **Decision Log 아카이브**:
|
|
54
|
+
- decisions.jsonl → trails/phase-{id}-decisions.jsonl 복사
|
|
55
|
+
- decisions.jsonl 초기화 (빈 파일)
|
|
56
|
+
7. **Trails 정리**: trails/ 내 memory 아카이브가 10개 초과 시 가장 오래된 것부터 삭제
|
|
57
|
+
8. **종합 리포트 + Context Note 작성**
|
|
58
|
+
- `.timsquad/reports/{phase}-report.md` 생성
|
|
59
|
+
- `docs/sprint/` 하위에 다음 Phase 맥락 문서
|
|
60
|
+
|
|
61
|
+
## Constraints
|
|
62
|
+
|
|
63
|
+
- **소스 코드(src/, lib/, app/) 수정 절대 금지**
|
|
64
|
+
- `.timsquad/` 및 `docs/` 내 문서 작성·갱신만 허용
|
|
65
|
+
- 기록, 분석, 리포트 작성만 수행
|
|
66
|
+
|
|
67
|
+
## Verification
|
|
68
|
+
|
|
69
|
+
| Check | Command | Pass Criteria |
|
|
70
|
+
|-------|---------|---------------|
|
|
71
|
+
| Trail 생성 | `ls .timsquad/trails/phase-*.md` | 파일 존재 |
|
|
72
|
+
| Memory HEAD | `head -5 .timsquad/state/phase-memory.md` | prev 링크 포함, ~50줄 |
|
|
73
|
+
| Memory 아카이브 | `ls .timsquad/trails/phase-*-memory.md` | 이전 memory 아카이브 존재 |
|
|
74
|
+
| 리포트 생성 | `ls .timsquad/reports/{phase}-report.md` | 파일 존재 |
|
|
75
|
+
| Decision 아카이브 | `ls .timsquad/trails/phase-*-decisions.jsonl` | 파일 존재 |
|
|
76
|
+
| SSOT stale carry-over | phase-memory.md 내 carry-over 확인 | stale 항목 기록됨 |
|
|
77
|
+
| Trails GC | `ls .timsquad/trails/phase-*-memory.md \| wc -l` | 10개 이하 |
|
|
78
|
+
| 소스 무변경 | `git diff --name-only src/ lib/ app/` | 변경 없음 |
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: tsq-log
|
|
3
|
+
description: |
|
|
4
|
+
작업 로그 관리. 로그 추가, 조회, 시퀀스/Phase 로그 생성.
|
|
5
|
+
Use when: /tsq-log, "로그 추가", "작업 기록", "로그 확인", "L1 로그", "L2 로그"
|
|
6
|
+
version: "1.0.0"
|
|
7
|
+
tags: [tsq, log, recording]
|
|
8
|
+
user-invocable: true
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# /tsq-log — Work Log Management
|
|
12
|
+
|
|
13
|
+
## Protocol
|
|
14
|
+
|
|
15
|
+
### 로그 추가 (`/tsq-log add <message>`)
|
|
16
|
+
1. 현재 날짜/시간 + 에이전트명 + 메시지로 로그 엔트리 생성
|
|
17
|
+
2. `.timsquad/logs/{date}-{agent}.md`에 append
|
|
18
|
+
3. 타입 자동 분류: work, decision, issue
|
|
19
|
+
|
|
20
|
+
### 로그 조회 (`/tsq-log` or `/tsq-log list`)
|
|
21
|
+
1. `.timsquad/logs/` 최근 로그 파일 목록 출력
|
|
22
|
+
2. 오늘 날짜 로그가 있으면 내용 요약
|
|
23
|
+
|
|
24
|
+
### 시퀀스 로그 (`/tsq-log sequence <id>`)
|
|
25
|
+
1. 해당 시퀀스의 L1 로그를 수집
|
|
26
|
+
2. L2 시퀀스 로그 생성 (`.timsquad/logs/sequences/`)
|
|
27
|
+
|
|
28
|
+
### Phase 로그 (`/tsq-log phase <id>`)
|
|
29
|
+
1. 해당 Phase의 L2 로그를 수집
|
|
30
|
+
2. L3 Phase 로그 생성 (`.timsquad/logs/phases/`)
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: nextjs
|
|
3
|
-
description:
|
|
2
|
+
name: tsq-nextjs
|
|
3
|
+
description: |
|
|
4
|
+
Next.js App Router 개발 가이드라인. Server/Client Components, Server Actions, 캐싱 전략.
|
|
5
|
+
Use when: Next.js 프로젝트 개발, App Router 라우팅, Server Component 설계, Server Actions 구현 시.
|
|
4
6
|
version: "1.0.0"
|
|
5
|
-
tags: [nextjs, react, frontend]
|
|
7
|
+
tags: [tsq, nextjs, react, frontend]
|
|
6
8
|
user-invocable: false
|
|
7
9
|
---
|
|
8
10
|
|
|
@@ -48,12 +50,15 @@ user-invocable: false
|
|
|
48
50
|
- 동적 import: 무거운 컴포넌트 지연 로딩
|
|
49
51
|
|
|
50
52
|
## Checklist
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
53
|
+
|
|
54
|
+
| Priority | Item |
|
|
55
|
+
|----------|------|
|
|
56
|
+
| CRITICAL | Server Component 기본 사용 |
|
|
57
|
+
| CRITICAL | 'use client' 최소화 |
|
|
58
|
+
| HIGH | Server Actions로 mutation |
|
|
59
|
+
| HIGH | 적절한 캐싱 전략 |
|
|
60
|
+
| MEDIUM | loading.tsx, error.tsx 구현 |
|
|
61
|
+
| MEDIUM | Metadata 설정 |
|
|
57
62
|
|
|
58
63
|
## 참조
|
|
59
64
|
- `rules/app-router.md` — 디렉토리 구조, Server/Client 예시, Data Fetching, Metadata, Loading/Error 패턴
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: planning
|
|
2
|
+
name: tsq-planning
|
|
3
3
|
description: |
|
|
4
4
|
기획 및 요건 정의 가이드라인.
|
|
5
5
|
PRD, 요구사항 정의, 문서 구조화, 대용량 문서 분할 전략을 다룸.
|
|
6
6
|
Use when: "기획, PRD, 요구사항, 요건 정의, 스코프, 마일스톤"
|
|
7
7
|
version: "1.0.0"
|
|
8
|
-
tags: [planning, prd, requirements]
|
|
8
|
+
tags: [tsq, planning, prd, requirements]
|
|
9
9
|
user-invocable: false
|
|
10
10
|
---
|
|
11
11
|
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: prisma
|
|
3
|
-
description:
|
|
2
|
+
name: tsq-prisma
|
|
3
|
+
description: |
|
|
4
|
+
Prisma ORM 개발 가이드라인. 스키마 설계, 쿼리 최적화, 마이그레이션 관리, Repository 패턴.
|
|
5
|
+
Use when: Prisma 스키마 작성·수정, 마이그레이션 생성, ORM 쿼리 작성, 데이터 모델 설계 시.
|
|
4
6
|
version: "1.0.0"
|
|
5
|
-
tags: [prisma, orm, database]
|
|
7
|
+
tags: [tsq, prisma, orm, database]
|
|
6
8
|
user-invocable: false
|
|
7
9
|
---
|
|
8
10
|
|
|
@@ -45,13 +47,17 @@ user-invocable: false
|
|
|
45
47
|
- **금지**: 프로덕션에서 `db push`
|
|
46
48
|
|
|
47
49
|
## Checklist
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
50
|
+
|
|
51
|
+
| Priority | Item |
|
|
52
|
+
|----------|------|
|
|
53
|
+
| CRITICAL | 싱글톤 인스턴스 사용 |
|
|
54
|
+
| CRITICAL | 마이그레이션으로 스키마 관리 |
|
|
55
|
+
| HIGH | 트랜잭션으로 데이터 정합성 |
|
|
56
|
+
| HIGH | select로 필요한 필드만 조회 |
|
|
57
|
+
| MEDIUM | 인덱스 적절히 설정 |
|
|
58
|
+
| MEDIUM | Repository 패턴 적용 |
|
|
54
59
|
|
|
55
60
|
## 참조
|
|
56
61
|
- `rules/schema-design.md` — 모델 정의, 공통 필드, 소프트 삭제 패턴
|
|
57
62
|
- `rules/queries.md` — 싱글톤, CRUD, Relations, 트랜잭션, Repository 패턴
|
|
63
|
+
- **tsq-database** — DB 설계 원칙, 쿼리 최적화, raw SQL 마이그레이션은 tsq-database 참조
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: product-audit
|
|
2
|
+
name: tsq-product-audit
|
|
3
3
|
description: |
|
|
4
4
|
통합 제품 감사 스킬. 7개 영역(Security, Performance, SEO, Accessibility, UI/UX, Architecture, Functional)을
|
|
5
5
|
정량 스코어링으로 평가하고, 6단계 사이클(Plan→Audit→Report→Remediation Plan→Fix→Re-audit)로 운영한다.
|
|
6
6
|
Use when: Phase gate 전 품질 확인, 보안 감사, 성능 리뷰, 접근성 점검, 릴리스 전 최종 검증, 코드 감사 요청 시.
|
|
7
7
|
version: "2.0.0"
|
|
8
|
-
tags: [audit, quality, security, performance, accessibility, seo]
|
|
9
|
-
depends_on: [coding, testing]
|
|
10
|
-
conflicts_with: []
|
|
8
|
+
tags: [tsq, audit, quality, security, performance, accessibility, seo]
|
|
11
9
|
user-invocable: false
|
|
12
10
|
---
|
|
13
11
|
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: prompt
|
|
2
|
+
name: tsq-prompt
|
|
3
3
|
description: |
|
|
4
4
|
에이전트/스킬 프롬프트 최적화, 템플릿 관리, 회고 기반 개선 가이드라인.
|
|
5
5
|
Use when: 프롬프트 작성·수정, 스킬 템플릿 작성, 회고에서 프롬프트 개선 대상이 발견됐을 때,
|
|
6
6
|
에이전트 응답 품질이 낮을 때, SKILL.md나 에이전트 .md 파일을 편집할 때.
|
|
7
7
|
version: "1.0.0"
|
|
8
|
-
tags: [prompt, optimization, retrospective]
|
|
8
|
+
tags: [tsq, prompt, optimization, retrospective]
|
|
9
9
|
user-invocable: false
|
|
10
10
|
---
|
|
11
11
|
|
|
@@ -55,11 +55,13 @@ Good/Bad 예시를 함께 제공하여 기대 품질 수준을 명확화한다.
|
|
|
55
55
|
| 제약 | 금지 사항이 명시되었는가? |
|
|
56
56
|
| 출력 | 기대 출력 형식이 정의되었는가? |
|
|
57
57
|
|
|
58
|
-
## 템플릿 형식
|
|
58
|
+
## 템플릿 형식 (예시)
|
|
59
|
+
|
|
60
|
+
아래는 프롬프트 템플릿의 구조 예시입니다:
|
|
59
61
|
|
|
60
62
|
```markdown
|
|
61
63
|
---
|
|
62
|
-
name: {
|
|
64
|
+
name: {skill-name}
|
|
63
65
|
version: 1.0.0
|
|
64
66
|
agent: {target-agent}
|
|
65
67
|
task_type: {implementation|review|analysis}
|