timsquad 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +347 -0
- package/bin/tsq.js +6 -0
- package/dist/commands/feedback.d.ts +3 -0
- package/dist/commands/feedback.d.ts.map +1 -0
- package/dist/commands/feedback.js +142 -0
- package/dist/commands/feedback.js.map +1 -0
- package/dist/commands/full.d.ts +3 -0
- package/dist/commands/full.d.ts.map +1 -0
- package/dist/commands/full.js +87 -0
- package/dist/commands/full.js.map +1 -0
- package/dist/commands/git/commit.d.ts +3 -0
- package/dist/commands/git/commit.d.ts.map +1 -0
- package/dist/commands/git/commit.js +88 -0
- package/dist/commands/git/commit.js.map +1 -0
- package/dist/commands/git/index.d.ts +5 -0
- package/dist/commands/git/index.d.ts.map +1 -0
- package/dist/commands/git/index.js +5 -0
- package/dist/commands/git/index.js.map +1 -0
- package/dist/commands/git/pr.d.ts +3 -0
- package/dist/commands/git/pr.d.ts.map +1 -0
- package/dist/commands/git/pr.js +138 -0
- package/dist/commands/git/pr.js.map +1 -0
- package/dist/commands/git/release.d.ts +3 -0
- package/dist/commands/git/release.d.ts.map +1 -0
- package/dist/commands/git/release.js +158 -0
- package/dist/commands/git/release.js.map +1 -0
- package/dist/commands/git/sync.d.ts +3 -0
- package/dist/commands/git/sync.d.ts.map +1 -0
- package/dist/commands/git/sync.js +132 -0
- package/dist/commands/git/sync.js.map +1 -0
- package/dist/commands/init.d.ts +3 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +150 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/log.d.ts +3 -0
- package/dist/commands/log.d.ts.map +1 -0
- package/dist/commands/log.js +271 -0
- package/dist/commands/log.js.map +1 -0
- package/dist/commands/metrics.d.ts +3 -0
- package/dist/commands/metrics.d.ts.map +1 -0
- package/dist/commands/metrics.js +299 -0
- package/dist/commands/metrics.js.map +1 -0
- package/dist/commands/quick.d.ts +3 -0
- package/dist/commands/quick.d.ts.map +1 -0
- package/dist/commands/quick.js +136 -0
- package/dist/commands/quick.js.map +1 -0
- package/dist/commands/retro.d.ts +3 -0
- package/dist/commands/retro.d.ts.map +1 -0
- package/dist/commands/retro.js +280 -0
- package/dist/commands/retro.js.map +1 -0
- package/dist/commands/status.d.ts +3 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +127 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/watch.d.ts +3 -0
- package/dist/commands/watch.d.ts.map +1 -0
- package/dist/commands/watch.js +213 -0
- package/dist/commands/watch.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +50 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/config.d.ts +34 -0
- package/dist/lib/config.d.ts.map +1 -0
- package/dist/lib/config.js +108 -0
- package/dist/lib/config.js.map +1 -0
- package/dist/lib/project.d.ts +47 -0
- package/dist/lib/project.d.ts.map +1 -0
- package/dist/lib/project.js +191 -0
- package/dist/lib/project.js.map +1 -0
- package/dist/lib/template.d.ts +33 -0
- package/dist/lib/template.d.ts.map +1 -0
- package/dist/lib/template.js +151 -0
- package/dist/lib/template.js.map +1 -0
- package/dist/types/config.d.ts +75 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +66 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/feedback.d.ts +59 -0
- package/dist/types/feedback.d.ts.map +1 -0
- package/dist/types/feedback.js +26 -0
- package/dist/types/feedback.js.map +1 -0
- package/dist/types/index.d.ts +4 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +5 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/project.d.ts +89 -0
- package/dist/types/project.d.ts.map +1 -0
- package/dist/types/project.js +44 -0
- package/dist/types/project.js.map +1 -0
- package/dist/utils/colors.d.ts +30 -0
- package/dist/utils/colors.d.ts.map +1 -0
- package/dist/utils/colors.js +54 -0
- package/dist/utils/colors.js.map +1 -0
- package/dist/utils/date.d.ts +25 -0
- package/dist/utils/date.d.ts.map +1 -0
- package/dist/utils/date.js +65 -0
- package/dist/utils/date.js.map +1 -0
- package/dist/utils/fs.d.ts +49 -0
- package/dist/utils/fs.d.ts.map +1 -0
- package/dist/utils/fs.js +84 -0
- package/dist/utils/fs.js.map +1 -0
- package/dist/utils/prompts.d.ts +31 -0
- package/dist/utils/prompts.d.ts.map +1 -0
- package/dist/utils/prompts.js +95 -0
- package/dist/utils/prompts.js.map +1 -0
- package/dist/utils/yaml.d.ts +21 -0
- package/dist/utils/yaml.d.ts.map +1 -0
- package/dist/utils/yaml.js +40 -0
- package/dist/utils/yaml.js.map +1 -0
- package/package.json +71 -0
- package/templates/common/CLAUDE.md.template +254 -0
- package/templates/common/claude/agents/tsq-dba.md +290 -0
- package/templates/common/claude/agents/tsq-designer.md +304 -0
- package/templates/common/claude/agents/tsq-developer.md +118 -0
- package/templates/common/claude/agents/tsq-planner.md +90 -0
- package/templates/common/claude/agents/tsq-prompter.md +336 -0
- package/templates/common/claude/agents/tsq-qa.md +134 -0
- package/templates/common/claude/agents/tsq-retro.md +168 -0
- package/templates/common/claude/agents/tsq-security.md +190 -0
- package/templates/common/claude/skills/architecture/SKILL.md +123 -0
- package/templates/common/claude/skills/backend/node/SKILL.md +1015 -0
- package/templates/common/claude/skills/coding/SKILL.md +171 -0
- package/templates/common/claude/skills/database/prisma/SKILL.md +357 -0
- package/templates/common/claude/skills/frontend/nextjs/SKILL.md +279 -0
- package/templates/common/claude/skills/frontend/react/SKILL.md +1729 -0
- package/templates/common/claude/skills/methodology/bdd/SKILL.md +234 -0
- package/templates/common/claude/skills/methodology/ddd/SKILL.md +311 -0
- package/templates/common/claude/skills/methodology/tdd/SKILL.md +512 -0
- package/templates/common/claude/skills/planning/SKILL.md +90 -0
- package/templates/common/claude/skills/security/SKILL.md +234 -0
- package/templates/common/claude/skills/testing/SKILL.md +146 -0
- package/templates/common/claude/skills/typescript/SKILL.md +435 -0
- package/templates/common/config.template.yaml +131 -0
- package/templates/common/timsquad/architectures/clean/ARCHITECTURE.md +49 -0
- package/templates/common/timsquad/architectures/clean/backend.xml +210 -0
- package/templates/common/timsquad/architectures/clean/frontend.xml +148 -0
- package/templates/common/timsquad/architectures/fsd/ARCHITECTURE.md +67 -0
- package/templates/common/timsquad/architectures/fsd/frontend.xml +288 -0
- package/templates/common/timsquad/architectures/hexagonal/ARCHITECTURE.md +60 -0
- package/templates/common/timsquad/architectures/hexagonal/backend.xml +300 -0
- package/templates/common/timsquad/constraints/competency-framework.xml +501 -0
- package/templates/common/timsquad/constraints/ssot-schema.xml +433 -0
- package/templates/common/timsquad/feedback/feedback-router.sh +341 -0
- package/templates/common/timsquad/feedback/routing-rules.yaml +352 -0
- package/templates/common/timsquad/generators/data-design.xml +290 -0
- package/templates/common/timsquad/generators/prd.xml +280 -0
- package/templates/common/timsquad/generators/requirements.xml +220 -0
- package/templates/common/timsquad/generators/service-spec.xml +266 -0
- package/templates/common/timsquad/logs/_example.md +81 -0
- package/templates/common/timsquad/logs/_template.md +46 -0
- package/templates/common/timsquad/patterns/cqrs.xml +127 -0
- package/templates/common/timsquad/patterns/event-sourcing.xml +85 -0
- package/templates/common/timsquad/patterns/repository.xml +64 -0
- package/templates/common/timsquad/process/state-machine.xml +343 -0
- package/templates/common/timsquad/process/validation-rules.xml +308 -0
- package/templates/common/timsquad/process/workflow-base.xml +202 -0
- package/templates/common/timsquad/retrospective/cycle-report.template.md +205 -0
- package/templates/common/timsquad/retrospective/metrics/metrics-schema.json +203 -0
- package/templates/common/timsquad/retrospective/patterns/failure-patterns.md +199 -0
- package/templates/common/timsquad/retrospective/patterns/success-patterns.md +262 -0
- package/templates/common/timsquad/retrospective/retrospective-config.xml +294 -0
- package/templates/common/timsquad/retrospective/retrospective-state.xml +210 -0
- package/templates/common/timsquad/ssot/adr/ADR-000-template.md +121 -0
- package/templates/common/timsquad/ssot/adr/ADR-001-example.md +115 -0
- package/templates/common/timsquad/ssot/data-design.template.md +132 -0
- package/templates/common/timsquad/ssot/deployment-spec.template.md +384 -0
- package/templates/common/timsquad/ssot/env-config.template.md +346 -0
- package/templates/common/timsquad/ssot/error-codes.template.md +114 -0
- package/templates/common/timsquad/ssot/functional-spec.template.md +185 -0
- package/templates/common/timsquad/ssot/glossary.template.md +148 -0
- package/templates/common/timsquad/ssot/integration-spec.template.md +391 -0
- package/templates/common/timsquad/ssot/planning.template.md +94 -0
- package/templates/common/timsquad/ssot/prd.template.md +102 -0
- package/templates/common/timsquad/ssot/requirements.template.md +117 -0
- package/templates/common/timsquad/ssot/security-spec.template.md +309 -0
- package/templates/common/timsquad/ssot/service-spec.template.md +194 -0
- package/templates/common/timsquad/ssot/test-spec.template.md +264 -0
- package/templates/common/timsquad/ssot/ui-ux-spec.template.md +262 -0
- package/templates/common/timsquad/state/workspace.xml +217 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"watch.js","sourceRoot":"","sources":["../../src/commands/watch.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { Command } from 'commander';
|
|
3
|
+
import chalk from 'chalk';
|
|
4
|
+
import { registerInitCommand } from './commands/init.js';
|
|
5
|
+
import { registerStatusCommand } from './commands/status.js';
|
|
6
|
+
import { registerLogCommand } from './commands/log.js';
|
|
7
|
+
import { registerRetroCommand } from './commands/retro.js';
|
|
8
|
+
import { registerFeedbackCommand } from './commands/feedback.js';
|
|
9
|
+
import { registerQuickCommand } from './commands/quick.js';
|
|
10
|
+
import { registerFullCommand } from './commands/full.js';
|
|
11
|
+
import { registerCommitCommand } from './commands/git/commit.js';
|
|
12
|
+
import { registerPRCommand } from './commands/git/pr.js';
|
|
13
|
+
import { registerReleaseCommand } from './commands/git/release.js';
|
|
14
|
+
import { registerSyncCommand } from './commands/git/sync.js';
|
|
15
|
+
import { registerWatchCommand } from './commands/watch.js';
|
|
16
|
+
import { registerMetricsCommand } from './commands/metrics.js';
|
|
17
|
+
const program = new Command();
|
|
18
|
+
program
|
|
19
|
+
.name('tsq')
|
|
20
|
+
.description('TimSquad - AI Agent Development Process Framework')
|
|
21
|
+
.version('2.0.0');
|
|
22
|
+
// Register all commands
|
|
23
|
+
registerInitCommand(program);
|
|
24
|
+
registerStatusCommand(program);
|
|
25
|
+
registerLogCommand(program);
|
|
26
|
+
registerRetroCommand(program);
|
|
27
|
+
registerFeedbackCommand(program);
|
|
28
|
+
registerQuickCommand(program);
|
|
29
|
+
registerFullCommand(program);
|
|
30
|
+
registerCommitCommand(program);
|
|
31
|
+
registerPRCommand(program);
|
|
32
|
+
registerReleaseCommand(program);
|
|
33
|
+
registerSyncCommand(program);
|
|
34
|
+
registerWatchCommand(program);
|
|
35
|
+
registerMetricsCommand(program);
|
|
36
|
+
// Default action (show help)
|
|
37
|
+
program.action(() => {
|
|
38
|
+
console.log(chalk.cyan.bold('\n TimSquad v2.0.0'));
|
|
39
|
+
console.log(chalk.gray(' AI Agent Development Process Framework\n'));
|
|
40
|
+
program.help();
|
|
41
|
+
});
|
|
42
|
+
// Parse arguments
|
|
43
|
+
program.parse(process.argv);
|
|
44
|
+
// Show help if no arguments
|
|
45
|
+
if (process.argv.length === 2) {
|
|
46
|
+
console.log(chalk.cyan.bold('\n TimSquad v2.0.0'));
|
|
47
|
+
console.log(chalk.gray(' AI Agent Development Process Framework\n'));
|
|
48
|
+
program.help();
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,KAAK,CAAC;KACX,WAAW,CAAC,mDAAmD,CAAC;KAChE,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,wBAAwB;AACxB,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC7B,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC/B,kBAAkB,CAAC,OAAO,CAAC,CAAC;AAC5B,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC9B,uBAAuB,CAAC,OAAO,CAAC,CAAC;AACjC,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC9B,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC7B,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC/B,iBAAiB,CAAC,OAAO,CAAC,CAAC;AAC3B,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAChC,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC7B,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC9B,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAEhC,6BAA6B;AAC7B,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE;IAClB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC,CAAC;IACtE,OAAO,CAAC,IAAI,EAAE,CAAC;AACjB,CAAC,CAAC,CAAC;AAEH,kBAAkB;AAClB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAE5B,4BAA4B;AAC5B,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;IAC9B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC,CAAC;IACtE,OAAO,CAAC,IAAI,EAAE,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { TimsquadConfig, ProjectType, ProjectLevel } from '../types/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* Check if config file exists
|
|
4
|
+
*/
|
|
5
|
+
export declare function configExists(projectRoot: string): Promise<boolean>;
|
|
6
|
+
/**
|
|
7
|
+
* Load TimSquad configuration
|
|
8
|
+
*/
|
|
9
|
+
export declare function loadConfig(projectRoot: string): Promise<TimsquadConfig>;
|
|
10
|
+
/**
|
|
11
|
+
* Save TimSquad configuration
|
|
12
|
+
*/
|
|
13
|
+
export declare function saveConfig(projectRoot: string, config: TimsquadConfig): Promise<void>;
|
|
14
|
+
/**
|
|
15
|
+
* Create default configuration for a new project
|
|
16
|
+
*/
|
|
17
|
+
export declare function createDefaultConfig(name: string, type: ProjectType, level: ProjectLevel): TimsquadConfig;
|
|
18
|
+
/**
|
|
19
|
+
* Validate configuration
|
|
20
|
+
*/
|
|
21
|
+
export declare function validateConfig(config: unknown): config is TimsquadConfig;
|
|
22
|
+
/**
|
|
23
|
+
* Get project name from config
|
|
24
|
+
*/
|
|
25
|
+
export declare function getProjectName(projectRoot: string): Promise<string>;
|
|
26
|
+
/**
|
|
27
|
+
* Get project type from config
|
|
28
|
+
*/
|
|
29
|
+
export declare function getProjectType(projectRoot: string): Promise<ProjectType>;
|
|
30
|
+
/**
|
|
31
|
+
* Get project level from config
|
|
32
|
+
*/
|
|
33
|
+
export declare function getProjectLevel(projectRoot: string): Promise<ProjectLevel>;
|
|
34
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAOnF;;GAEG;AACH,wBAAsB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAExE;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAQ7E;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAG3F;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,WAAW,EACjB,KAAK,EAAE,YAAY,GAClB,cAAc,CAwBhB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,IAAI,cAAc,CAcxE;AAiBD;;GAEG;AACH,wBAAsB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAGzE;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAG9E;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAGhF"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import path from 'path';
|
|
2
|
+
import { DEFAULT_CONFIG, FINTECH_CONFIG_OVERRIDES } from '../types/config.js';
|
|
3
|
+
import { exists } from '../utils/fs.js';
|
|
4
|
+
import { loadYaml, saveYaml } from '../utils/yaml.js';
|
|
5
|
+
const CONFIG_FILE = '.timsquad/config.yaml';
|
|
6
|
+
/**
|
|
7
|
+
* Check if config file exists
|
|
8
|
+
*/
|
|
9
|
+
export async function configExists(projectRoot) {
|
|
10
|
+
return exists(path.join(projectRoot, CONFIG_FILE));
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Load TimSquad configuration
|
|
14
|
+
*/
|
|
15
|
+
export async function loadConfig(projectRoot) {
|
|
16
|
+
const configPath = path.join(projectRoot, CONFIG_FILE);
|
|
17
|
+
if (!await exists(configPath)) {
|
|
18
|
+
throw new Error(`Config file not found: ${configPath}`);
|
|
19
|
+
}
|
|
20
|
+
return loadYaml(configPath);
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Save TimSquad configuration
|
|
24
|
+
*/
|
|
25
|
+
export async function saveConfig(projectRoot, config) {
|
|
26
|
+
const configPath = path.join(projectRoot, CONFIG_FILE);
|
|
27
|
+
await saveYaml(configPath, config);
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Create default configuration for a new project
|
|
31
|
+
*/
|
|
32
|
+
export function createDefaultConfig(name, type, level) {
|
|
33
|
+
const baseConfig = {
|
|
34
|
+
project: {
|
|
35
|
+
name,
|
|
36
|
+
type,
|
|
37
|
+
level,
|
|
38
|
+
created: new Date().toISOString(),
|
|
39
|
+
},
|
|
40
|
+
...DEFAULT_CONFIG,
|
|
41
|
+
};
|
|
42
|
+
// Apply fintech-specific overrides
|
|
43
|
+
if (type === 'fintech') {
|
|
44
|
+
return {
|
|
45
|
+
...baseConfig,
|
|
46
|
+
...FINTECH_CONFIG_OVERRIDES,
|
|
47
|
+
project: {
|
|
48
|
+
...baseConfig.project,
|
|
49
|
+
level: 3, // Force level 3 for fintech
|
|
50
|
+
},
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
return baseConfig;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Validate configuration
|
|
57
|
+
*/
|
|
58
|
+
export function validateConfig(config) {
|
|
59
|
+
if (!config || typeof config !== 'object')
|
|
60
|
+
return false;
|
|
61
|
+
const c = config;
|
|
62
|
+
// Check required fields
|
|
63
|
+
if (!c.project || typeof c.project !== 'object')
|
|
64
|
+
return false;
|
|
65
|
+
const project = c.project;
|
|
66
|
+
if (typeof project.name !== 'string')
|
|
67
|
+
return false;
|
|
68
|
+
if (!isValidProjectType(project.type))
|
|
69
|
+
return false;
|
|
70
|
+
if (!isValidProjectLevel(project.level))
|
|
71
|
+
return false;
|
|
72
|
+
return true;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Check if value is a valid project type
|
|
76
|
+
*/
|
|
77
|
+
function isValidProjectType(value) {
|
|
78
|
+
const validTypes = ['web-service', 'api-backend', 'platform', 'fintech', 'infra'];
|
|
79
|
+
return typeof value === 'string' && validTypes.includes(value);
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Check if value is a valid project level
|
|
83
|
+
*/
|
|
84
|
+
function isValidProjectLevel(value) {
|
|
85
|
+
return typeof value === 'number' && [1, 2, 3].includes(value);
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Get project name from config
|
|
89
|
+
*/
|
|
90
|
+
export async function getProjectName(projectRoot) {
|
|
91
|
+
const config = await loadConfig(projectRoot);
|
|
92
|
+
return config.project.name;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Get project type from config
|
|
96
|
+
*/
|
|
97
|
+
export async function getProjectType(projectRoot) {
|
|
98
|
+
const config = await loadConfig(projectRoot);
|
|
99
|
+
return config.project.type;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Get project level from config
|
|
103
|
+
*/
|
|
104
|
+
export async function getProjectLevel(projectRoot) {
|
|
105
|
+
const config = await loadConfig(projectRoot);
|
|
106
|
+
return config.project.level;
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { ProjectInfo, PhaseInfo, ProjectStatus, SSOTDocument, AgentInfo } from '../types/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* Find project root by looking for .timsquad directory
|
|
4
|
+
*/
|
|
5
|
+
export declare function findProjectRoot(startDir?: string): Promise<string | null>;
|
|
6
|
+
/**
|
|
7
|
+
* Check if directory is a TimSquad project
|
|
8
|
+
*/
|
|
9
|
+
export declare function isTimsquadProject(dir: string): Promise<boolean>;
|
|
10
|
+
/**
|
|
11
|
+
* Get project info from config
|
|
12
|
+
*/
|
|
13
|
+
export declare function getProjectInfo(projectRoot: string): Promise<ProjectInfo>;
|
|
14
|
+
/**
|
|
15
|
+
* Get current phase info
|
|
16
|
+
*/
|
|
17
|
+
export declare function getCurrentPhase(projectRoot: string): Promise<PhaseInfo>;
|
|
18
|
+
/**
|
|
19
|
+
* Get SSOT documents status
|
|
20
|
+
*/
|
|
21
|
+
export declare function getSSOTStatus(projectRoot: string): Promise<SSOTDocument[]>;
|
|
22
|
+
/**
|
|
23
|
+
* Get agents status
|
|
24
|
+
*/
|
|
25
|
+
export declare function getAgentsStatus(projectRoot: string): Promise<AgentInfo[]>;
|
|
26
|
+
/**
|
|
27
|
+
* Get logs summary
|
|
28
|
+
*/
|
|
29
|
+
export declare function getLogsSummary(projectRoot: string): Promise<{
|
|
30
|
+
total: number;
|
|
31
|
+
recent: string[];
|
|
32
|
+
}>;
|
|
33
|
+
/**
|
|
34
|
+
* Get retrospective summary
|
|
35
|
+
*/
|
|
36
|
+
export declare function getRetrospectiveSummary(projectRoot: string): Promise<{
|
|
37
|
+
cycles: number;
|
|
38
|
+
patterns: {
|
|
39
|
+
success: number;
|
|
40
|
+
failure: number;
|
|
41
|
+
};
|
|
42
|
+
}>;
|
|
43
|
+
/**
|
|
44
|
+
* Get full project status
|
|
45
|
+
*/
|
|
46
|
+
export declare function getProjectStatus(projectRoot: string): Promise<ProjectStatus>;
|
|
47
|
+
//# sourceMappingURL=project.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/lib/project.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AASxG;;GAEG;AACH,wBAAsB,eAAe,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAW/E;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAErE;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAU9E;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAqB7E;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CA4ChF;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAqB/E;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAiBtG;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC;IAC1E,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAChD,CAAC,CAoCD;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAWlF"}
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
import path from 'path';
|
|
2
|
+
import { REQUIRED_SSOT_BY_LEVEL, REQUIRED_SSOT_BY_TYPE } from '../types/project.js';
|
|
3
|
+
import { loadConfig, configExists } from './config.js';
|
|
4
|
+
import { exists, listFiles, isFileFilled, countLines } from '../utils/fs.js';
|
|
5
|
+
import { loadYaml } from '../utils/yaml.js';
|
|
6
|
+
const TIMSQUAD_DIR = '.timsquad';
|
|
7
|
+
const CLAUDE_DIR = '.claude';
|
|
8
|
+
/**
|
|
9
|
+
* Find project root by looking for .timsquad directory
|
|
10
|
+
*/
|
|
11
|
+
export async function findProjectRoot(startDir) {
|
|
12
|
+
let dir = startDir || process.cwd();
|
|
13
|
+
while (dir !== path.parse(dir).root) {
|
|
14
|
+
if (await exists(path.join(dir, TIMSQUAD_DIR))) {
|
|
15
|
+
return dir;
|
|
16
|
+
}
|
|
17
|
+
dir = path.dirname(dir);
|
|
18
|
+
}
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Check if directory is a TimSquad project
|
|
23
|
+
*/
|
|
24
|
+
export async function isTimsquadProject(dir) {
|
|
25
|
+
return await exists(path.join(dir, TIMSQUAD_DIR)) && await configExists(dir);
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Get project info from config
|
|
29
|
+
*/
|
|
30
|
+
export async function getProjectInfo(projectRoot) {
|
|
31
|
+
const config = await loadConfig(projectRoot);
|
|
32
|
+
return {
|
|
33
|
+
name: config.project.name,
|
|
34
|
+
type: config.project.type,
|
|
35
|
+
level: config.project.level,
|
|
36
|
+
created: config.project.created,
|
|
37
|
+
root: projectRoot,
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Get current phase info
|
|
42
|
+
*/
|
|
43
|
+
export async function getCurrentPhase(projectRoot) {
|
|
44
|
+
const phasePath = path.join(projectRoot, TIMSQUAD_DIR, 'state', 'current-phase.json');
|
|
45
|
+
if (!await exists(phasePath)) {
|
|
46
|
+
return {
|
|
47
|
+
current: 'planning',
|
|
48
|
+
startedAt: new Date().toISOString(),
|
|
49
|
+
progress: 0,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
try {
|
|
53
|
+
const data = await loadYaml(phasePath);
|
|
54
|
+
return data;
|
|
55
|
+
}
|
|
56
|
+
catch {
|
|
57
|
+
return {
|
|
58
|
+
current: 'planning',
|
|
59
|
+
startedAt: new Date().toISOString(),
|
|
60
|
+
progress: 0,
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Get SSOT documents status
|
|
66
|
+
*/
|
|
67
|
+
export async function getSSOTStatus(projectRoot) {
|
|
68
|
+
const config = await loadConfig(projectRoot);
|
|
69
|
+
const ssotDir = path.join(projectRoot, TIMSQUAD_DIR, 'ssot');
|
|
70
|
+
// Get required documents based on level and type
|
|
71
|
+
const requiredByLevel = REQUIRED_SSOT_BY_LEVEL[config.project.level];
|
|
72
|
+
const requiredByType = REQUIRED_SSOT_BY_TYPE[config.project.type];
|
|
73
|
+
const allRequired = [...new Set([...requiredByLevel, ...requiredByType])];
|
|
74
|
+
// Get all SSOT files
|
|
75
|
+
const files = await listFiles('*.md', ssotDir);
|
|
76
|
+
const documents = [];
|
|
77
|
+
for (const file of files) {
|
|
78
|
+
const name = path.basename(file, '.md');
|
|
79
|
+
const filePath = path.join(ssotDir, file);
|
|
80
|
+
const filled = await isFileFilled(filePath);
|
|
81
|
+
documents.push({
|
|
82
|
+
name,
|
|
83
|
+
path: filePath,
|
|
84
|
+
required: allRequired.includes(name),
|
|
85
|
+
filled,
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
// Add missing required documents
|
|
89
|
+
for (const name of allRequired) {
|
|
90
|
+
if (!documents.find(d => d.name === name)) {
|
|
91
|
+
documents.push({
|
|
92
|
+
name,
|
|
93
|
+
path: path.join(ssotDir, `${name}.md`),
|
|
94
|
+
required: true,
|
|
95
|
+
filled: false,
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
return documents.sort((a, b) => {
|
|
100
|
+
// Required first, then by name
|
|
101
|
+
if (a.required !== b.required)
|
|
102
|
+
return a.required ? -1 : 1;
|
|
103
|
+
return a.name.localeCompare(b.name);
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Get agents status
|
|
108
|
+
*/
|
|
109
|
+
export async function getAgentsStatus(projectRoot) {
|
|
110
|
+
const agentsDir = path.join(projectRoot, CLAUDE_DIR, 'agents');
|
|
111
|
+
if (!await exists(agentsDir)) {
|
|
112
|
+
return [];
|
|
113
|
+
}
|
|
114
|
+
const files = await listFiles('tsq-*.md', agentsDir);
|
|
115
|
+
const config = await loadConfig(projectRoot);
|
|
116
|
+
return files.map(file => {
|
|
117
|
+
const name = path.basename(file, '.md').replace('tsq-', '');
|
|
118
|
+
const agentConfig = config.agents[name];
|
|
119
|
+
return {
|
|
120
|
+
name,
|
|
121
|
+
type: name,
|
|
122
|
+
model: agentConfig?.model || 'sonnet',
|
|
123
|
+
available: true,
|
|
124
|
+
};
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Get logs summary
|
|
129
|
+
*/
|
|
130
|
+
export async function getLogsSummary(projectRoot) {
|
|
131
|
+
const logsDir = path.join(projectRoot, TIMSQUAD_DIR, 'logs');
|
|
132
|
+
if (!await exists(logsDir)) {
|
|
133
|
+
return { total: 0, recent: [] };
|
|
134
|
+
}
|
|
135
|
+
const files = await listFiles('*.md', logsDir);
|
|
136
|
+
const nonTemplateFiles = files.filter(f => !f.startsWith('_'));
|
|
137
|
+
// Sort by date (filename format: YYYY-MM-DD-agent.md)
|
|
138
|
+
nonTemplateFiles.sort().reverse();
|
|
139
|
+
return {
|
|
140
|
+
total: nonTemplateFiles.length,
|
|
141
|
+
recent: nonTemplateFiles.slice(0, 3),
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Get retrospective summary
|
|
146
|
+
*/
|
|
147
|
+
export async function getRetrospectiveSummary(projectRoot) {
|
|
148
|
+
const retroDir = path.join(projectRoot, TIMSQUAD_DIR, 'retrospective');
|
|
149
|
+
if (!await exists(retroDir)) {
|
|
150
|
+
return { cycles: 0, patterns: { success: 0, failure: 0 } };
|
|
151
|
+
}
|
|
152
|
+
// Count cycle reports
|
|
153
|
+
const cyclesDir = path.join(retroDir, 'cycles');
|
|
154
|
+
const cycleFiles = await exists(cyclesDir) ? await listFiles('cycle-*.md', cyclesDir) : [];
|
|
155
|
+
// Count patterns
|
|
156
|
+
const patternsDir = path.join(retroDir, 'patterns');
|
|
157
|
+
let successPatterns = 0;
|
|
158
|
+
let failurePatterns = 0;
|
|
159
|
+
if (await exists(patternsDir)) {
|
|
160
|
+
const successFile = path.join(patternsDir, 'success-patterns.md');
|
|
161
|
+
const failureFile = path.join(patternsDir, 'failure-patterns.md');
|
|
162
|
+
if (await exists(successFile)) {
|
|
163
|
+
const content = await countLines(successFile);
|
|
164
|
+
// Rough estimate: count "## " headers as patterns
|
|
165
|
+
successPatterns = Math.max(0, Math.floor(content / 10));
|
|
166
|
+
}
|
|
167
|
+
if (await exists(failureFile)) {
|
|
168
|
+
const content = await countLines(failureFile);
|
|
169
|
+
failurePatterns = Math.max(0, Math.floor(content / 10));
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
return {
|
|
173
|
+
cycles: cycleFiles.length,
|
|
174
|
+
patterns: { success: successPatterns, failure: failurePatterns },
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Get full project status
|
|
179
|
+
*/
|
|
180
|
+
export async function getProjectStatus(projectRoot) {
|
|
181
|
+
const [project, phase, ssot, agents, logs, retrospective] = await Promise.all([
|
|
182
|
+
getProjectInfo(projectRoot),
|
|
183
|
+
getCurrentPhase(projectRoot),
|
|
184
|
+
getSSOTStatus(projectRoot),
|
|
185
|
+
getAgentsStatus(projectRoot),
|
|
186
|
+
getLogsSummary(projectRoot),
|
|
187
|
+
getRetrospectiveSummary(projectRoot),
|
|
188
|
+
]);
|
|
189
|
+
return { project, phase, ssot, agents, logs, retrospective };
|
|
190
|
+
}
|
|
191
|
+
//# sourceMappingURL=project.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/lib/project.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { ProjectType, ProjectLevel } from '../types/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* Template variables for substitution
|
|
4
|
+
*/
|
|
5
|
+
export interface TemplateVariables {
|
|
6
|
+
PROJECT_NAME: string;
|
|
7
|
+
PROJECT_TYPE: string;
|
|
8
|
+
PROJECT_LEVEL: string;
|
|
9
|
+
DATE: string;
|
|
10
|
+
TIMESTAMP: string;
|
|
11
|
+
INIT_DATE: string;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Get templates directory path
|
|
15
|
+
*/
|
|
16
|
+
export declare function getTemplatesDir(): string;
|
|
17
|
+
/**
|
|
18
|
+
* Create template variables
|
|
19
|
+
*/
|
|
20
|
+
export declare function createTemplateVariables(name: string, type: ProjectType, level: ProjectLevel): TemplateVariables;
|
|
21
|
+
/**
|
|
22
|
+
* Substitute variables in content
|
|
23
|
+
*/
|
|
24
|
+
export declare function substituteVariables(content: string, variables: TemplateVariables): string;
|
|
25
|
+
/**
|
|
26
|
+
* Get required SSOT documents for project
|
|
27
|
+
*/
|
|
28
|
+
export declare function getRequiredDocuments(type: ProjectType, level: ProjectLevel): string[];
|
|
29
|
+
/**
|
|
30
|
+
* Initialize project from templates
|
|
31
|
+
*/
|
|
32
|
+
export declare function initializeProject(projectRoot: string, name: string, type: ProjectType, level: ProjectLevel): Promise<void>;
|
|
33
|
+
//# sourceMappingURL=template.d.ts.map
|
|
@@ -0,0 +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;AAOnE;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;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,GAClB,iBAAiB,CAUnB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,iBAAiB,GAAG,MAAM,CASzF;AAwDD;;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,GAClB,OAAO,CAAC,IAAI,CAAC,CAqDf"}
|