timsquad 2.0.0 → 3.3.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 +168 -234
- package/dist/commands/daemon.d.ts +7 -0
- package/dist/commands/daemon.d.ts.map +1 -0
- package/dist/commands/daemon.js +140 -0
- package/dist/commands/daemon.js.map +1 -0
- package/dist/commands/feedback.d.ts +9 -0
- package/dist/commands/feedback.d.ts.map +1 -1
- package/dist/commands/feedback.js +251 -11
- package/dist/commands/feedback.js.map +1 -1
- package/dist/commands/full.js +2 -2
- package/dist/commands/full.js.map +1 -1
- package/dist/commands/git/commit.d.ts.map +1 -1
- package/dist/commands/git/commit.js +1 -4
- package/dist/commands/git/commit.js.map +1 -1
- package/dist/commands/improve.d.ts +3 -0
- package/dist/commands/improve.d.ts.map +1 -0
- package/dist/commands/improve.js +286 -0
- package/dist/commands/improve.js.map +1 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +110 -22
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/knowledge.d.ts +3 -0
- package/dist/commands/knowledge.d.ts.map +1 -0
- package/dist/commands/knowledge.js +316 -0
- package/dist/commands/knowledge.js.map +1 -0
- package/dist/commands/log.d.ts +27 -0
- package/dist/commands/log.d.ts.map +1 -1
- package/dist/commands/log.js +1167 -2
- package/dist/commands/log.js.map +1 -1
- package/dist/commands/meta-index.d.ts +3 -0
- package/dist/commands/meta-index.d.ts.map +1 -0
- package/dist/commands/meta-index.js +401 -0
- package/dist/commands/meta-index.js.map +1 -0
- package/dist/commands/metrics.d.ts.map +1 -1
- package/dist/commands/metrics.js +640 -100
- package/dist/commands/metrics.js.map +1 -1
- package/dist/commands/retro.d.ts.map +1 -1
- package/dist/commands/retro.js +606 -58
- package/dist/commands/retro.js.map +1 -1
- package/dist/commands/session.d.ts +3 -0
- package/dist/commands/session.d.ts.map +1 -0
- package/dist/commands/session.js +346 -0
- package/dist/commands/session.js.map +1 -0
- package/dist/commands/upgrade.d.ts +8 -0
- package/dist/commands/upgrade.d.ts.map +1 -0
- package/dist/commands/upgrade.js +287 -0
- package/dist/commands/upgrade.js.map +1 -0
- package/dist/commands/workflow.d.ts +3 -0
- package/dist/commands/workflow.d.ts.map +1 -0
- package/dist/commands/workflow.js +607 -0
- package/dist/commands/workflow.js.map +1 -0
- package/dist/daemon/context-writer.d.ts +16 -0
- package/dist/daemon/context-writer.d.ts.map +1 -0
- package/dist/daemon/context-writer.js +35 -0
- package/dist/daemon/context-writer.js.map +1 -0
- package/dist/daemon/entry.d.ts +7 -0
- package/dist/daemon/entry.d.ts.map +1 -0
- package/dist/daemon/entry.js +17 -0
- package/dist/daemon/entry.js.map +1 -0
- package/dist/daemon/event-queue.d.ts +52 -0
- package/dist/daemon/event-queue.d.ts.map +1 -0
- package/dist/daemon/event-queue.js +255 -0
- package/dist/daemon/event-queue.js.map +1 -0
- package/dist/daemon/file-watcher.d.ts +19 -0
- package/dist/daemon/file-watcher.d.ts.map +1 -0
- package/dist/daemon/file-watcher.js +87 -0
- package/dist/daemon/file-watcher.js.map +1 -0
- package/dist/daemon/index.d.ts +28 -0
- package/dist/daemon/index.d.ts.map +1 -0
- package/dist/daemon/index.js +204 -0
- package/dist/daemon/index.js.map +1 -0
- package/dist/daemon/jsonl-watcher.d.ts +49 -0
- package/dist/daemon/jsonl-watcher.d.ts.map +1 -0
- package/dist/daemon/jsonl-watcher.js +258 -0
- package/dist/daemon/jsonl-watcher.js.map +1 -0
- package/dist/daemon/meta-cache.d.ts +62 -0
- package/dist/daemon/meta-cache.d.ts.map +1 -0
- package/dist/daemon/meta-cache.js +240 -0
- package/dist/daemon/meta-cache.js.map +1 -0
- package/dist/daemon/shutdown.d.ts +21 -0
- package/dist/daemon/shutdown.d.ts.map +1 -0
- package/dist/daemon/shutdown.js +158 -0
- package/dist/daemon/shutdown.js.map +1 -0
- package/dist/index.js +24 -3
- package/dist/index.js.map +1 -1
- package/dist/lib/agent-composer.d.ts +38 -0
- package/dist/lib/agent-composer.d.ts.map +1 -0
- package/dist/lib/agent-composer.js +128 -0
- package/dist/lib/agent-composer.js.map +1 -0
- package/dist/lib/agent-generator.d.ts +22 -0
- package/dist/lib/agent-generator.d.ts.map +1 -0
- package/dist/lib/agent-generator.js +150 -0
- package/dist/lib/agent-generator.js.map +1 -0
- package/dist/lib/ast-parser.d.ts +11 -0
- package/dist/lib/ast-parser.d.ts.map +1 -0
- package/dist/lib/ast-parser.js +282 -0
- package/dist/lib/ast-parser.js.map +1 -0
- package/dist/lib/config.d.ts +6 -2
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +27 -3
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/meta-index.d.ts +19 -0
- package/dist/lib/meta-index.d.ts.map +1 -0
- package/dist/lib/meta-index.js +573 -0
- package/dist/lib/meta-index.js.map +1 -0
- package/dist/lib/project.js +1 -1
- package/dist/lib/project.js.map +1 -1
- package/dist/lib/skill-generator.d.ts +32 -0
- package/dist/lib/skill-generator.d.ts.map +1 -0
- package/dist/lib/skill-generator.js +187 -0
- package/dist/lib/skill-generator.js.map +1 -0
- package/dist/lib/template.d.ts +16 -2
- package/dist/lib/template.d.ts.map +1 -1
- package/dist/lib/template.js +175 -21
- package/dist/lib/template.js.map +1 -1
- package/dist/lib/ui-index.d.ts +12 -0
- package/dist/lib/ui-index.d.ts.map +1 -0
- package/dist/lib/ui-index.js +239 -0
- package/dist/lib/ui-index.js.map +1 -0
- package/dist/lib/ui-parser.d.ts +12 -0
- package/dist/lib/ui-parser.d.ts.map +1 -0
- package/dist/lib/ui-parser.js +472 -0
- package/dist/lib/ui-parser.js.map +1 -0
- package/dist/lib/update-check.d.ts +6 -0
- package/dist/lib/update-check.d.ts.map +1 -0
- package/dist/lib/update-check.js +121 -0
- package/dist/lib/update-check.js.map +1 -0
- package/dist/lib/upgrade-backup.d.ts +33 -0
- package/dist/lib/upgrade-backup.d.ts.map +1 -0
- package/dist/lib/upgrade-backup.js +101 -0
- package/dist/lib/upgrade-backup.js.map +1 -0
- package/dist/lib/version.d.ts +19 -0
- package/dist/lib/version.d.ts.map +1 -0
- package/dist/lib/version.js +35 -0
- package/dist/lib/version.js.map +1 -0
- package/dist/lib/workflow-state.d.ts +48 -0
- package/dist/lib/workflow-state.d.ts.map +1 -0
- package/dist/lib/workflow-state.js +67 -0
- package/dist/lib/workflow-state.js.map +1 -0
- package/dist/types/config.d.ts +102 -2
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/config.js +173 -9
- package/dist/types/config.js.map +1 -1
- package/dist/types/feedback.d.ts +59 -1
- package/dist/types/feedback.d.ts.map +1 -1
- package/dist/types/feedback.js +1 -4
- package/dist/types/feedback.js.map +1 -1
- package/dist/types/index.d.ts +3 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +3 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/meta-index.d.ts +146 -0
- package/dist/types/meta-index.d.ts.map +1 -0
- package/dist/types/meta-index.js +7 -0
- package/dist/types/meta-index.js.map +1 -0
- package/dist/types/project.d.ts +19 -3
- package/dist/types/project.d.ts.map +1 -1
- package/dist/types/project.js +24 -1
- package/dist/types/project.js.map +1 -1
- package/dist/types/task-log.d.ts +208 -0
- package/dist/types/task-log.d.ts.map +1 -0
- package/dist/types/task-log.js +6 -0
- package/dist/types/task-log.js.map +1 -0
- package/dist/types/ui-meta.d.ts +118 -0
- package/dist/types/ui-meta.d.ts.map +1 -0
- package/dist/types/ui-meta.js +7 -0
- package/dist/types/ui-meta.js.map +1 -0
- package/package.json +12 -4
- package/templates/base/agents/base/tsq-architect.md +68 -0
- package/templates/base/agents/base/tsq-dba.md +56 -0
- package/templates/base/agents/base/tsq-designer.md +72 -0
- package/templates/base/agents/base/tsq-developer.md +67 -0
- package/templates/base/agents/base/tsq-qa.md +55 -0
- package/templates/base/agents/base/tsq-security.md +65 -0
- package/templates/base/agents/overlays/domain/general-web/_common.md +11 -0
- package/templates/base/agents/overlays/platform/claude-code.md +12 -0
- package/templates/base/config.template.yaml +213 -0
- package/templates/base/knowledge/checklists/accessibility.md +37 -0
- package/templates/base/knowledge/checklists/architecture-review.md +28 -0
- package/templates/base/knowledge/checklists/database-standards.md +84 -0
- package/templates/base/knowledge/checklists/design-reference.md +97 -0
- package/templates/base/knowledge/checklists/security.md +50 -0
- package/templates/base/knowledge/checklists/ssot-validation.md +19 -0
- package/templates/base/knowledge/domains/_template.md +16 -0
- package/templates/base/knowledge/platforms/_template.md +16 -0
- package/templates/base/knowledge/templates/sequence-report.md +44 -0
- package/templates/base/knowledge/templates/task-result.md +105 -0
- package/templates/base/skills/_template/SKILL.md +59 -0
- package/templates/base/skills/_template/references/_template.md +35 -0
- package/templates/base/skills/_template/rules/_sections.md +34 -0
- package/templates/base/skills/_template/rules/_template.md +32 -0
- package/templates/base/skills/_template/scripts/_template.sh +31 -0
- package/templates/base/skills/architecture/SKILL.md +54 -0
- package/templates/base/skills/architecture/references/adr-template.md +50 -0
- package/templates/base/skills/architecture/references/api-design.md +64 -0
- package/templates/base/skills/backend/node/SKILL.md +81 -0
- package/templates/base/skills/backend/node/rules/async-patterns.md +81 -0
- package/templates/base/skills/backend/node/rules/deployment.md +33 -0
- package/templates/base/skills/backend/node/rules/env-config.md +41 -0
- package/templates/base/skills/backend/node/rules/error-handling.md +83 -0
- package/templates/base/skills/backend/node/rules/hono-app-setup.md +98 -0
- package/templates/base/skills/backend/node/rules/jwt-auth.md +76 -0
- package/templates/base/skills/backend/node/rules/middleware.md +56 -0
- package/templates/base/skills/backend/node/rules/testing.md +82 -0
- package/templates/base/skills/coding/SKILL.md +47 -0
- package/templates/base/skills/coding/rules/patterns.md +81 -0
- package/templates/base/skills/database/SKILL.md +98 -0
- package/templates/base/skills/database/prisma/SKILL.md +57 -0
- package/templates/base/skills/database/prisma/rules/queries.md +133 -0
- package/templates/base/skills/database/prisma/rules/schema-design.md +80 -0
- package/templates/base/skills/frontend/nextjs/SKILL.md +59 -0
- package/templates/base/skills/frontend/nextjs/rules/app-router.md +138 -0
- package/templates/base/skills/frontend/react/SKILL.md +86 -0
- package/templates/base/skills/frontend/react/rules/_sections.md +88 -0
- package/templates/base/skills/frontend/react/rules/anti-patterns.md +67 -0
- package/templates/base/skills/frontend/react/rules/async-api-routes.md +38 -0
- package/templates/base/skills/frontend/react/rules/async-defer-await.md +80 -0
- package/templates/base/skills/frontend/react/rules/async-dependencies.md +36 -0
- package/templates/base/skills/frontend/react/rules/async-parallel.md +28 -0
- package/templates/base/skills/frontend/react/rules/async-suspense-boundaries.md +99 -0
- package/templates/base/skills/frontend/react/rules/bundle-barrel-imports.md +59 -0
- package/templates/base/skills/frontend/react/rules/bundle-defer-third-party.md +49 -0
- package/templates/base/skills/frontend/react/rules/bundle-dynamic-imports.md +35 -0
- package/templates/base/skills/frontend/react/rules/component-conventions.md +74 -0
- package/templates/base/skills/frontend/react/rules/js-combine-iterations.md +32 -0
- package/templates/base/skills/frontend/react/rules/js-early-exit.md +50 -0
- package/templates/base/skills/frontend/react/rules/js-index-maps.md +37 -0
- package/templates/base/skills/frontend/react/rules/js-set-map-lookups.md +24 -0
- package/templates/base/skills/frontend/react/rules/rendering-conditional-render.md +40 -0
- package/templates/base/skills/frontend/react/rules/rendering-content-visibility.md +38 -0
- package/templates/base/skills/frontend/react/rules/rendering-hoist-jsx.md +46 -0
- package/templates/base/skills/frontend/react/rules/rerender-defer-reads.md +39 -0
- package/templates/base/skills/frontend/react/rules/rerender-derived-state.md +29 -0
- package/templates/base/skills/frontend/react/rules/rerender-memo.md +44 -0
- package/templates/base/skills/frontend/react/rules/rerender-transitions.md +40 -0
- package/templates/base/skills/frontend/react/rules/server-after-nonblocking.md +73 -0
- package/templates/base/skills/frontend/react/rules/server-cache-react.md +26 -0
- package/templates/base/skills/frontend/react/rules/server-parallel-fetching.md +79 -0
- package/templates/base/skills/frontend/react/rules/state-location.md +55 -0
- package/templates/base/skills/methodology/bdd/SKILL.md +69 -0
- package/templates/base/skills/methodology/bdd/rules/gherkin-patterns.md +113 -0
- package/templates/base/skills/methodology/ddd/SKILL.md +74 -0
- package/templates/base/skills/methodology/ddd/rules/strategic-patterns.md +98 -0
- package/templates/base/skills/methodology/debugging/SKILL.md +60 -0
- package/templates/base/skills/methodology/debugging/references/root-cause-tracing.md +84 -0
- package/templates/base/skills/methodology/tdd/SKILL.md +66 -0
- package/templates/base/skills/methodology/tdd/rules/real-world-example.md +88 -0
- package/templates/base/skills/methodology/tdd/rules/techniques.md +185 -0
- package/templates/base/skills/planning/SKILL.md +58 -0
- package/templates/base/skills/planning/references/prd-guide.md +47 -0
- package/templates/base/skills/planning/references/requirements-guide.md +46 -0
- package/templates/base/skills/prompt-engineering/SKILL.md +103 -0
- package/templates/base/skills/retrospective/SKILL.md +102 -0
- package/templates/base/skills/security/SKILL.md +55 -0
- package/templates/base/skills/security/rules/owasp-examples.md +119 -0
- package/templates/base/skills/security/scripts/check-secrets.sh +55 -0
- package/templates/base/skills/testing/SKILL.md +63 -0
- package/templates/base/skills/testing/references/testing-patterns.md +103 -0
- package/templates/base/skills/tsq-protocol/SKILL.md +51 -0
- package/templates/base/skills/typescript/SKILL.md +67 -0
- package/templates/base/skills/typescript/rules/type-patterns.md +135 -0
- package/templates/base/skills/typescript/rules/utility-types.md +76 -0
- package/templates/base/skills/ui-design/SKILL.md +70 -0
- package/templates/{common → base}/timsquad/feedback/routing-rules.yaml +1 -1
- package/templates/base/timsquad/process/phase-checklist.yaml +174 -0
- package/templates/{common → base}/timsquad/process/state-machine.xml +12 -0
- package/templates/{common → base}/timsquad/process/workflow-base.xml +124 -0
- package/templates/{common → base}/timsquad/retrospective/metrics/metrics-schema.json +46 -1
- package/templates/platforms/claude-code/CLAUDE.md.template +64 -0
- package/templates/platforms/claude-code/rules/adr-rules.md +32 -0
- package/templates/platforms/claude-code/rules/feedback-routing.md +18 -0
- package/templates/platforms/claude-code/rules/phase-management.md +23 -0
- package/templates/platforms/claude-code/rules/reporting-format.md +26 -0
- package/templates/platforms/claude-code/rules/sequence-management.md +72 -0
- package/templates/platforms/claude-code/rules/workspace-sync.md +33 -0
- package/templates/platforms/claude-code/settings.json +26 -0
- package/templates/project-types/api-backend/config.yaml +227 -0
- package/templates/project-types/api-backend/process/workflow.xml +214 -0
- package/templates/project-types/fintech/config.yaml +151 -0
- package/templates/project-types/fintech/process/workflow.xml +316 -0
- package/templates/project-types/infra/config.yaml +327 -0
- package/templates/project-types/infra/process/workflow.xml +296 -0
- package/templates/project-types/platform/config.yaml +254 -0
- package/templates/project-types/platform/process/workflow.xml +254 -0
- package/templates/project-types/web-app/config.yaml +198 -0
- package/templates/project-types/web-app/process/workflow.xml +210 -0
- package/templates/project-types/web-service/config.yaml +136 -0
- package/templates/project-types/web-service/process/workflow.xml +184 -0
- package/templates/common/CLAUDE.md.template +0 -254
- package/templates/common/claude/agents/tsq-dba.md +0 -290
- package/templates/common/claude/agents/tsq-designer.md +0 -304
- package/templates/common/claude/agents/tsq-developer.md +0 -118
- package/templates/common/claude/agents/tsq-planner.md +0 -90
- package/templates/common/claude/agents/tsq-prompter.md +0 -336
- package/templates/common/claude/agents/tsq-qa.md +0 -134
- package/templates/common/claude/agents/tsq-retro.md +0 -168
- package/templates/common/claude/agents/tsq-security.md +0 -190
- package/templates/common/claude/skills/architecture/SKILL.md +0 -123
- package/templates/common/claude/skills/backend/node/SKILL.md +0 -1015
- package/templates/common/claude/skills/coding/SKILL.md +0 -171
- package/templates/common/claude/skills/database/prisma/SKILL.md +0 -357
- package/templates/common/claude/skills/frontend/nextjs/SKILL.md +0 -279
- package/templates/common/claude/skills/frontend/react/SKILL.md +0 -1729
- package/templates/common/claude/skills/methodology/bdd/SKILL.md +0 -234
- package/templates/common/claude/skills/methodology/ddd/SKILL.md +0 -311
- package/templates/common/claude/skills/methodology/tdd/SKILL.md +0 -512
- package/templates/common/claude/skills/planning/SKILL.md +0 -90
- package/templates/common/claude/skills/security/SKILL.md +0 -234
- package/templates/common/claude/skills/testing/SKILL.md +0 -146
- package/templates/common/claude/skills/typescript/SKILL.md +0 -435
- package/templates/common/config.template.yaml +0 -131
- /package/templates/{common → base}/timsquad/architectures/clean/ARCHITECTURE.md +0 -0
- /package/templates/{common → base}/timsquad/architectures/clean/backend.xml +0 -0
- /package/templates/{common → base}/timsquad/architectures/clean/frontend.xml +0 -0
- /package/templates/{common → base}/timsquad/architectures/fsd/ARCHITECTURE.md +0 -0
- /package/templates/{common → base}/timsquad/architectures/fsd/frontend.xml +0 -0
- /package/templates/{common → base}/timsquad/architectures/hexagonal/ARCHITECTURE.md +0 -0
- /package/templates/{common → base}/timsquad/architectures/hexagonal/backend.xml +0 -0
- /package/templates/{common → base}/timsquad/constraints/competency-framework.xml +0 -0
- /package/templates/{common → base}/timsquad/constraints/ssot-schema.xml +0 -0
- /package/templates/{common → base}/timsquad/feedback/feedback-router.sh +0 -0
- /package/templates/{common → base}/timsquad/generators/data-design.xml +0 -0
- /package/templates/{common → base}/timsquad/generators/prd.xml +0 -0
- /package/templates/{common → base}/timsquad/generators/requirements.xml +0 -0
- /package/templates/{common → base}/timsquad/generators/service-spec.xml +0 -0
- /package/templates/{common → base}/timsquad/logs/_example.md +0 -0
- /package/templates/{common → base}/timsquad/logs/_template.md +0 -0
- /package/templates/{common → base}/timsquad/patterns/cqrs.xml +0 -0
- /package/templates/{common → base}/timsquad/patterns/event-sourcing.xml +0 -0
- /package/templates/{common → base}/timsquad/patterns/repository.xml +0 -0
- /package/templates/{common → base}/timsquad/process/validation-rules.xml +0 -0
- /package/templates/{common → base}/timsquad/retrospective/cycle-report.template.md +0 -0
- /package/templates/{common → base}/timsquad/retrospective/patterns/failure-patterns.md +0 -0
- /package/templates/{common → base}/timsquad/retrospective/patterns/success-patterns.md +0 -0
- /package/templates/{common → base}/timsquad/retrospective/retrospective-config.xml +0 -0
- /package/templates/{common → base}/timsquad/retrospective/retrospective-state.xml +0 -0
- /package/templates/{common → base}/timsquad/ssot/adr/ADR-000-template.md +0 -0
- /package/templates/{common → base}/timsquad/ssot/adr/ADR-001-example.md +0 -0
- /package/templates/{common → base}/timsquad/ssot/data-design.template.md +0 -0
- /package/templates/{common → base}/timsquad/ssot/deployment-spec.template.md +0 -0
- /package/templates/{common → base}/timsquad/ssot/env-config.template.md +0 -0
- /package/templates/{common → base}/timsquad/ssot/error-codes.template.md +0 -0
- /package/templates/{common → base}/timsquad/ssot/functional-spec.template.md +0 -0
- /package/templates/{common → base}/timsquad/ssot/glossary.template.md +0 -0
- /package/templates/{common → base}/timsquad/ssot/integration-spec.template.md +0 -0
- /package/templates/{common → base}/timsquad/ssot/planning.template.md +0 -0
- /package/templates/{common → base}/timsquad/ssot/prd.template.md +0 -0
- /package/templates/{common → base}/timsquad/ssot/requirements.template.md +0 -0
- /package/templates/{common → base}/timsquad/ssot/security-spec.template.md +0 -0
- /package/templates/{common → base}/timsquad/ssot/service-spec.template.md +0 -0
- /package/templates/{common → base}/timsquad/ssot/test-spec.template.md +0 -0
- /package/templates/{common → base}/timsquad/ssot/ui-ux-spec.template.md +0 -0
- /package/templates/{common → base}/timsquad/state/workspace.xml +0 -0
|
@@ -109,6 +109,12 @@
|
|
|
109
109
|
<condition type="required">
|
|
110
110
|
<check>service-spec.md 존재</check>
|
|
111
111
|
</condition>
|
|
112
|
+
<condition type="required">
|
|
113
|
+
<check>workspace.xml 동기화 완료 (모든 Planning TASK가 completed-tasks에 존재)</check>
|
|
114
|
+
</condition>
|
|
115
|
+
<condition type="required">
|
|
116
|
+
<check>workspace.xml handoff 섹션 작성 완료</check>
|
|
117
|
+
</condition>
|
|
112
118
|
<condition type="required">
|
|
113
119
|
<check>User 승인 완료</check>
|
|
114
120
|
</condition>
|
|
@@ -116,6 +122,7 @@
|
|
|
116
122
|
|
|
117
123
|
<on-transition>
|
|
118
124
|
<action>상태 파일 업데이트</action>
|
|
125
|
+
<action>workspace.xml active-session을 tsq-developer로 변경</action>
|
|
119
126
|
<action>Planning Phase 완료 로그 기록</action>
|
|
120
127
|
<notification>User에게 구현 시작 알림</notification>
|
|
121
128
|
</on-transition>
|
|
@@ -123,6 +130,7 @@
|
|
|
123
130
|
<on-failure>
|
|
124
131
|
<action>차단 사유 표시</action>
|
|
125
132
|
<suggestion>누락된 SSOT 문서 작성 필요</suggestion>
|
|
133
|
+
<suggestion>workspace.xml 동기화 필요</suggestion>
|
|
126
134
|
</on-failure>
|
|
127
135
|
</transition>
|
|
128
136
|
|
|
@@ -149,10 +157,14 @@
|
|
|
149
157
|
<condition type="required">
|
|
150
158
|
<check>작업 로그 기록 완료</check>
|
|
151
159
|
</condition>
|
|
160
|
+
<condition type="required">
|
|
161
|
+
<check>workspace.xml 동기화 완료 (모든 Implementation TASK가 completed-tasks에 존재)</check>
|
|
162
|
+
</condition>
|
|
152
163
|
</conditions>
|
|
153
164
|
|
|
154
165
|
<on-transition>
|
|
155
166
|
<action>상태 파일 업데이트</action>
|
|
167
|
+
<action>workspace.xml active-session을 tsq-qa로 변경</action>
|
|
156
168
|
<action>QA 에이전트에게 리뷰 요청 전달</action>
|
|
157
169
|
</on-transition>
|
|
158
170
|
</transition>
|
|
@@ -165,8 +165,132 @@
|
|
|
165
165
|
<rule id="mandatory-logging">
|
|
166
166
|
모든 작업은 로그 기록 필수. 미기록 시 작업 미완료로 간주.
|
|
167
167
|
</rule>
|
|
168
|
+
<rule id="mandatory-workspace-sync">
|
|
169
|
+
모든 TASK 완료 시 workspace.xml 업데이트 필수. 미동기화 시 작업 미완료로 간주.
|
|
170
|
+
</rule>
|
|
171
|
+
<rule id="phase-checklist">
|
|
172
|
+
Phase 전환 시 phase-checklist.yaml의 해당 체크리스트를 모두 통과해야 함.
|
|
173
|
+
</rule>
|
|
168
174
|
</global-rules>
|
|
169
175
|
|
|
176
|
+
<!-- 에이전트 위임 실패 폴백 전략 -->
|
|
177
|
+
<agent-fallback-strategy>
|
|
178
|
+
<description>
|
|
179
|
+
서브에이전트 실행 실패 시 (Bash 권한 거부, 환경 미설정 등) 자동 폴백 전략.
|
|
180
|
+
역할 분리 원칙을 최대한 유지하되, 프로세스 중단을 방지.
|
|
181
|
+
</description>
|
|
182
|
+
|
|
183
|
+
<fallback-chain>
|
|
184
|
+
<step id="1" action="retry">
|
|
185
|
+
<description>동일 에이전트로 1회 재시도</description>
|
|
186
|
+
<max-retries>1</max-retries>
|
|
187
|
+
<wait>5s</wait>
|
|
188
|
+
</step>
|
|
189
|
+
<step id="2" action="fallback-agent">
|
|
190
|
+
<description>폴백 에이전트로 위임 (workflow에 정의된 fallback)</description>
|
|
191
|
+
<example>tsq-frontend 실패 → tsq-developer로 폴백</example>
|
|
192
|
+
<example>tsq-dba 실패 → tsq-planner(architect)로 폴백</example>
|
|
193
|
+
</step>
|
|
194
|
+
<step id="3" action="pm-direct">
|
|
195
|
+
<description>PM(현재 에이전트)이 직접 처리</description>
|
|
196
|
+
<conditions>
|
|
197
|
+
<condition>폴백 에이전트도 실패한 경우</condition>
|
|
198
|
+
<condition>환경 자체 문제 (권한, 의존성 미설치)</condition>
|
|
199
|
+
</conditions>
|
|
200
|
+
<logging>
|
|
201
|
+
역할 분리 원칙 위반 사유를 로그에 기록.
|
|
202
|
+
회고 시 개선 대상으로 플래그.
|
|
203
|
+
</logging>
|
|
204
|
+
</step>
|
|
205
|
+
<step id="4" action="user-notify">
|
|
206
|
+
<description>모든 폴백 실패 시 사용자에게 알림</description>
|
|
207
|
+
<message>에이전트 실행 환경 문제 보고. 수동 개입 요청.</message>
|
|
208
|
+
</step>
|
|
209
|
+
</fallback-chain>
|
|
210
|
+
|
|
211
|
+
<!-- 환경 사전 요구사항 -->
|
|
212
|
+
<environment-prerequisites>
|
|
213
|
+
<instruction>
|
|
214
|
+
.timsquad/knowledge/setup.md에 프로젝트 환경 요구사항을 문서화하세요.
|
|
215
|
+
에이전트 실행 전 이 파일을 확인하여 누락된 의존성을 사전 설치합니다.
|
|
216
|
+
</instruction>
|
|
217
|
+
<common-requirements>
|
|
218
|
+
<requirement>Node.js 18+</requirement>
|
|
219
|
+
<requirement>패키지 매니저 (npm/pnpm/bun)</requirement>
|
|
220
|
+
<requirement>corepack enable (pnpm 사용 시)</requirement>
|
|
221
|
+
</common-requirements>
|
|
222
|
+
</environment-prerequisites>
|
|
223
|
+
</agent-fallback-strategy>
|
|
224
|
+
|
|
225
|
+
<!-- 대용량 문서 분할 가이드 -->
|
|
226
|
+
<large-document-guide>
|
|
227
|
+
<description>
|
|
228
|
+
1,000 lines 이상 예상되는 SSOT 문서는 토큰 초과를 방지하기 위해 분할 작성합니다.
|
|
229
|
+
</description>
|
|
230
|
+
<rules>
|
|
231
|
+
<rule id="split-threshold">
|
|
232
|
+
단일 문서가 800 lines 이상 예상되면 섹션별 분할 작성
|
|
233
|
+
</rule>
|
|
234
|
+
<rule id="domain-split">
|
|
235
|
+
도메인별 분리: 예) functional-spec.md → FS-AUTH.md, FS-MATCH.md, FS-PAYMENT.md
|
|
236
|
+
</rule>
|
|
237
|
+
<rule id="sequential-append">
|
|
238
|
+
분할 문서는 순차 append 방식으로 작성 (한 번에 전체 작성 금지)
|
|
239
|
+
</rule>
|
|
240
|
+
<rule id="index-file">
|
|
241
|
+
분할된 문서들의 인덱스 파일 유지 (예: functional-spec.md에 각 분할 파일 링크)
|
|
242
|
+
</rule>
|
|
243
|
+
</rules>
|
|
244
|
+
<split-patterns>
|
|
245
|
+
<pattern document="functional-spec.md">
|
|
246
|
+
<split-by>도메인 (인증, 매칭, 결제 등)</split-by>
|
|
247
|
+
<naming>FS-{DOMAIN}.md (예: FS-AUTH.md)</naming>
|
|
248
|
+
</pattern>
|
|
249
|
+
<pattern document="service-spec.md">
|
|
250
|
+
<split-by>API 그룹 (auth, users, resources 등)</split-by>
|
|
251
|
+
<naming>API-{GROUP}.md (예: API-AUTH.md)</naming>
|
|
252
|
+
</pattern>
|
|
253
|
+
<pattern document="data-design.md">
|
|
254
|
+
<split-by>도메인 (사용자, 매칭, 트랜잭션 등)</split-by>
|
|
255
|
+
<naming>DD-{DOMAIN}.md (예: DD-USERS.md)</naming>
|
|
256
|
+
</pattern>
|
|
257
|
+
</split-patterns>
|
|
258
|
+
</large-document-guide>
|
|
259
|
+
|
|
260
|
+
<!-- SSOT 교차 검증 규칙 -->
|
|
261
|
+
<ssot-cross-validation>
|
|
262
|
+
<description>
|
|
263
|
+
SSOT 문서 간 일관성을 검증하는 규칙.
|
|
264
|
+
에이전트(특히 tsq-qa)가 검증 시 적용.
|
|
265
|
+
</description>
|
|
266
|
+
<rules>
|
|
267
|
+
<rule id="fr-id-consistency">
|
|
268
|
+
<check>requirements.md의 FR-XXX ID가 functional-spec.md에서 참조됨</check>
|
|
269
|
+
<severity>Major</severity>
|
|
270
|
+
</rule>
|
|
271
|
+
<rule id="api-endpoint-match">
|
|
272
|
+
<check>service-spec.md의 API 엔드포인트가 구현 코드와 일치</check>
|
|
273
|
+
<severity>Critical</severity>
|
|
274
|
+
</rule>
|
|
275
|
+
<rule id="error-code-match">
|
|
276
|
+
<check>error-codes.md의 에러 코드가 구현 코드에서 올바르게 사용됨</check>
|
|
277
|
+
<severity>Major</severity>
|
|
278
|
+
</rule>
|
|
279
|
+
<rule id="data-model-match">
|
|
280
|
+
<check>data-design.md의 테이블/필드가 실제 스키마(마이그레이션)와 일치</check>
|
|
281
|
+
<severity>Critical</severity>
|
|
282
|
+
</rule>
|
|
283
|
+
<rule id="glossary-consistency">
|
|
284
|
+
<check>glossary.md의 용어가 모든 SSOT 문서에서 일관되게 사용됨</check>
|
|
285
|
+
<severity>Minor</severity>
|
|
286
|
+
</rule>
|
|
287
|
+
<rule id="req-to-test-traceability">
|
|
288
|
+
<check>requirements.md의 각 FR이 test-spec.md에서 테스트 케이스로 매핑됨</check>
|
|
289
|
+
<severity>Major</severity>
|
|
290
|
+
</rule>
|
|
291
|
+
</rules>
|
|
292
|
+
</ssot-cross-validation>
|
|
293
|
+
|
|
170
294
|
<!-- User 승인 필요 지점 -->
|
|
171
295
|
<user-checkpoints>
|
|
172
296
|
<checkpoint phase="planning" event="SSOT 완료">User 승인 필요</checkpoint>
|
|
@@ -103,6 +103,50 @@
|
|
|
103
103
|
"required": ["id", "name", "frequency"]
|
|
104
104
|
},
|
|
105
105
|
|
|
106
|
+
"taskMetrics": {
|
|
107
|
+
"type": "object",
|
|
108
|
+
"description": "Task JSON 기반 태스크 수준 메트릭",
|
|
109
|
+
"properties": {
|
|
110
|
+
"total": {
|
|
111
|
+
"type": "integer",
|
|
112
|
+
"description": "총 태스크 수"
|
|
113
|
+
},
|
|
114
|
+
"completed": {
|
|
115
|
+
"type": "integer",
|
|
116
|
+
"description": "완료 태스크 수"
|
|
117
|
+
},
|
|
118
|
+
"failed": {
|
|
119
|
+
"type": "integer",
|
|
120
|
+
"description": "실패 태스크 수"
|
|
121
|
+
},
|
|
122
|
+
"success_rate": {
|
|
123
|
+
"type": "number",
|
|
124
|
+
"minimum": 0,
|
|
125
|
+
"maximum": 100,
|
|
126
|
+
"description": "성공률 (%)"
|
|
127
|
+
},
|
|
128
|
+
"total_files_changed": {
|
|
129
|
+
"type": "integer",
|
|
130
|
+
"description": "총 변경 파일 수"
|
|
131
|
+
},
|
|
132
|
+
"avg_files_per_task": {
|
|
133
|
+
"type": "number",
|
|
134
|
+
"description": "태스크당 평균 변경 파일 수"
|
|
135
|
+
},
|
|
136
|
+
"semantic_coverage": {
|
|
137
|
+
"type": "number",
|
|
138
|
+
"minimum": 0,
|
|
139
|
+
"maximum": 100,
|
|
140
|
+
"description": "semantic 데이터 채움 비율 (%)"
|
|
141
|
+
},
|
|
142
|
+
"error_types": {
|
|
143
|
+
"type": "object",
|
|
144
|
+
"additionalProperties": { "type": "integer" },
|
|
145
|
+
"description": "에러 타입별 카운트 (build_failure, test_failure 등)"
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
},
|
|
149
|
+
|
|
106
150
|
"improvement": {
|
|
107
151
|
"type": "object",
|
|
108
152
|
"properties": {
|
|
@@ -160,7 +204,8 @@
|
|
|
160
204
|
"total_tasks": { "type": "integer" },
|
|
161
205
|
"success_rate": { "type": "number" },
|
|
162
206
|
"avg_revision_count": { "type": "number" },
|
|
163
|
-
"level_3_feedback_count": { "type": "integer" }
|
|
207
|
+
"level_3_feedback_count": { "type": "integer" },
|
|
208
|
+
"task_metrics": { "$ref": "#/definitions/taskMetrics" }
|
|
164
209
|
}
|
|
165
210
|
},
|
|
166
211
|
"agents": {
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# {{PROJECT_NAME}}
|
|
2
|
+
|
|
3
|
+
> TimSquad v3.1으로 관리되는 프로젝트입니다.
|
|
4
|
+
|
|
5
|
+
<timsquad-initialization>
|
|
6
|
+
이 프로젝트는 TimSquad 프레임워크를 사용합니다.
|
|
7
|
+
`.timsquad/` 디렉토리가 없으면 진행을 중단하고 사용자에게 알리세요:
|
|
8
|
+
"TimSquad 프로젝트가 초기화되지 않았습니다. `tsq init --type {{PROJECT_TYPE}}`을 실행하세요."
|
|
9
|
+
</timsquad-initialization>
|
|
10
|
+
|
|
11
|
+
## 역할: Project Manager
|
|
12
|
+
|
|
13
|
+
당신은 이 프로젝트의 PM입니다. 사용자와 직접 소통하며, 작업을 분류하여 서브에이전트에 위임합니다.
|
|
14
|
+
|
|
15
|
+
### 핵심 책임
|
|
16
|
+
1. **요구사항 수집** — 사용자와 소통, 진행 보고, 승인 요청
|
|
17
|
+
2. **작업 위임** — 적절한 서브에이전트에게 배분
|
|
18
|
+
3. **기획** — 최초 기획 + 변경 시 (`skills/planning/` 활용)
|
|
19
|
+
4. **리뷰** — architect 보고서 기반 시퀀스 검토
|
|
20
|
+
5. **SSOT 관리** — 문서 일관성과 최신성 유지
|
|
21
|
+
6. **피드백 라우팅** — L1/L2/L3 분류 후 적절한 담당자 전달
|
|
22
|
+
|
|
23
|
+
### 활성 서브에이전트
|
|
24
|
+
|
|
25
|
+
{{ACTIVE_AGENTS}}
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## 필수 참조 파일
|
|
30
|
+
|
|
31
|
+
작업 전 반드시 확인:
|
|
32
|
+
- `.timsquad/config.yaml` — 프로젝트 설정
|
|
33
|
+
- `.timsquad/state/current-phase.json` — 현재 Phase
|
|
34
|
+
- `.timsquad/state/workspace.xml` — 실시간 작업 상태
|
|
35
|
+
- `.timsquad/ssot/` — SSOT 문서들
|
|
36
|
+
- `.claude/knowledge/` — 참조 지식
|
|
37
|
+
|
|
38
|
+
## 서브에이전트 위임 규칙
|
|
39
|
+
|
|
40
|
+
{{DELEGATION_RULES}}
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## 작업 원칙
|
|
45
|
+
|
|
46
|
+
1. 요구사항에 여러 해석이 가능하면 조용히 선택하지 말고 **선택지를 제시**하라
|
|
47
|
+
2. 구현 전에 **검증 기준**(테스트 or 확인 방법)을 먼저 명시하라
|
|
48
|
+
|
|
49
|
+
## 금지 사항
|
|
50
|
+
|
|
51
|
+
- SSOT 문서 없이 구현 시작 금지
|
|
52
|
+
- User 승인 없이 Level 3 변경 금지
|
|
53
|
+
- 에이전트 간 직접 통신 금지 (모든 조율은 PM 통해)
|
|
54
|
+
- 로그 기록 없이 작업 완료 선언 금지
|
|
55
|
+
- Phase 전환 조건 미충족 시 다음 Phase 진행 금지
|
|
56
|
+
|
|
57
|
+
## 상세 규칙
|
|
58
|
+
|
|
59
|
+
Phase 관리, 시퀀스 관리, workspace 동기화, 피드백 라우팅, ADR, 보고 형식 등
|
|
60
|
+
상세 규칙은 `.claude/rules/`에 정의되어 있습니다. 관련 작업 시 자동 로드됩니다.
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
**타입**: {{PROJECT_TYPE}} | **레벨**: {{PROJECT_LEVEL}} | **초기화**: {{INIT_DATE}}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: ADR (Architecture Decision Record) 작성 규칙.
|
|
3
|
+
globs:
|
|
4
|
+
- ".timsquad/ssot/ADR-*"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# ADR (Architecture Decision Record)
|
|
8
|
+
|
|
9
|
+
## 작성 트리거
|
|
10
|
+
- 기술 스택 선택/변경
|
|
11
|
+
- 아키텍처 패턴 결정
|
|
12
|
+
- 외부 서비스 연동 방식 결정
|
|
13
|
+
- 데이터 모델 중요 결정 (비정규화 등)
|
|
14
|
+
|
|
15
|
+
## 형식
|
|
16
|
+
```markdown
|
|
17
|
+
## ADR-XXX: {결정 제목}
|
|
18
|
+
|
|
19
|
+
### Context
|
|
20
|
+
{결정이 필요한 배경}
|
|
21
|
+
|
|
22
|
+
### Decision
|
|
23
|
+
{결정 내용}
|
|
24
|
+
|
|
25
|
+
### Consequences
|
|
26
|
+
- 장점: ...
|
|
27
|
+
- 단점: ...
|
|
28
|
+
- 대응: ...
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## 저장 위치
|
|
32
|
+
`.timsquad/ssot/ADR-XXX.md`
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: 피드백 라우팅 규칙. Level 1/2/3 분류 기준과 라우팅.
|
|
3
|
+
globs:
|
|
4
|
+
- ".timsquad/feedback/**"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# 피드백 라우팅
|
|
8
|
+
|
|
9
|
+
| Level | 심각도 | 트리거 | 라우팅 | 액션 |
|
|
10
|
+
|-------|--------|--------|--------|------|
|
|
11
|
+
| L1 | Minor/Major | 테스트 실패, 린트 오류, 코드 스타일 | @tsq-developer | 수정 요청 |
|
|
12
|
+
| L2 | Major | API 불일치, 설계 문제, 성능 구조 | PM 직접 처리 | SSOT 수정 |
|
|
13
|
+
| L3 | Critical | 요구사항 오류, 비즈니스 로직, 스코프 변경 | PM → 사용자 | 승인 요청 |
|
|
14
|
+
|
|
15
|
+
## 규칙
|
|
16
|
+
- User 승인 없이 Level 3 변경 금지
|
|
17
|
+
- 모든 피드백에 Level 분류 필수
|
|
18
|
+
- `tsq feedback "{설명}"` 으로 기록 (직접 파일 생성 금지)
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Phase 관리 규칙. Phase 전환, 허용/금지 작업, 종료 조건.
|
|
3
|
+
globs:
|
|
4
|
+
- ".timsquad/state/**"
|
|
5
|
+
- ".timsquad/ssot/**"
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Phase 관리
|
|
9
|
+
|
|
10
|
+
현재 Phase: `.timsquad/state/current-phase.json` 확인
|
|
11
|
+
|
|
12
|
+
| Phase | 허용 작업 | 금지 | 종료 조건 |
|
|
13
|
+
|-------|----------|------|----------|
|
|
14
|
+
| planning | SSOT 작성, 아키텍처 설계, ADR | 코드 구현 | User 승인 |
|
|
15
|
+
| design | UI/UX 설계, 와이어프레임 | 코드 구현 | User 승인 |
|
|
16
|
+
| implementation | 코드 구현, 테스트 작성 | SSOT 임의 수정 | 테스트+린트 통과 |
|
|
17
|
+
| review | 코드 리뷰, 검증 | 코드 직접 수정 | QA 체크리스트 통과 |
|
|
18
|
+
| security | 보안 검토 | 코드 직접 수정 | Critical/High 취약점 없음 |
|
|
19
|
+
| deployment | 배포 | - | 배포 완료 |
|
|
20
|
+
|
|
21
|
+
## Phase 종료 시
|
|
22
|
+
- `skills/retrospective/SKILL.md`를 활용하여 회고 실행
|
|
23
|
+
- Phase 전환 조건 미충족 시 다음 Phase 진행 금지
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: PM 진행 상황 보고 형식.
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# 보고 형식
|
|
6
|
+
|
|
7
|
+
## 진행 상황 보고 (사용자에게)
|
|
8
|
+
|
|
9
|
+
```markdown
|
|
10
|
+
## 현재 상태
|
|
11
|
+
- Phase: {current_phase}
|
|
12
|
+
- 진행률: {progress}%
|
|
13
|
+
|
|
14
|
+
## 완료된 작업
|
|
15
|
+
- {completed_task_1}
|
|
16
|
+
- {completed_task_2}
|
|
17
|
+
|
|
18
|
+
## 진행 중인 작업
|
|
19
|
+
- {in_progress_task}
|
|
20
|
+
|
|
21
|
+
## 다음 단계
|
|
22
|
+
- {next_step}
|
|
23
|
+
|
|
24
|
+
## 필요한 결정/승인
|
|
25
|
+
- {decision_needed} (있는 경우)
|
|
26
|
+
```
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: 시퀀스 관리 규칙. 네이밍, 자동화 파이프라인, 수동 모드.
|
|
3
|
+
globs:
|
|
4
|
+
- ".timsquad/logs/**"
|
|
5
|
+
- ".timsquad/state/workspace.xml"
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# 시퀀스 관리
|
|
9
|
+
|
|
10
|
+
태스크를 시퀀스로 그룹화하여 관리합니다.
|
|
11
|
+
|
|
12
|
+
## PM 자동 등록 프로토콜
|
|
13
|
+
|
|
14
|
+
사용자가 작업을 요청하면 `.timsquad/config.yaml`의 `naming` 섹션을 읽고
|
|
15
|
+
Phase/Sequence/Task ID를 **자동 생성**하여 등록하세요. 사용자에게 수동 명령을 요구하지 마세요.
|
|
16
|
+
|
|
17
|
+
**네이밍 규칙** (config.yaml → naming 참조):
|
|
18
|
+
- Phase ID: `P{N}` — planning=P1, design=P2, implementation=P3, review=P4, security=P5, deployment=P6
|
|
19
|
+
- Sequence ID: `P{N}-S{NNN}` — 페이즈 내 시퀀스 번호 (zero-padded)
|
|
20
|
+
- Task ID: `P{N}-S{NNN}-T{NNN}` — 시퀀스 내 태스크 번호 (zero-padded)
|
|
21
|
+
- 번호는 `tsq wf status`로 기존 시퀀스를 확인한 후 이어서 부여
|
|
22
|
+
|
|
23
|
+
**흐름 예시**:
|
|
24
|
+
```
|
|
25
|
+
사용자: "인증 기능이랑 결제 API 구현해줘"
|
|
26
|
+
PM 내부 처리:
|
|
27
|
+
1. config.yaml → naming.phase.order → implementation = P3
|
|
28
|
+
2. tsq wf set-phase P3
|
|
29
|
+
3. tsq wf add-sequence P3-S001 --agents developer,dba
|
|
30
|
+
4. tsq wf add-sequence P3-S002 --agents developer,security
|
|
31
|
+
5. @tsq-developer "P3-S001: 인증 구현"
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## 자동화 파이프라인 (데몬 기반)
|
|
35
|
+
|
|
36
|
+
```
|
|
37
|
+
SessionStart → tsq daemon start
|
|
38
|
+
├─ JSONL 스트림 실시간 감시
|
|
39
|
+
├─ 인메모리 메타인덱스 로드
|
|
40
|
+
└─ 소스 파일 변경 감시
|
|
41
|
+
|
|
42
|
+
SubagentStop 감지 시:
|
|
43
|
+
├─ L1 태스크 로그 자동 생성
|
|
44
|
+
├─ workflow.json 업데이트
|
|
45
|
+
└─ 시퀀스 완료 → L2 자동 → 페이즈 완료 → L3 + Gate + 회고
|
|
46
|
+
|
|
47
|
+
SessionEnd → tsq daemon stop
|
|
48
|
+
├─ worklog markdown 생성
|
|
49
|
+
├─ 최종 메트릭 갱신
|
|
50
|
+
└─ 정리
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## 자동화 토글
|
|
54
|
+
```bash
|
|
55
|
+
tsq wf config sequence_log off # L2 자동 생성 끄기
|
|
56
|
+
tsq wf config retro off # 자동 회고 끄기
|
|
57
|
+
tsq wf status # 현재 상태 확인
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## 수동 모드 (자동화 꺼진 경우)
|
|
61
|
+
|
|
62
|
+
### Architect 호출
|
|
63
|
+
시퀀스 완료 후 `@tsq-architect` 호출:
|
|
64
|
+
- `seq_id`, `task_logs`, `ssot_refs` 필수
|
|
65
|
+
- 보고서 저장: `.timsquad/reports/{SEQ-ID}-report.md`
|
|
66
|
+
|
|
67
|
+
### 수동 L2/L3 생성
|
|
68
|
+
```bash
|
|
69
|
+
tsq log sequence create {SEQ-ID} --phase {phase} --report {path} --verdict proceed
|
|
70
|
+
tsq log phase create {phase-id} --sequences "SEQ-01,SEQ-02"
|
|
71
|
+
tsq log phase gate {phase-id}
|
|
72
|
+
```
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: workspace.xml 실시간 상태 관리 규칙.
|
|
3
|
+
globs:
|
|
4
|
+
- ".timsquad/state/workspace.xml"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Workspace 동기화
|
|
8
|
+
|
|
9
|
+
`.timsquad/state/workspace.xml`은 에이전트 간 실시간 상태 공유 파일입니다.
|
|
10
|
+
|
|
11
|
+
## 필수 업데이트 시점
|
|
12
|
+
- 작업 시작 시: `<current-task>` 업데이트
|
|
13
|
+
- 작업 완료 시: `<completed-tasks>`로 이동, `<pending-tasks>` 업데이트
|
|
14
|
+
- 에이전트 전환 시: `<handoff>` 작성
|
|
15
|
+
- 이슈 발생 시: `<blockers>` 추가
|
|
16
|
+
- 승인 필요 시: `<pending-approvals>` 추가
|
|
17
|
+
|
|
18
|
+
## 주요 노드
|
|
19
|
+
```
|
|
20
|
+
/workspace/current-task - 현재 진행 중인 작업
|
|
21
|
+
/workspace/pending-tasks - 대기 중인 작업 목록
|
|
22
|
+
/workspace/completed-tasks - 완료된 작업 (최근 10개)
|
|
23
|
+
/workspace/handoff - 에이전트 간 인수인계 정보
|
|
24
|
+
/workspace/blockers - 블로킹 이슈
|
|
25
|
+
/workspace/pending-approvals - 승인 대기 항목
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Handoff 프로토콜
|
|
29
|
+
에이전트 전환 시 `<handoff>` 섹션에 기록:
|
|
30
|
+
- from/to: 이전/다음 에이전트
|
|
31
|
+
- message: 전달 사항 (특이사항, 주의점)
|
|
32
|
+
- attachments: 참조할 SSOT 문서
|
|
33
|
+
- action-items: 해야 할 작업 목록
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
"hooks": {
|
|
3
|
+
"SessionStart": [
|
|
4
|
+
{
|
|
5
|
+
"hooks": [
|
|
6
|
+
{
|
|
7
|
+
"type": "command",
|
|
8
|
+
"command": "tsq daemon start --jsonl \"$CLAUDE_TRANSCRIPT_PATH\" 2>/dev/null || true",
|
|
9
|
+
"timeout": 5
|
|
10
|
+
}
|
|
11
|
+
]
|
|
12
|
+
}
|
|
13
|
+
],
|
|
14
|
+
"SessionEnd": [
|
|
15
|
+
{
|
|
16
|
+
"hooks": [
|
|
17
|
+
{
|
|
18
|
+
"type": "command",
|
|
19
|
+
"command": "tsq daemon stop 2>/dev/null || true",
|
|
20
|
+
"timeout": 10
|
|
21
|
+
}
|
|
22
|
+
]
|
|
23
|
+
}
|
|
24
|
+
]
|
|
25
|
+
}
|
|
26
|
+
}
|