sequant 1.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.
Files changed (99) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +237 -0
  3. package/dist/bin/cli.d.ts +8 -0
  4. package/dist/bin/cli.d.ts.map +1 -0
  5. package/dist/bin/cli.js +70 -0
  6. package/dist/bin/cli.js.map +1 -0
  7. package/dist/src/commands/doctor.d.ts +8 -0
  8. package/dist/src/commands/doctor.d.ts.map +1 -0
  9. package/dist/src/commands/doctor.js +171 -0
  10. package/dist/src/commands/doctor.js.map +1 -0
  11. package/dist/src/commands/init.d.ts +11 -0
  12. package/dist/src/commands/init.d.ts.map +1 -0
  13. package/dist/src/commands/init.js +124 -0
  14. package/dist/src/commands/init.js.map +1 -0
  15. package/dist/src/commands/run.d.ts +18 -0
  16. package/dist/src/commands/run.d.ts.map +1 -0
  17. package/dist/src/commands/run.js +229 -0
  18. package/dist/src/commands/run.js.map +1 -0
  19. package/dist/src/commands/status.d.ts +5 -0
  20. package/dist/src/commands/status.d.ts.map +1 -0
  21. package/dist/src/commands/status.js +45 -0
  22. package/dist/src/commands/status.js.map +1 -0
  23. package/dist/src/commands/update.d.ts +10 -0
  24. package/dist/src/commands/update.d.ts.map +1 -0
  25. package/dist/src/commands/update.js +124 -0
  26. package/dist/src/commands/update.js.map +1 -0
  27. package/dist/src/index.d.ts +15 -0
  28. package/dist/src/index.d.ts.map +1 -0
  29. package/dist/src/index.js +13 -0
  30. package/dist/src/index.js.map +1 -0
  31. package/dist/src/lib/fs.d.ts +10 -0
  32. package/dist/src/lib/fs.d.ts.map +1 -0
  33. package/dist/src/lib/fs.js +44 -0
  34. package/dist/src/lib/fs.js.map +1 -0
  35. package/dist/src/lib/manifest.d.ts +14 -0
  36. package/dist/src/lib/manifest.d.ts.map +1 -0
  37. package/dist/src/lib/manifest.js +37 -0
  38. package/dist/src/lib/manifest.js.map +1 -0
  39. package/dist/src/lib/stacks.d.ts +22 -0
  40. package/dist/src/lib/stacks.d.ts.map +1 -0
  41. package/dist/src/lib/stacks.js +131 -0
  42. package/dist/src/lib/stacks.js.map +1 -0
  43. package/dist/src/lib/templates.d.ts +16 -0
  44. package/dist/src/lib/templates.d.ts.map +1 -0
  45. package/dist/src/lib/templates.js +118 -0
  46. package/dist/src/lib/templates.js.map +1 -0
  47. package/dist/src/lib/workflow/cli-args.d.ts +138 -0
  48. package/dist/src/lib/workflow/cli-args.d.ts.map +1 -0
  49. package/dist/src/lib/workflow/cli-args.js +210 -0
  50. package/dist/src/lib/workflow/cli-args.js.map +1 -0
  51. package/dist/src/lib/workflow/execute-issues.d.ts +42 -0
  52. package/dist/src/lib/workflow/execute-issues.d.ts.map +1 -0
  53. package/dist/src/lib/workflow/execute-issues.js +463 -0
  54. package/dist/src/lib/workflow/execute-issues.js.map +1 -0
  55. package/dist/src/lib/workflow/logger.d.ts +168 -0
  56. package/dist/src/lib/workflow/logger.d.ts.map +1 -0
  57. package/dist/src/lib/workflow/logger.js +249 -0
  58. package/dist/src/lib/workflow/logger.js.map +1 -0
  59. package/dist/src/lib/workflow/types.d.ts +89 -0
  60. package/dist/src/lib/workflow/types.d.ts.map +1 -0
  61. package/dist/src/lib/workflow/types.js +23 -0
  62. package/dist/src/lib/workflow/types.js.map +1 -0
  63. package/package.json +69 -0
  64. package/stacks/go.yaml +22 -0
  65. package/stacks/nextjs.yaml +28 -0
  66. package/stacks/python.yaml +24 -0
  67. package/stacks/rust.yaml +23 -0
  68. package/templates/hooks/post-tool.sh +301 -0
  69. package/templates/hooks/pre-tool.sh +350 -0
  70. package/templates/memory/constitution.md +60 -0
  71. package/templates/scripts/cleanup-worktree.sh +78 -0
  72. package/templates/scripts/list-worktrees.sh +50 -0
  73. package/templates/scripts/new-feature.sh +156 -0
  74. package/templates/settings.json +26 -0
  75. package/templates/skills/assess/SKILL.md +428 -0
  76. package/templates/skills/clean/SKILL.md +196 -0
  77. package/templates/skills/docs/SKILL.md +323 -0
  78. package/templates/skills/exec/SKILL.md +426 -0
  79. package/templates/skills/fullsolve/SKILL.md +479 -0
  80. package/templates/skills/loop/SKILL.md +310 -0
  81. package/templates/skills/qa/SKILL.md +261 -0
  82. package/templates/skills/qa/references/code-quality-exemplars.md +112 -0
  83. package/templates/skills/qa/references/code-review-checklist.md +77 -0
  84. package/templates/skills/qa/references/quality-gates.md +95 -0
  85. package/templates/skills/qa/references/testing-requirements.md +109 -0
  86. package/templates/skills/qa/scripts/quality-checks.sh +109 -0
  87. package/templates/skills/reflect/SKILL.md +159 -0
  88. package/templates/skills/reflect/references/documentation-tiers.md +70 -0
  89. package/templates/skills/reflect/references/phase-reflection.md +95 -0
  90. package/templates/skills/reflect/scripts/workflow-queries.ts +165 -0
  91. package/templates/skills/security-review/SKILL.md +344 -0
  92. package/templates/skills/security-review/references/security-checklists.md +377 -0
  93. package/templates/skills/solve/SKILL.md +242 -0
  94. package/templates/skills/spec/SKILL.md +169 -0
  95. package/templates/skills/spec/references/parallel-groups.md +72 -0
  96. package/templates/skills/spec/references/verification-criteria.md +104 -0
  97. package/templates/skills/test/SKILL.md +508 -0
  98. package/templates/skills/testgen/SKILL.md +561 -0
  99. package/templates/skills/verify/SKILL.md +266 -0
@@ -0,0 +1,210 @@
1
+ /**
2
+ * CLI Argument Parser for Pipeline Scripts
3
+ *
4
+ * Typed argument parsing with support for common flags used across all scripts.
5
+ *
6
+ * @example
7
+ * ```typescript
8
+ * import { parseArgs } from './lib/cli-args'
9
+ *
10
+ * const args = parseArgs(process.argv.slice(2))
11
+ * console.log(args.city) // 'nashville'
12
+ * console.log(args.limit) // 10
13
+ * console.log(args.dryRun) // true
14
+ * ```
15
+ */
16
+ /**
17
+ * Parse command line arguments into a typed object.
18
+ *
19
+ * Supports two flag formats:
20
+ * - `--flag=value` (equals format)
21
+ * - `--flag value` (space-separated format)
22
+ *
23
+ * Boolean flags:
24
+ * - `--dry-run` or `--dryRun` → dryRun: true
25
+ * - `--verbose` or `-v` → verbose: true
26
+ * - `--yes` or `-y` → yes: true
27
+ *
28
+ * @param argv - Command line arguments (typically `process.argv.slice(2)`)
29
+ * @param defaults - Optional default values
30
+ * @returns Parsed arguments object
31
+ *
32
+ * @example
33
+ * ```typescript
34
+ * // With default city
35
+ * const args = parseArgs(['--limit', '5'], { city: 'nashville' })
36
+ * // args.city === 'nashville'
37
+ * // args.limit === 5
38
+ *
39
+ * // Boolean flags
40
+ * const args2 = parseArgs(['--dry-run', '--verbose'])
41
+ * // args2.dryRun === true
42
+ * // args2.verbose === true
43
+ * ```
44
+ */
45
+ export function parseArgs(argv, defaults) {
46
+ const result = {
47
+ city: defaults?.city,
48
+ limit: defaults?.limit,
49
+ dryRun: defaults?.dryRun ?? false,
50
+ verbose: defaults?.verbose ?? false,
51
+ yes: defaults?.yes ?? false,
52
+ positional: [],
53
+ };
54
+ let i = 0;
55
+ while (i < argv.length) {
56
+ const arg = argv[i];
57
+ // Boolean flags (no value)
58
+ if (arg === '--dry-run' || arg === '--dryRun') {
59
+ result.dryRun = true;
60
+ i++;
61
+ continue;
62
+ }
63
+ if (arg === '--verbose' || arg === '-v') {
64
+ result.verbose = true;
65
+ i++;
66
+ continue;
67
+ }
68
+ if (arg === '--yes' || arg === '-y') {
69
+ result.yes = true;
70
+ i++;
71
+ continue;
72
+ }
73
+ // Handle --flag=value format
74
+ if (arg.startsWith('--') && arg.includes('=')) {
75
+ const equalsIndex = arg.indexOf('=');
76
+ const key = arg.slice(2, equalsIndex);
77
+ const value = arg.slice(equalsIndex + 1);
78
+ const normalizedKey = normalizeKey(key);
79
+ result[normalizedKey] = parseValue(normalizedKey, value);
80
+ i++;
81
+ continue;
82
+ }
83
+ // Handle --flag value format
84
+ if (arg.startsWith('--')) {
85
+ const key = arg.slice(2);
86
+ const normalizedKey = normalizeKey(key);
87
+ const nextArg = argv[i + 1];
88
+ // Check if next argument exists and is not another flag
89
+ if (nextArg !== undefined && !nextArg.startsWith('-')) {
90
+ result[normalizedKey] = parseValue(normalizedKey, nextArg);
91
+ i += 2;
92
+ }
93
+ else {
94
+ // Treat as boolean flag
95
+ result[normalizedKey] = true;
96
+ i++;
97
+ }
98
+ continue;
99
+ }
100
+ // Handle short flags like -v, -y (already handled above)
101
+ if (arg.startsWith('-') && arg.length === 2) {
102
+ i++;
103
+ continue;
104
+ }
105
+ // Positional argument
106
+ result.positional.push(arg);
107
+ i++;
108
+ }
109
+ return result;
110
+ }
111
+ /**
112
+ * Normalize a flag key to camelCase.
113
+ * Converts kebab-case to camelCase (e.g., 'dry-run' → 'dryRun').
114
+ *
115
+ * @param key - The flag key to normalize
116
+ * @returns Normalized key in camelCase
117
+ */
118
+ export function normalizeKey(key) {
119
+ return key.replace(/-([a-z])/g, (_, letter) => letter.toUpperCase());
120
+ }
121
+ /**
122
+ * Parse a value based on expected type for known keys.
123
+ * Numbers are parsed for 'limit', 'count', 'max', 'min', 'timeout'.
124
+ *
125
+ * @param key - The normalized key
126
+ * @param value - The string value
127
+ * @returns Parsed value (number or string)
128
+ */
129
+ export function parseValue(key, value) {
130
+ const numericKeys = ['limit', 'count', 'max', 'min', 'timeout', 'since', 'days'];
131
+ if (numericKeys.includes(key)) {
132
+ const parsed = parseInt(value, 10);
133
+ return isNaN(parsed) ? value : parsed;
134
+ }
135
+ return value;
136
+ }
137
+ /**
138
+ * Get a required string argument, throwing an error if missing.
139
+ *
140
+ * @param args - Parsed arguments
141
+ * @param key - Argument key to get
142
+ * @param errorMessage - Custom error message if missing
143
+ * @returns The argument value
144
+ * @throws Error if argument is missing
145
+ *
146
+ * @example
147
+ * ```typescript
148
+ * const city = getRequiredArg(args, 'city', 'Missing required --city argument')
149
+ * ```
150
+ */
151
+ export function getRequiredArg(args, key, errorMessage) {
152
+ const value = args[key];
153
+ if (value === undefined || value === '') {
154
+ throw new Error(errorMessage ?? `Missing required argument: --${key}`);
155
+ }
156
+ if (typeof value !== 'string') {
157
+ throw new Error(`Argument --${key} must be a string`);
158
+ }
159
+ return value;
160
+ }
161
+ /**
162
+ * Check if help was requested via --help or -h flag.
163
+ *
164
+ * @param argv - Command line arguments
165
+ * @returns True if help was requested
166
+ */
167
+ export function isHelpRequested(argv) {
168
+ return argv.includes('--help') || argv.includes('-h');
169
+ }
170
+ /**
171
+ * Print usage information for a script.
172
+ *
173
+ * @param scriptName - Name of the script
174
+ * @param description - Brief description
175
+ * @param options - Available options with descriptions
176
+ * @param examples - Usage examples
177
+ *
178
+ * @example
179
+ * ```typescript
180
+ * if (isHelpRequested(process.argv)) {
181
+ * printUsage('discover-shops', 'Discover matcha shops for a city', {
182
+ * '--city <slug>': 'City slug (required)',
183
+ * '--limit <n>': 'Limit API calls',
184
+ * '--dry-run': 'Preview mode, no database writes',
185
+ * }, [
186
+ * 'npx tsx scripts/discover-shops.ts --city nashville',
187
+ * 'npx tsx scripts/discover-shops.ts --city nashville --limit 5',
188
+ * ])
189
+ * process.exit(0)
190
+ * }
191
+ * ```
192
+ */
193
+ export function printUsage(scriptName, description, options, examples) {
194
+ console.log(`\n${scriptName}`);
195
+ console.log(`${'─'.repeat(scriptName.length)}\n`);
196
+ console.log(description);
197
+ console.log('\nOptions:');
198
+ const maxKeyLen = Math.max(...Object.keys(options).map(k => k.length));
199
+ for (const [key, desc] of Object.entries(options)) {
200
+ console.log(` ${key.padEnd(maxKeyLen + 2)} ${desc}`);
201
+ }
202
+ if (examples && examples.length > 0) {
203
+ console.log('\nExamples:');
204
+ for (const example of examples) {
205
+ console.log(` ${example}`);
206
+ }
207
+ }
208
+ console.log('');
209
+ }
210
+ //# sourceMappingURL=cli-args.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-args.js","sourceRoot":"","sources":["../../../../src/lib/workflow/cli-args.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ #!/usr/bin/env npx tsx
2
+ /**
3
+ * execute-issues.ts - TypeScript Claude Code Workflow Automation
4
+ *
5
+ * Executes /spec → /exec → /test → /qa workflow for GitHub issues.
6
+ * TypeScript port of scripts/execute-issues.sh with added features.
7
+ *
8
+ * Usage:
9
+ * npx tsx --env-file=.env.local scripts/dev/execute-issues.ts 123 # Single issue
10
+ * npx tsx --env-file=.env.local scripts/dev/execute-issues.ts 123 124 125 # Multiple parallel
11
+ * PHASES=exec,qa npx tsx --env-file=.env.local scripts/dev/execute-issues.ts 123 # Custom phases
12
+ * PHASES=spec,testgen,exec,qa npx tsx --env-file=.env.local scripts/dev/execute-issues.ts 123 # With test generation
13
+ * npx tsx --env-file=.env.local scripts/dev/execute-issues.ts --batch "123 124" --batch "125 126"
14
+ * npx tsx --env-file=.env.local scripts/dev/execute-issues.ts --sequential 123 124 125 # Respect dependencies
15
+ * QUALITY_LOOP=true npx tsx --env-file=.env.local scripts/dev/execute-issues.ts 123 # Auto-iterate
16
+ * npx tsx scripts/dev/execute-issues.ts --test # Run quick validation tests
17
+ * npx tsx scripts/dev/execute-issues.ts --cleanup-orphans # Clean stale runs
18
+ *
19
+ * Important:
20
+ * Use --env-file=.env.local to enable database logging to workflow_runs table.
21
+ * Without this flag, workflow runs will not be recorded (warning shown at startup).
22
+ *
23
+ * Environment Variables:
24
+ * PHASES - Comma-separated phases (default: spec,exec,qa)
25
+ * Available: spec, testgen, exec, test, qa, loop
26
+ * Note: testgen requires /spec to have run first with verification criteria
27
+ * PHASE_TIMEOUT - Timeout in seconds per phase (default: 1800)
28
+ * QUALITY_LOOP - Enable auto-iteration (default: false). Auto-includes testgen phase.
29
+ * MAX_ITERATIONS - Max fix iterations per phase (default: 3)
30
+ * SKIP_VERIFICATION - Skip /exec verification (default: false)
31
+ *
32
+ * Features:
33
+ * - Auto-detect UI issues for /test inclusion
34
+ * - Optional /testgen phase for shift-left testing (requires /spec comment)
35
+ * - Dependency detection and sequential execution (#355)
36
+ * - Quality loop mode with /loop iterations
37
+ * - Post-exec verification to catch hallucinated implementations
38
+ * - Structured logging to workflow_runs table
39
+ * - Crash cleanup for orphaned runs
40
+ */
41
+ export {};
42
+ //# sourceMappingURL=execute-issues.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execute-issues.d.ts","sourceRoot":"","sources":["../../../../src/lib/workflow/execute-issues.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG"}