timsquad 2.1.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 +124 -724
- 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 +235 -14
- 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/init.d.ts.map +1 -1
- package/dist/commands/init.js +107 -20
- 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 +965 -0
- 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 +239 -4
- package/dist/commands/metrics.js.map +1 -1
- package/dist/commands/retro.js +154 -6
- package/dist/commands/retro.js.map +1 -1
- 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 +20 -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 +109 -20
- 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 +7 -0
- package/dist/types/feedback.d.ts.map +1 -1
- package/dist/types/feedback.js +1 -1
- 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 +18 -2
- package/dist/types/project.d.ts.map +1 -1
- package/dist/types/project.js +21 -0
- 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/{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 -311
- package/templates/common/claude/agents/tsq-designer.md +0 -323
- package/templates/common/claude/agents/tsq-developer.md +0 -177
- package/templates/common/claude/agents/tsq-planner.md +0 -190
- package/templates/common/claude/agents/tsq-prompter.md +0 -356
- package/templates/common/claude/agents/tsq-qa.md +0 -168
- package/templates/common/claude/agents/tsq-retro.md +0 -193
- package/templates/common/claude/agents/tsq-security.md +0 -221
- package/templates/common/claude/hooks/auto-metrics.sh +0 -165
- package/templates/common/claude/hooks/auto-worklog.sh +0 -245
- package/templates/common/claude/hooks/event-logger.sh +0 -208
- package/templates/common/claude/settings.json +0 -86
- 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 -132
- /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/phase-checklist.yaml +0 -0
- /package/templates/{common → base}/timsquad/process/state-machine.xml +0 -0
- /package/templates/{common → base}/timsquad/process/validation-rules.xml +0 -0
- /package/templates/{common → base}/timsquad/process/workflow-base.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
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Skill & Knowledge selective deployment.
|
|
3
|
+
* Mirrors agent-generator.ts pattern — only deploy what the project type needs.
|
|
4
|
+
*/
|
|
5
|
+
import type { TimsquadConfig } from '../types/config.js';
|
|
6
|
+
import type { TemplateVariables } from './template.js';
|
|
7
|
+
/**
|
|
8
|
+
* Get skills to deploy for a project.
|
|
9
|
+
* Combines BASE_SKILLS + type-specific + domain-specific + stack-specific skills.
|
|
10
|
+
*/
|
|
11
|
+
export declare function getActiveSkills(config: TimsquadConfig): string[];
|
|
12
|
+
/**
|
|
13
|
+
* Deploy only active skills from templates to project.
|
|
14
|
+
* Each skill is a directory: SKILL.md + optional rules/
|
|
15
|
+
*/
|
|
16
|
+
export declare function deploySkills(templatesDir: string, destSkillsDir: string, activeSkills: string[], variables: TemplateVariables): Promise<void>;
|
|
17
|
+
/**
|
|
18
|
+
* Validate skill structure and return warnings.
|
|
19
|
+
* - SKILL.md should be ≤120 lines (concise index, not exhaustive doc)
|
|
20
|
+
*/
|
|
21
|
+
export declare function validateSkillStructure(skillDir: string): string[];
|
|
22
|
+
/**
|
|
23
|
+
* Get knowledge files to deploy for a project.
|
|
24
|
+
* Combines BASE_KNOWLEDGE + type-specific + domain-specific knowledge.
|
|
25
|
+
*/
|
|
26
|
+
export declare function getActiveKnowledge(config: TimsquadConfig): string[];
|
|
27
|
+
/**
|
|
28
|
+
* Deploy only active knowledge files from templates to project.
|
|
29
|
+
* Each knowledge item maps to a .md file under knowledge/.
|
|
30
|
+
*/
|
|
31
|
+
export declare function deployKnowledge(templatesDir: string, destKnowledgeDir: string, activeKnowledge: string[], variables: TemplateVariables): Promise<void>;
|
|
32
|
+
//# sourceMappingURL=skill-generator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill-generator.d.ts","sourceRoot":"","sources":["../../src/lib/skill-generator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAMzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAOvD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,EAAE,CAShE;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAChC,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,MAAM,EAAE,EACtB,SAAS,EAAE,iBAAiB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAuBf;AAsCD;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAiBjE;AA+ED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,EAAE,CAOnE;AAED;;;GAGG;AACH,wBAAsB,eAAe,CACnC,YAAY,EAAE,MAAM,EACpB,gBAAgB,EAAE,MAAM,EACxB,eAAe,EAAE,MAAM,EAAE,EACzB,SAAS,EAAE,iBAAiB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAiBf"}
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Skill & Knowledge selective deployment.
|
|
3
|
+
* Mirrors agent-generator.ts pattern — only deploy what the project type needs.
|
|
4
|
+
*/
|
|
5
|
+
import path from 'path';
|
|
6
|
+
import fs from 'fs-extra';
|
|
7
|
+
import { BASE_SKILLS, SKILL_PRESETS, BASE_KNOWLEDGE, KNOWLEDGE_PRESETS, DOMAIN_SKILL_MAP, DOMAIN_KNOWLEDGE_MAP, STACK_SKILL_MAP, } from '../types/config.js';
|
|
8
|
+
import { substituteVariables } from './template.js';
|
|
9
|
+
// ─────────────────────────────────────────────────
|
|
10
|
+
// Skills
|
|
11
|
+
// ─────────────────────────────────────────────────
|
|
12
|
+
/**
|
|
13
|
+
* Get skills to deploy for a project.
|
|
14
|
+
* Combines BASE_SKILLS + type-specific + domain-specific + stack-specific skills.
|
|
15
|
+
*/
|
|
16
|
+
export function getActiveSkills(config) {
|
|
17
|
+
const typeSkills = SKILL_PRESETS[config.project.type] || [];
|
|
18
|
+
const domainSkills = config.project.domain
|
|
19
|
+
? (DOMAIN_SKILL_MAP[config.project.domain] || [])
|
|
20
|
+
: [];
|
|
21
|
+
const stackSkills = (config.project.stack || [])
|
|
22
|
+
.flatMap(s => STACK_SKILL_MAP[s] || []);
|
|
23
|
+
return [...new Set([...BASE_SKILLS, ...typeSkills, ...domainSkills, ...stackSkills])];
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Deploy only active skills from templates to project.
|
|
27
|
+
* Each skill is a directory: SKILL.md + optional rules/
|
|
28
|
+
*/
|
|
29
|
+
export async function deploySkills(templatesDir, destSkillsDir, activeSkills, variables) {
|
|
30
|
+
const srcSkillsDir = path.join(templatesDir, 'base', 'skills');
|
|
31
|
+
if (!await fs.pathExists(srcSkillsDir))
|
|
32
|
+
return;
|
|
33
|
+
// Always deploy _template/
|
|
34
|
+
const templateDir = path.join(srcSkillsDir, '_template');
|
|
35
|
+
if (await fs.pathExists(templateDir)) {
|
|
36
|
+
await copySkillDir(templateDir, path.join(destSkillsDir, '_template'), variables);
|
|
37
|
+
}
|
|
38
|
+
// Deploy active skills
|
|
39
|
+
for (const skill of activeSkills) {
|
|
40
|
+
const srcPath = path.join(srcSkillsDir, skill);
|
|
41
|
+
const destPath = path.join(destSkillsDir, skill);
|
|
42
|
+
if (!await fs.pathExists(srcPath))
|
|
43
|
+
continue;
|
|
44
|
+
await copySkillDir(srcPath, destPath, variables);
|
|
45
|
+
}
|
|
46
|
+
// Remove inactive skills (if re-deploying / upgrading)
|
|
47
|
+
await removeInactiveSkills(destSkillsDir, activeSkills);
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Copy a skill directory (SKILL.md + rules/ + references/ + scripts/)
|
|
51
|
+
*/
|
|
52
|
+
async function copySkillDir(srcDir, destDir, variables) {
|
|
53
|
+
await fs.ensureDir(destDir);
|
|
54
|
+
const entries = await fs.readdir(srcDir, { withFileTypes: true });
|
|
55
|
+
for (const entry of entries) {
|
|
56
|
+
const srcPath = path.join(srcDir, entry.name);
|
|
57
|
+
const destPath = path.join(destDir, entry.name);
|
|
58
|
+
if (entry.isDirectory()) {
|
|
59
|
+
await copySkillDir(srcPath, destPath, variables);
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
const ext = path.extname(entry.name).toLowerCase();
|
|
63
|
+
const textExts = ['.md', '.yaml', '.yml', '.json', '.xml', '.txt'];
|
|
64
|
+
if (textExts.includes(ext)) {
|
|
65
|
+
const content = await fs.readFile(srcPath, 'utf-8');
|
|
66
|
+
const processed = substituteVariables(content, variables);
|
|
67
|
+
await fs.writeFile(destPath, processed, 'utf-8');
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
await fs.copy(srcPath, destPath);
|
|
71
|
+
// Set executable permission for shell scripts
|
|
72
|
+
if (ext === '.sh') {
|
|
73
|
+
await fs.chmod(destPath, 0o755);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Validate skill structure and return warnings.
|
|
81
|
+
* - SKILL.md should be ≤120 lines (concise index, not exhaustive doc)
|
|
82
|
+
*/
|
|
83
|
+
export function validateSkillStructure(skillDir) {
|
|
84
|
+
const warnings = [];
|
|
85
|
+
const skillMd = path.join(skillDir, 'SKILL.md');
|
|
86
|
+
if (!fs.pathExistsSync(skillMd))
|
|
87
|
+
return warnings;
|
|
88
|
+
const content = fs.readFileSync(skillMd, 'utf-8');
|
|
89
|
+
const lineCount = content.split('\n').length;
|
|
90
|
+
if (lineCount > 120) {
|
|
91
|
+
warnings.push(`${skillDir}: SKILL.md is ${lineCount} lines (max 120). ` +
|
|
92
|
+
`Consider moving detailed content to references/ or rules/.`);
|
|
93
|
+
}
|
|
94
|
+
return warnings;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Remove skill directories that are not in the active list.
|
|
98
|
+
* Preserves _template/ always.
|
|
99
|
+
*/
|
|
100
|
+
async function removeInactiveSkills(destSkillsDir, activeSkills) {
|
|
101
|
+
if (!await fs.pathExists(destSkillsDir))
|
|
102
|
+
return;
|
|
103
|
+
// Build a set of top-level directories to keep
|
|
104
|
+
const keepSet = new Set();
|
|
105
|
+
keepSet.add('_template');
|
|
106
|
+
for (const skill of activeSkills) {
|
|
107
|
+
// For nested skills like 'frontend/react', keep the top-level 'frontend'
|
|
108
|
+
const topLevel = skill.split('/')[0];
|
|
109
|
+
keepSet.add(topLevel);
|
|
110
|
+
}
|
|
111
|
+
const entries = await fs.readdir(destSkillsDir, { withFileTypes: true });
|
|
112
|
+
for (const entry of entries) {
|
|
113
|
+
if (!entry.isDirectory())
|
|
114
|
+
continue;
|
|
115
|
+
if (keepSet.has(entry.name)) {
|
|
116
|
+
// For parent dirs like 'frontend/', check subdirectories
|
|
117
|
+
await removeInactiveSubSkills(path.join(destSkillsDir, entry.name), activeSkills, entry.name);
|
|
118
|
+
continue;
|
|
119
|
+
}
|
|
120
|
+
// Completely inactive top-level skill
|
|
121
|
+
await fs.remove(path.join(destSkillsDir, entry.name));
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* For parent skill directories (e.g. frontend/, methodology/),
|
|
126
|
+
* remove inactive sub-skills while keeping active ones.
|
|
127
|
+
*/
|
|
128
|
+
async function removeInactiveSubSkills(parentDir, activeSkills, parentName) {
|
|
129
|
+
const entries = await fs.readdir(parentDir, { withFileTypes: true });
|
|
130
|
+
// Check if this directory itself is a skill (has SKILL.md)
|
|
131
|
+
const hasSelfSkill = entries.some(e => e.name === 'SKILL.md');
|
|
132
|
+
const isParentActive = activeSkills.includes(parentName);
|
|
133
|
+
// If parent itself is an active skill, keep it
|
|
134
|
+
if (hasSelfSkill && !isParentActive) {
|
|
135
|
+
// Remove only SKILL.md and rules/ from parent, keep subdirs
|
|
136
|
+
}
|
|
137
|
+
for (const entry of entries) {
|
|
138
|
+
if (!entry.isDirectory())
|
|
139
|
+
continue;
|
|
140
|
+
if (['rules', 'references', 'scripts'].includes(entry.name))
|
|
141
|
+
continue; // belongs to parent skill
|
|
142
|
+
const subSkillPath = `${parentName}/${entry.name}`;
|
|
143
|
+
if (!activeSkills.includes(subSkillPath)) {
|
|
144
|
+
await fs.remove(path.join(parentDir, entry.name));
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
// If parent directory is now empty (no SKILL.md, no subdirs), remove it
|
|
148
|
+
const remaining = await fs.readdir(parentDir);
|
|
149
|
+
if (remaining.length === 0) {
|
|
150
|
+
await fs.remove(parentDir);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
// ─────────────────────────────────────────────────
|
|
154
|
+
// Knowledge
|
|
155
|
+
// ─────────────────────────────────────────────────
|
|
156
|
+
/**
|
|
157
|
+
* Get knowledge files to deploy for a project.
|
|
158
|
+
* Combines BASE_KNOWLEDGE + type-specific + domain-specific knowledge.
|
|
159
|
+
*/
|
|
160
|
+
export function getActiveKnowledge(config) {
|
|
161
|
+
const typeKnowledge = KNOWLEDGE_PRESETS[config.project.type] || [];
|
|
162
|
+
const domainKnowledge = config.project.domain
|
|
163
|
+
? (DOMAIN_KNOWLEDGE_MAP[config.project.domain] || [])
|
|
164
|
+
: [];
|
|
165
|
+
return [...new Set([...BASE_KNOWLEDGE, ...typeKnowledge, ...domainKnowledge])];
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Deploy only active knowledge files from templates to project.
|
|
169
|
+
* Each knowledge item maps to a .md file under knowledge/.
|
|
170
|
+
*/
|
|
171
|
+
export async function deployKnowledge(templatesDir, destKnowledgeDir, activeKnowledge, variables) {
|
|
172
|
+
const srcKnowledgeDir = path.join(templatesDir, 'base', 'knowledge');
|
|
173
|
+
if (!await fs.pathExists(srcKnowledgeDir))
|
|
174
|
+
return;
|
|
175
|
+
for (const item of activeKnowledge) {
|
|
176
|
+
// item = 'checklists/security' → file = 'checklists/security.md'
|
|
177
|
+
const srcPath = path.join(srcKnowledgeDir, item + '.md');
|
|
178
|
+
const destPath = path.join(destKnowledgeDir, item + '.md');
|
|
179
|
+
if (!await fs.pathExists(srcPath))
|
|
180
|
+
continue;
|
|
181
|
+
const content = await fs.readFile(srcPath, 'utf-8');
|
|
182
|
+
const processed = substituteVariables(content, variables);
|
|
183
|
+
await fs.ensureDir(path.dirname(destPath));
|
|
184
|
+
await fs.writeFile(destPath, processed, 'utf-8');
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
//# sourceMappingURL=skill-generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill-generator.js","sourceRoot":"","sources":["../../src/lib/skill-generator.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/template.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { ProjectType, ProjectLevel } from '../types/index.js';
|
|
2
|
+
import type { TimsquadConfig } from '../types/config.js';
|
|
2
3
|
/**
|
|
3
4
|
* Template variables for substitution
|
|
4
5
|
*/
|
|
@@ -6,9 +7,14 @@ export interface TemplateVariables {
|
|
|
6
7
|
PROJECT_NAME: string;
|
|
7
8
|
PROJECT_TYPE: string;
|
|
8
9
|
PROJECT_LEVEL: string;
|
|
10
|
+
PROJECT_DOMAIN: string;
|
|
11
|
+
PROJECT_PLATFORM: string;
|
|
12
|
+
PROJECT_STACK: string;
|
|
9
13
|
DATE: string;
|
|
10
14
|
TIMESTAMP: string;
|
|
11
15
|
INIT_DATE: string;
|
|
16
|
+
ACTIVE_AGENTS: string;
|
|
17
|
+
DELEGATION_RULES: string;
|
|
12
18
|
}
|
|
13
19
|
/**
|
|
14
20
|
* Get templates directory path
|
|
@@ -17,11 +23,19 @@ export declare function getTemplatesDir(): string;
|
|
|
17
23
|
/**
|
|
18
24
|
* Create template variables
|
|
19
25
|
*/
|
|
20
|
-
export declare function createTemplateVariables(name: string, type: ProjectType, level: ProjectLevel): TemplateVariables;
|
|
26
|
+
export declare function createTemplateVariables(name: string, type: ProjectType, level: ProjectLevel, config?: TimsquadConfig): TemplateVariables;
|
|
21
27
|
/**
|
|
22
28
|
* Substitute variables in content
|
|
23
29
|
*/
|
|
24
30
|
export declare function substituteVariables(content: string, variables: TemplateVariables): string;
|
|
31
|
+
/**
|
|
32
|
+
* Copy and process a single file
|
|
33
|
+
*/
|
|
34
|
+
export declare function copyAndProcessFile(src: string, dest: string, variables: TemplateVariables): Promise<void>;
|
|
35
|
+
/**
|
|
36
|
+
* Copy directory recursively with variable substitution
|
|
37
|
+
*/
|
|
38
|
+
export declare function copyDirectoryWithSubstitution(srcDir: string, destDir: string, variables: TemplateVariables): Promise<void>;
|
|
25
39
|
/**
|
|
26
40
|
* Get required SSOT documents for project
|
|
27
41
|
*/
|
|
@@ -29,5 +43,5 @@ export declare function getRequiredDocuments(type: ProjectType, level: ProjectLe
|
|
|
29
43
|
/**
|
|
30
44
|
* Initialize project from templates
|
|
31
45
|
*/
|
|
32
|
-
export declare function initializeProject(projectRoot: string, name: string, type: ProjectType, level: ProjectLevel): Promise<void>;
|
|
46
|
+
export declare function initializeProject(projectRoot: string, name: string, type: ProjectType, level: ProjectLevel, config?: TimsquadConfig, automationEnabled?: boolean): Promise<void>;
|
|
33
47
|
//# sourceMappingURL=template.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../src/lib/template.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../src/lib/template.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AASzD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAGxC;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,WAAW,EACjB,KAAK,EAAE,YAAY,EACnB,MAAM,CAAC,EAAE,cAAc,GACtB,iBAAiB,CA0BnB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,iBAAiB,GAAG,MAAM,CASzF;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,iBAAiB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAMf;AAED;;GAEG;AACH,wBAAsB,6BAA6B,CACjD,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,iBAAiB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAkCf;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,GAAG,MAAM,EAAE,CAIrF;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,WAAW,EACjB,KAAK,EAAE,YAAY,EACnB,MAAM,CAAC,EAAE,cAAc,EACvB,iBAAiB,UAAO,GACvB,OAAO,CAAC,IAAI,CAAC,CA4Gf"}
|
package/dist/lib/template.js
CHANGED
|
@@ -3,6 +3,8 @@ import { fileURLToPath } from 'url';
|
|
|
3
3
|
import fs from 'fs-extra';
|
|
4
4
|
import { REQUIRED_SSOT_BY_LEVEL, REQUIRED_SSOT_BY_TYPE } from '../types/project.js';
|
|
5
5
|
import { getDateString, getTimestamp } from '../utils/date.js';
|
|
6
|
+
import { getActiveAgents, generateAgentFiles, generateDelegationRules, formatActiveAgentsList } from './agent-generator.js';
|
|
7
|
+
import { getActiveSkills, deploySkills, getActiveKnowledge, deployKnowledge } from './skill-generator.js';
|
|
6
8
|
const __filename = fileURLToPath(import.meta.url);
|
|
7
9
|
const __dirname = path.dirname(__filename);
|
|
8
10
|
/**
|
|
@@ -15,15 +17,28 @@ export function getTemplatesDir() {
|
|
|
15
17
|
/**
|
|
16
18
|
* Create template variables
|
|
17
19
|
*/
|
|
18
|
-
export function createTemplateVariables(name, type, level) {
|
|
20
|
+
export function createTemplateVariables(name, type, level, config) {
|
|
19
21
|
const now = new Date();
|
|
22
|
+
// 에이전트 관련 변수 생성
|
|
23
|
+
let activeAgentsText = '';
|
|
24
|
+
let delegationRulesText = '';
|
|
25
|
+
if (config) {
|
|
26
|
+
const activeAgents = getActiveAgents(config);
|
|
27
|
+
activeAgentsText = formatActiveAgentsList(activeAgents);
|
|
28
|
+
delegationRulesText = generateDelegationRules(activeAgents);
|
|
29
|
+
}
|
|
20
30
|
return {
|
|
21
31
|
PROJECT_NAME: name,
|
|
22
32
|
PROJECT_TYPE: type,
|
|
23
33
|
PROJECT_LEVEL: String(level),
|
|
34
|
+
PROJECT_DOMAIN: config?.project?.domain ?? 'general-web',
|
|
35
|
+
PROJECT_PLATFORM: config?.project?.platform ?? 'claude-code',
|
|
36
|
+
PROJECT_STACK: config?.project?.stack?.join(', ') ?? '',
|
|
24
37
|
DATE: getDateString(),
|
|
25
38
|
TIMESTAMP: getTimestamp(),
|
|
26
39
|
INIT_DATE: now.toISOString(),
|
|
40
|
+
ACTIVE_AGENTS: activeAgentsText,
|
|
41
|
+
DELEGATION_RULES: delegationRulesText,
|
|
27
42
|
};
|
|
28
43
|
}
|
|
29
44
|
/**
|
|
@@ -40,7 +55,7 @@ export function substituteVariables(content, variables) {
|
|
|
40
55
|
/**
|
|
41
56
|
* Copy and process a single file
|
|
42
57
|
*/
|
|
43
|
-
async function copyAndProcessFile(src, dest, variables) {
|
|
58
|
+
export async function copyAndProcessFile(src, dest, variables) {
|
|
44
59
|
const content = await fs.readFile(src, 'utf-8');
|
|
45
60
|
const processed = substituteVariables(content, variables);
|
|
46
61
|
await fs.ensureDir(path.dirname(dest));
|
|
@@ -49,7 +64,7 @@ async function copyAndProcessFile(src, dest, variables) {
|
|
|
49
64
|
/**
|
|
50
65
|
* Copy directory recursively with variable substitution
|
|
51
66
|
*/
|
|
52
|
-
async function copyDirectoryWithSubstitution(srcDir, destDir, variables) {
|
|
67
|
+
export async function copyDirectoryWithSubstitution(srcDir, destDir, variables) {
|
|
53
68
|
const entries = await fs.readdir(srcDir, { withFileTypes: true });
|
|
54
69
|
for (const entry of entries) {
|
|
55
70
|
const srcPath = path.join(srcDir, entry.name);
|
|
@@ -93,55 +108,103 @@ export function getRequiredDocuments(type, level) {
|
|
|
93
108
|
/**
|
|
94
109
|
* Initialize project from templates
|
|
95
110
|
*/
|
|
96
|
-
export async function initializeProject(projectRoot, name, type, level) {
|
|
111
|
+
export async function initializeProject(projectRoot, name, type, level, config, automationEnabled = true) {
|
|
97
112
|
const templatesDir = getTemplatesDir();
|
|
98
|
-
const variables = createTemplateVariables(name, type, level);
|
|
99
113
|
// Adjust level for fintech
|
|
100
114
|
const effectiveLevel = type === 'fintech' ? 3 : level;
|
|
101
|
-
const
|
|
102
|
-
// 1. Copy
|
|
103
|
-
const
|
|
115
|
+
const variables = createTemplateVariables(name, type, effectiveLevel, config);
|
|
116
|
+
// 1. Copy .claude/settings.json (개별 파일만)
|
|
117
|
+
const platformDir = path.join(templatesDir, 'platforms', 'claude-code');
|
|
104
118
|
const destClaudeDir = path.join(projectRoot, '.claude');
|
|
105
|
-
await
|
|
106
|
-
|
|
107
|
-
|
|
119
|
+
await fs.ensureDir(destClaudeDir);
|
|
120
|
+
const settingsPath = path.join(platformDir, 'settings.json');
|
|
121
|
+
if (await fs.pathExists(settingsPath)) {
|
|
122
|
+
await copyAndProcessFile(settingsPath, path.join(destClaudeDir, 'settings.json'), variables);
|
|
123
|
+
}
|
|
124
|
+
// 2. Deploy .claude/rules/ (메인 세션 전용 상세 규칙)
|
|
125
|
+
const srcRulesDir = path.join(platformDir, 'rules');
|
|
126
|
+
const destRulesDir = path.join(destClaudeDir, 'rules');
|
|
127
|
+
if (await fs.pathExists(srcRulesDir)) {
|
|
128
|
+
await copyDirectoryWithSubstitution(srcRulesDir, destRulesDir, variables);
|
|
129
|
+
}
|
|
130
|
+
// 3. Config 기반 에이전트 동적 생성 (활성 에이전트만 배치)
|
|
131
|
+
if (config) {
|
|
132
|
+
const activeAgents = getActiveAgents(config);
|
|
133
|
+
const destAgentsDir = path.join(destClaudeDir, 'agents');
|
|
134
|
+
await generateAgentFiles(templatesDir, destAgentsDir, activeAgents, variables, config);
|
|
135
|
+
// 3. Config 기반 스킬 선택적 배치 (타입에 맞는 스킬만)
|
|
136
|
+
const activeSkills = getActiveSkills(config);
|
|
137
|
+
await deploySkills(templatesDir, path.join(destClaudeDir, 'skills'), activeSkills, variables);
|
|
138
|
+
// 4. Config 기반 knowledge 선택적 배치 (타입에 맞는 체크리스트만)
|
|
139
|
+
const activeKnowledge = getActiveKnowledge(config);
|
|
140
|
+
await deployKnowledge(templatesDir, path.join(destClaudeDir, 'knowledge'), activeKnowledge, variables);
|
|
141
|
+
}
|
|
142
|
+
else {
|
|
143
|
+
// config 없이 호출된 경우 전체 복사 (fallback)
|
|
144
|
+
await copyDirectoryWithSubstitution(platformDir, destClaudeDir, variables);
|
|
145
|
+
const baseAgentsDir = path.join(templatesDir, 'base', 'agents');
|
|
146
|
+
if (await fs.pathExists(baseAgentsDir)) {
|
|
147
|
+
await copyDirectoryWithSubstitution(baseAgentsDir, path.join(destClaudeDir, 'agents'), variables);
|
|
148
|
+
}
|
|
149
|
+
const baseSkillsDir = path.join(templatesDir, 'base', 'skills');
|
|
150
|
+
if (await fs.pathExists(baseSkillsDir)) {
|
|
151
|
+
await copyDirectoryWithSubstitution(baseSkillsDir, path.join(destClaudeDir, 'skills'), variables);
|
|
152
|
+
}
|
|
153
|
+
const baseKnowledgeDir = path.join(templatesDir, 'base', 'knowledge');
|
|
154
|
+
if (await fs.pathExists(baseKnowledgeDir)) {
|
|
155
|
+
await copyDirectoryWithSubstitution(baseKnowledgeDir, path.join(destClaudeDir, 'knowledge'), variables);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
// 3. Copy common/timsquad to .timsquad
|
|
159
|
+
const commonTimsquadDir = path.join(templatesDir, 'base', 'timsquad');
|
|
108
160
|
const destTimsquadDir = path.join(projectRoot, '.timsquad');
|
|
109
|
-
await copyDirectoryWithSubstitution(commonTimsquadDir, destTimsquadDir,
|
|
110
|
-
//
|
|
111
|
-
const typeWorkflowDir = path.join(templatesDir, type, 'process');
|
|
161
|
+
await copyDirectoryWithSubstitution(commonTimsquadDir, destTimsquadDir, variables);
|
|
162
|
+
// 4. Copy type-specific workflow
|
|
163
|
+
const typeWorkflowDir = path.join(templatesDir, 'project-types', type, 'process');
|
|
112
164
|
if (await fs.pathExists(typeWorkflowDir)) {
|
|
113
165
|
const destProcessDir = path.join(destTimsquadDir, 'process');
|
|
114
|
-
await copyDirectoryWithSubstitution(typeWorkflowDir, destProcessDir,
|
|
166
|
+
await copyDirectoryWithSubstitution(typeWorkflowDir, destProcessDir, variables);
|
|
115
167
|
}
|
|
116
|
-
//
|
|
117
|
-
const claudeMdTemplate = path.join(templatesDir, '
|
|
168
|
+
// 5. Create CLAUDE.md from template
|
|
169
|
+
const claudeMdTemplate = path.join(templatesDir, 'platforms', 'claude-code', 'CLAUDE.md.template');
|
|
118
170
|
if (await fs.pathExists(claudeMdTemplate)) {
|
|
119
|
-
await copyAndProcessFile(claudeMdTemplate, path.join(projectRoot, 'CLAUDE.md'),
|
|
171
|
+
await copyAndProcessFile(claudeMdTemplate, path.join(projectRoot, 'CLAUDE.md'), variables);
|
|
120
172
|
}
|
|
121
173
|
// 5. Create additional directories
|
|
122
174
|
const additionalDirs = [
|
|
123
175
|
'.timsquad/logs',
|
|
124
176
|
'.timsquad/logs/quick',
|
|
125
177
|
'.timsquad/logs/sessions',
|
|
178
|
+
'.timsquad/logs/tasks',
|
|
179
|
+
'.timsquad/logs/sequences',
|
|
180
|
+
'.timsquad/logs/phases',
|
|
181
|
+
'.timsquad/reports',
|
|
126
182
|
'.timsquad/state',
|
|
183
|
+
'.timsquad/state/meta-index',
|
|
184
|
+
'.timsquad/state/meta-index/ui-index',
|
|
185
|
+
'.timsquad/.daemon',
|
|
127
186
|
'.timsquad/knowledge',
|
|
128
187
|
'.timsquad/retrospective/cycles',
|
|
129
188
|
'.timsquad/retrospective/metrics',
|
|
130
189
|
'.timsquad/retrospective/improvements/prompts',
|
|
131
190
|
'.timsquad/retrospective/improvements/templates',
|
|
191
|
+
'.claude/knowledge/platforms',
|
|
192
|
+
'.claude/knowledge/domains',
|
|
193
|
+
'.claude/knowledge/checklists',
|
|
194
|
+
'.claude/knowledge/templates',
|
|
132
195
|
];
|
|
133
196
|
for (const dir of additionalDirs) {
|
|
134
197
|
await fs.ensureDir(path.join(projectRoot, dir));
|
|
135
198
|
}
|
|
136
199
|
// 6. Create initial state files
|
|
137
|
-
await createInitialStateFiles(projectRoot, name, type, effectiveLevel);
|
|
200
|
+
await createInitialStateFiles(projectRoot, name, type, effectiveLevel, automationEnabled);
|
|
138
201
|
// 7. Create .gitignore (기존 파일이 없을 때만)
|
|
139
202
|
await createGitignore(projectRoot);
|
|
140
203
|
}
|
|
141
204
|
/**
|
|
142
205
|
* Create initial state files
|
|
143
206
|
*/
|
|
144
|
-
async function createInitialStateFiles(projectRoot, _name, _type, _level) {
|
|
207
|
+
async function createInitialStateFiles(projectRoot, _name, _type, _level, automationEnabled = true) {
|
|
145
208
|
// current-phase.json
|
|
146
209
|
const phaseData = {
|
|
147
210
|
current: 'planning',
|
|
@@ -149,6 +212,21 @@ async function createInitialStateFiles(projectRoot, _name, _type, _level) {
|
|
|
149
212
|
progress: 0,
|
|
150
213
|
};
|
|
151
214
|
await fs.writeJson(path.join(projectRoot, '.timsquad', 'state', 'current-phase.json'), phaseData, { spaces: 2 });
|
|
215
|
+
// workflow.json (자동화 워크플로우 상태)
|
|
216
|
+
const workflowData = {
|
|
217
|
+
schema_version: '1.0.0',
|
|
218
|
+
automation: {
|
|
219
|
+
sequence_log: automationEnabled,
|
|
220
|
+
phase_log: automationEnabled,
|
|
221
|
+
phase_gate: automationEnabled,
|
|
222
|
+
metrics: automationEnabled,
|
|
223
|
+
retro: automationEnabled,
|
|
224
|
+
},
|
|
225
|
+
current_phase: null,
|
|
226
|
+
sequences: {},
|
|
227
|
+
completed_phases: [],
|
|
228
|
+
};
|
|
229
|
+
await fs.writeJson(path.join(projectRoot, '.timsquad', 'state', 'workflow.json'), workflowData, { spaces: 2 });
|
|
152
230
|
// knowledge files (이하 기존 로직)
|
|
153
231
|
const knowledgeDir = path.join(projectRoot, '.timsquad', 'knowledge');
|
|
154
232
|
await fs.writeFile(path.join(knowledgeDir, 'tribal.md'), `# Tribal Knowledge\n\n## 코딩 컨벤션\n\n## 아키텍처 패턴\n`, 'utf-8');
|
|
@@ -207,9 +285,20 @@ out/
|
|
|
207
285
|
# 단, 런타임 생성 로그/세션 데이터는 제외:
|
|
208
286
|
.timsquad/logs/sessions/
|
|
209
287
|
.timsquad/logs/quick/
|
|
288
|
+
.timsquad/logs/tasks/
|
|
289
|
+
.timsquad/logs/sequences/
|
|
290
|
+
.timsquad/logs/phases/
|
|
210
291
|
.timsquad/logs/*-session.md
|
|
211
292
|
.timsquad/logs/*-alerts.md
|
|
293
|
+
.timsquad/logs/workflow-automation.log
|
|
212
294
|
.timsquad/retrospective/metrics/latest.json
|
|
295
|
+
.timsquad/state/meta-index/
|
|
296
|
+
.timsquad/state/workflow.json
|
|
297
|
+
.timsquad/.daemon/
|
|
298
|
+
.timsquad/.daemon.pid
|
|
299
|
+
.timsquad/.daemon.log
|
|
300
|
+
.timsquad/.daemon.sock
|
|
301
|
+
.timsquad/.upgrade-backup/
|
|
213
302
|
`;
|
|
214
303
|
await fs.writeFile(gitignorePath, content, 'utf-8');
|
|
215
304
|
}
|
package/dist/lib/template.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/lib/template.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/lib/template.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* UI Index core library
|
|
3
|
+
* 프론트엔드 컴포넌트 구조 인덱싱, health 점수 관리
|
|
4
|
+
* 저장소: .timsquad/state/meta-index/ui-index/
|
|
5
|
+
*/
|
|
6
|
+
import type { UIModuleIndex, ComponentEntry, UIHealthScore, UIPendingEntry } from '../types/ui-meta.js';
|
|
7
|
+
export declare function getUIIndexDir(metaDir: string): string;
|
|
8
|
+
export declare function rebuildUIIndex(projectRoot: string, metaDir: string, excludePatterns?: string[]): Promise<UIModuleIndex>;
|
|
9
|
+
export declare function updateUIIndex(projectRoot: string, metaDir: string, changedFiles?: string[]): Promise<UIModuleIndex>;
|
|
10
|
+
export declare function calculateUIHealth(components: Record<string, ComponentEntry>): UIHealthScore;
|
|
11
|
+
export declare function appendUIPending(metaDir: string, entry: UIPendingEntry): Promise<void>;
|
|
12
|
+
//# sourceMappingURL=ui-index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ui-index.d.ts","sourceRoot":"","sources":["../../src/lib/ui-index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,KAAK,EACV,aAAa,EAAE,cAAc,EAC7B,aAAa,EAAE,cAAc,EAC9B,MAAM,qBAAqB,CAAC;AAoB7B,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAErD;AAID,wBAAsB,cAAc,CAClC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,eAAe,CAAC,EAAE,MAAM,EAAE,GACzB,OAAO,CAAC,aAAa,CAAC,CA4ExB;AAID,wBAAsB,aAAa,CACjC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,YAAY,CAAC,EAAE,MAAM,EAAE,GACtB,OAAO,CAAC,aAAa,CAAC,CAyExB;AAID,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,GACzC,aAAa,CAuBf;AAID,wBAAsB,eAAe,CACnC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,cAAc,GACpB,OAAO,CAAC,IAAI,CAAC,CAIf"}
|