create-specfuse 0.6.3 → 0.9.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 +57 -145
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -11
- package/dist/index.js.map +1 -1
- package/dist/prompts.d.ts +2 -2
- package/dist/prompts.d.ts.map +1 -1
- package/dist/prompts.js +3 -82
- package/dist/prompts.js.map +1 -1
- package/dist/scaffolder.d.ts.map +1 -1
- package/dist/scaffolder.js +16 -53
- package/dist/scaffolder.js.map +1 -1
- package/dist/templates/claude-md.d.ts +1 -1
- package/dist/templates/claude-md.d.ts.map +1 -1
- package/dist/templates/claude-md.js +28 -88
- package/dist/templates/claude-md.js.map +1 -1
- package/dist/templates/claude-settings.d.ts +1 -2
- package/dist/templates/claude-settings.d.ts.map +1 -1
- package/dist/templates/claude-settings.js +2 -2
- package/dist/templates/claude-settings.js.map +1 -1
- package/dist/templates/fusereview-skill.d.ts +3 -0
- package/dist/templates/fusereview-skill.d.ts.map +1 -0
- package/dist/templates/fusereview-skill.js +87 -0
- package/dist/templates/fusereview-skill.js.map +1 -0
- package/dist/templates/gitignore.d.ts +1 -2
- package/dist/templates/gitignore.d.ts.map +1 -1
- package/dist/templates/gitignore.js +2 -14
- package/dist/templates/gitignore.js.map +1 -1
- package/dist/templates/openspec-config.d.ts +1 -2
- package/dist/templates/openspec-config.d.ts.map +1 -1
- package/dist/templates/openspec-config.js +34 -3
- package/dist/templates/openspec-config.js.map +1 -1
- package/dist/types.d.ts +0 -24
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/tools.d.ts +0 -3
- package/dist/utils/tools.d.ts.map +1 -1
- package/dist/utils/tools.js +25 -38
- package/dist/utils/tools.js.map +1 -1
- package/package.json +1 -1
- package/dist/stacks/bash.d.ts +0 -5
- package/dist/stacks/bash.d.ts.map +0 -1
- package/dist/stacks/bash.js +0 -66
- package/dist/stacks/bash.js.map +0 -1
- package/dist/stacks/cpp-cmake.d.ts +0 -5
- package/dist/stacks/cpp-cmake.d.ts.map +0 -1
- package/dist/stacks/cpp-cmake.js +0 -74
- package/dist/stacks/cpp-cmake.js.map +0 -1
- package/dist/stacks/detect.d.ts +0 -11
- package/dist/stacks/detect.d.ts.map +0 -1
- package/dist/stacks/detect.js +0 -104
- package/dist/stacks/detect.js.map +0 -1
- package/dist/stacks/dotnet.d.ts +0 -5
- package/dist/stacks/dotnet.d.ts.map +0 -1
- package/dist/stacks/dotnet.js +0 -68
- package/dist/stacks/dotnet.js.map +0 -1
- package/dist/stacks/elixir.d.ts +0 -5
- package/dist/stacks/elixir.d.ts.map +0 -1
- package/dist/stacks/elixir.js +0 -68
- package/dist/stacks/elixir.js.map +0 -1
- package/dist/stacks/go.d.ts +0 -5
- package/dist/stacks/go.d.ts.map +0 -1
- package/dist/stacks/go.js +0 -68
- package/dist/stacks/go.js.map +0 -1
- package/dist/stacks/index.d.ts +0 -7
- package/dist/stacks/index.d.ts.map +0 -1
- package/dist/stacks/index.js +0 -84
- package/dist/stacks/index.js.map +0 -1
- package/dist/stacks/java-gradle.d.ts +0 -5
- package/dist/stacks/java-gradle.d.ts.map +0 -1
- package/dist/stacks/java-gradle.js +0 -69
- package/dist/stacks/java-gradle.js.map +0 -1
- package/dist/stacks/java-maven.d.ts +0 -5
- package/dist/stacks/java-maven.d.ts.map +0 -1
- package/dist/stacks/java-maven.js +0 -67
- package/dist/stacks/java-maven.js.map +0 -1
- package/dist/stacks/kotlin.d.ts +0 -5
- package/dist/stacks/kotlin.d.ts.map +0 -1
- package/dist/stacks/kotlin.js +0 -69
- package/dist/stacks/kotlin.js.map +0 -1
- package/dist/stacks/php.d.ts +0 -5
- package/dist/stacks/php.d.ts.map +0 -1
- package/dist/stacks/php.js +0 -68
- package/dist/stacks/php.js.map +0 -1
- package/dist/stacks/python-fastapi.d.ts +0 -5
- package/dist/stacks/python-fastapi.d.ts.map +0 -1
- package/dist/stacks/python-fastapi.js +0 -75
- package/dist/stacks/python-fastapi.js.map +0 -1
- package/dist/stacks/ruby.d.ts +0 -5
- package/dist/stacks/ruby.d.ts.map +0 -1
- package/dist/stacks/ruby.js +0 -69
- package/dist/stacks/ruby.js.map +0 -1
- package/dist/stacks/rust.d.ts +0 -5
- package/dist/stacks/rust.d.ts.map +0 -1
- package/dist/stacks/rust.js +0 -65
- package/dist/stacks/rust.js.map +0 -1
- package/dist/stacks/scala-sbt.d.ts +0 -5
- package/dist/stacks/scala-sbt.d.ts.map +0 -1
- package/dist/stacks/scala-sbt.js +0 -68
- package/dist/stacks/scala-sbt.js.map +0 -1
- package/dist/stacks/schema.d.ts +0 -91
- package/dist/stacks/schema.d.ts.map +0 -1
- package/dist/stacks/schema.js +0 -23
- package/dist/stacks/schema.js.map +0 -1
- package/dist/stacks/swift.d.ts +0 -5
- package/dist/stacks/swift.d.ts.map +0 -1
- package/dist/stacks/swift.js +0 -69
- package/dist/stacks/swift.js.map +0 -1
- package/dist/stacks/typescript-react.d.ts +0 -5
- package/dist/stacks/typescript-react.d.ts.map +0 -1
- package/dist/stacks/typescript-react.js +0 -73
- package/dist/stacks/typescript-react.js.map +0 -1
- package/dist/templates/grill-me-skill.d.ts +0 -2
- package/dist/templates/grill-me-skill.d.ts.map +0 -1
- package/dist/templates/grill-me-skill.js +0 -70
- package/dist/templates/grill-me-skill.js.map +0 -1
package/dist/stacks/go.js
DELETED
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
export const goStack = {
|
|
2
|
-
id: 'go',
|
|
3
|
-
label: 'Go',
|
|
4
|
-
languages: ['Go'],
|
|
5
|
-
architecture: 'Clean Architecture / Hexagonal (Ports & Adapters)',
|
|
6
|
-
commands: {
|
|
7
|
-
build: 'go build ./...',
|
|
8
|
-
test: 'go test ./...',
|
|
9
|
-
lint: 'golangci-lint run',
|
|
10
|
-
format: 'gofmt -w .',
|
|
11
|
-
},
|
|
12
|
-
errorHandling: 'Go explicit error returns (if err != nil)',
|
|
13
|
-
concurrency: 'Go goroutines + channels',
|
|
14
|
-
permissions: [
|
|
15
|
-
'Bash(go test *)',
|
|
16
|
-
'Bash(go build *)',
|
|
17
|
-
'Bash(go vet *)',
|
|
18
|
-
'Bash(golangci-lint *)',
|
|
19
|
-
'Bash(gofmt *)',
|
|
20
|
-
],
|
|
21
|
-
gitignorePatterns: [
|
|
22
|
-
'/bin/',
|
|
23
|
-
'/dist/',
|
|
24
|
-
'/vendor/',
|
|
25
|
-
],
|
|
26
|
-
openspecContext: `Tech stack: Go backend services
|
|
27
|
-
Build: go build
|
|
28
|
-
Testing: go test
|
|
29
|
-
Code style: gofmt + golangci-lint
|
|
30
|
-
Architecture: Clean Architecture / Hexagonal (ports & adapters)
|
|
31
|
-
Error handling: Go explicit error returns
|
|
32
|
-
Concurrency: Go goroutines + channels`,
|
|
33
|
-
openspecRules: {
|
|
34
|
-
proposal: [
|
|
35
|
-
'Always include a "Non-goals" section to explicitly scope out what this change does NOT do',
|
|
36
|
-
'Include "Trade-offs" section with at least 2 alternative approaches considered',
|
|
37
|
-
'Must reference affected packages by name',
|
|
38
|
-
'Keep proposals under 800 words',
|
|
39
|
-
],
|
|
40
|
-
design: [
|
|
41
|
-
'Must include a dependency diagram (ASCII or mermaid) showing package relationships',
|
|
42
|
-
'Must specify public API surface (interfaces, exported function signatures)',
|
|
43
|
-
'Must address error handling strategy for the change',
|
|
44
|
-
'Must address concurrency implications if applicable',
|
|
45
|
-
],
|
|
46
|
-
specs: [
|
|
47
|
-
'Each spec must be independently testable',
|
|
48
|
-
'Specs must define both success and failure behaviors',
|
|
49
|
-
'Include boundary conditions and edge cases',
|
|
50
|
-
'Reference specific interfaces/types, not vague descriptions',
|
|
51
|
-
],
|
|
52
|
-
tasks: [
|
|
53
|
-
'Break tasks into chunks of max 2 hours of work',
|
|
54
|
-
'Each task must have a clear "done" definition verifiable by running a command',
|
|
55
|
-
'Tasks must follow TDD order - write test first, then implement, then refactor',
|
|
56
|
-
'Every task must include a verification command (go test / specific test function)',
|
|
57
|
-
'Mark blocking dependencies explicitly between tasks',
|
|
58
|
-
],
|
|
59
|
-
},
|
|
60
|
-
};
|
|
61
|
-
export const goDetectionConfig = {
|
|
62
|
-
stackId: 'go',
|
|
63
|
-
markerFiles: ['go.mod', 'go.sum'],
|
|
64
|
-
markerDirs: [],
|
|
65
|
-
fileExtensions: ['.go'],
|
|
66
|
-
priority: 10,
|
|
67
|
-
};
|
|
68
|
-
//# sourceMappingURL=go.js.map
|
package/dist/stacks/go.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"go.js","sourceRoot":"","sources":["../../src/stacks/go.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,OAAO,GAAiB;IACnC,EAAE,EAAE,IAAI;IACR,KAAK,EAAE,IAAI;IACX,SAAS,EAAE,CAAC,IAAI,CAAC;IACjB,YAAY,EAAE,mDAAmD;IACjE,QAAQ,EAAE;QACR,KAAK,EAAE,gBAAgB;QACvB,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,mBAAmB;QACzB,MAAM,EAAE,YAAY;KACrB;IACD,aAAa,EAAE,2CAA2C;IAC1D,WAAW,EAAE,0BAA0B;IACvC,WAAW,EAAE;QACX,iBAAiB;QACjB,kBAAkB;QAClB,gBAAgB;QAChB,uBAAuB;QACvB,eAAe;KAChB;IACD,iBAAiB,EAAE;QACjB,OAAO;QACP,QAAQ;QACR,UAAU;KACX;IACD,eAAe,EAAE;;;;;;sCAMmB;IACpC,aAAa,EAAE;QACb,QAAQ,EAAE;YACR,2FAA2F;YAC3F,gFAAgF;YAChF,0CAA0C;YAC1C,gCAAgC;SACjC;QACD,MAAM,EAAE;YACN,oFAAoF;YACpF,4EAA4E;YAC5E,qDAAqD;YACrD,qDAAqD;SACtD;QACD,KAAK,EAAE;YACL,0CAA0C;YAC1C,sDAAsD;YACtD,4CAA4C;YAC5C,6DAA6D;SAC9D;QACD,KAAK,EAAE;YACL,gDAAgD;YAChD,+EAA+E;YAC/E,+EAA+E;YAC/E,mFAAmF;YACnF,qDAAqD;SACtD;KACF;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAoB;IAChD,OAAO,EAAE,IAAI;IACb,WAAW,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;IACjC,UAAU,EAAE,EAAE;IACd,cAAc,EAAE,CAAC,KAAK,CAAC;IACvB,QAAQ,EAAE,EAAE;CACb,CAAC"}
|
package/dist/stacks/index.d.ts
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import type { StackProfile } from '../types.js';
|
|
2
|
-
import type { DetectionConfig } from './detect.js';
|
|
3
|
-
export declare function getBuiltinStacks(): StackProfile[];
|
|
4
|
-
export declare function getStack(id: string): StackProfile | undefined;
|
|
5
|
-
export declare function getDetectionConfigs(): DetectionConfig[];
|
|
6
|
-
export declare function loadCustomStack(filePath: string): Promise<StackProfile>;
|
|
7
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/stacks/index.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAyCnD,wBAAgB,gBAAgB,IAAI,YAAY,EAAE,CAEjD;AAED,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAE7D;AAED,wBAAgB,mBAAmB,IAAI,eAAe,EAAE,CAEvD;AAED,wBAAsB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAoB7E"}
|
package/dist/stacks/index.js
DELETED
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
import { readFile } from 'node:fs/promises';
|
|
2
|
-
import { parse as parseYAML } from 'yaml';
|
|
3
|
-
import { stackProfileSchema } from './schema.js';
|
|
4
|
-
import { rustStack, rustDetectionConfig } from './rust.js';
|
|
5
|
-
import { goStack, goDetectionConfig } from './go.js';
|
|
6
|
-
import { typescriptReactStack, typescriptReactDetectionConfig } from './typescript-react.js';
|
|
7
|
-
import { pythonFastapiStack, pythonFastapiDetectionConfig } from './python-fastapi.js';
|
|
8
|
-
import { bashStack, bashDetectionConfig } from './bash.js';
|
|
9
|
-
import { javaMavenStack, javaMavenDetectionConfig } from './java-maven.js';
|
|
10
|
-
import { javaGradleStack, javaGradleDetectionConfig } from './java-gradle.js';
|
|
11
|
-
import { cppCmakeStack, cppCmakeDetectionConfig } from './cpp-cmake.js';
|
|
12
|
-
import { rubyStack, rubyDetectionConfig } from './ruby.js';
|
|
13
|
-
import { phpStack, phpDetectionConfig } from './php.js';
|
|
14
|
-
import { kotlinStack, kotlinDetectionConfig } from './kotlin.js';
|
|
15
|
-
import { swiftStack, swiftDetectionConfig } from './swift.js';
|
|
16
|
-
import { elixirStack, elixirDetectionConfig } from './elixir.js';
|
|
17
|
-
import { scalaSbtStack, scalaSbtDetectionConfig } from './scala-sbt.js';
|
|
18
|
-
import { dotnetStack, dotnetDetectionConfig } from './dotnet.js';
|
|
19
|
-
import { registerDetectionConfigs } from './detect.js';
|
|
20
|
-
const BUILTIN_STACKS = [
|
|
21
|
-
rustStack,
|
|
22
|
-
goStack,
|
|
23
|
-
typescriptReactStack,
|
|
24
|
-
pythonFastapiStack,
|
|
25
|
-
bashStack,
|
|
26
|
-
javaMavenStack,
|
|
27
|
-
javaGradleStack,
|
|
28
|
-
cppCmakeStack,
|
|
29
|
-
rubyStack,
|
|
30
|
-
phpStack,
|
|
31
|
-
kotlinStack,
|
|
32
|
-
swiftStack,
|
|
33
|
-
elixirStack,
|
|
34
|
-
scalaSbtStack,
|
|
35
|
-
dotnetStack,
|
|
36
|
-
];
|
|
37
|
-
const DETECTION_CONFIGS = [
|
|
38
|
-
rustDetectionConfig,
|
|
39
|
-
goDetectionConfig,
|
|
40
|
-
typescriptReactDetectionConfig,
|
|
41
|
-
pythonFastapiDetectionConfig,
|
|
42
|
-
bashDetectionConfig,
|
|
43
|
-
javaMavenDetectionConfig,
|
|
44
|
-
javaGradleDetectionConfig,
|
|
45
|
-
cppCmakeDetectionConfig,
|
|
46
|
-
rubyDetectionConfig,
|
|
47
|
-
phpDetectionConfig,
|
|
48
|
-
kotlinDetectionConfig,
|
|
49
|
-
swiftDetectionConfig,
|
|
50
|
-
elixirDetectionConfig,
|
|
51
|
-
scalaSbtDetectionConfig,
|
|
52
|
-
dotnetDetectionConfig,
|
|
53
|
-
];
|
|
54
|
-
// Register detection configs at module load time
|
|
55
|
-
registerDetectionConfigs(DETECTION_CONFIGS);
|
|
56
|
-
export function getBuiltinStacks() {
|
|
57
|
-
return BUILTIN_STACKS;
|
|
58
|
-
}
|
|
59
|
-
export function getStack(id) {
|
|
60
|
-
return BUILTIN_STACKS.find((s) => s.id === id);
|
|
61
|
-
}
|
|
62
|
-
export function getDetectionConfigs() {
|
|
63
|
-
return DETECTION_CONFIGS;
|
|
64
|
-
}
|
|
65
|
-
export async function loadCustomStack(filePath) {
|
|
66
|
-
const raw = await readFile(filePath, 'utf-8');
|
|
67
|
-
const ext = filePath.toLowerCase();
|
|
68
|
-
let data;
|
|
69
|
-
if (ext.endsWith('.json')) {
|
|
70
|
-
data = JSON.parse(raw);
|
|
71
|
-
}
|
|
72
|
-
else {
|
|
73
|
-
data = parseYAML(raw);
|
|
74
|
-
}
|
|
75
|
-
const result = stackProfileSchema.safeParse(data);
|
|
76
|
-
if (!result.success) {
|
|
77
|
-
const issues = result.error.issues
|
|
78
|
-
.map((i) => ` - ${i.path.join('.')}: ${i.message}`)
|
|
79
|
-
.join('\n');
|
|
80
|
-
throw new Error(`Invalid stack profile in ${filePath}:\n${issues}`);
|
|
81
|
-
}
|
|
82
|
-
return result.data;
|
|
83
|
-
}
|
|
84
|
-
//# sourceMappingURL=index.js.map
|
package/dist/stacks/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/stacks/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"java-gradle.d.ts","sourceRoot":"","sources":["../../src/stacks/java-gradle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,eAAO,MAAM,eAAe,EAAE,YA4D7B,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,eAMvC,CAAC"}
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
export const javaGradleStack = {
|
|
2
|
-
id: 'java-gradle',
|
|
3
|
-
label: 'Java (Gradle)',
|
|
4
|
-
languages: ['Java'],
|
|
5
|
-
architecture: 'Clean Architecture / Layered (Controller -> Service -> Repository)',
|
|
6
|
-
commands: {
|
|
7
|
-
build: 'gradle build -x test',
|
|
8
|
-
test: 'gradle test',
|
|
9
|
-
lint: 'gradle checkstyleMain',
|
|
10
|
-
format: 'gradle spotlessApply',
|
|
11
|
-
},
|
|
12
|
-
errorHandling: 'Java checked/unchecked exceptions + custom exception hierarchy',
|
|
13
|
-
concurrency: 'Java virtual threads (Project Loom) + CompletableFuture',
|
|
14
|
-
permissions: [
|
|
15
|
-
'Bash(gradle *)',
|
|
16
|
-
'Bash(gradlew *)',
|
|
17
|
-
'Bash(java *)',
|
|
18
|
-
],
|
|
19
|
-
gitignorePatterns: [
|
|
20
|
-
'/build/',
|
|
21
|
-
'.gradle/',
|
|
22
|
-
'*.class',
|
|
23
|
-
'*.jar',
|
|
24
|
-
'.idea/',
|
|
25
|
-
'*.iml',
|
|
26
|
-
],
|
|
27
|
-
openspecContext: `Tech stack: Java (Gradle) backend services
|
|
28
|
-
Build: gradle build
|
|
29
|
-
Testing: gradle test
|
|
30
|
-
Code style: checkstyle + spotless
|
|
31
|
-
Architecture: Clean Architecture / Layered (Controller -> Service -> Repository)
|
|
32
|
-
Error handling: Java checked/unchecked exceptions + custom exception hierarchy
|
|
33
|
-
Concurrency: Java virtual threads (Project Loom) + CompletableFuture`,
|
|
34
|
-
openspecRules: {
|
|
35
|
-
proposal: [
|
|
36
|
-
'Always include a "Non-goals" section to explicitly scope out what this change does NOT do',
|
|
37
|
-
'Include "Trade-offs" section with at least 2 alternative approaches considered',
|
|
38
|
-
'Must reference affected modules/packages by name',
|
|
39
|
-
'Keep proposals under 800 words',
|
|
40
|
-
],
|
|
41
|
-
design: [
|
|
42
|
-
'Must include a dependency diagram (ASCII or mermaid) showing module relationships',
|
|
43
|
-
'Must specify public API surface (interfaces, class signatures, endpoint contracts)',
|
|
44
|
-
'Must address error handling strategy for the change',
|
|
45
|
-
'Must address concurrency implications if applicable',
|
|
46
|
-
],
|
|
47
|
-
specs: [
|
|
48
|
-
'Each spec must be independently testable',
|
|
49
|
-
'Specs must define both success and failure behaviors',
|
|
50
|
-
'Include boundary conditions and edge cases',
|
|
51
|
-
'Reference specific classes/interfaces, not vague descriptions',
|
|
52
|
-
],
|
|
53
|
-
tasks: [
|
|
54
|
-
'Break tasks into chunks of max 2 hours of work',
|
|
55
|
-
'Each task must have a clear "done" definition verifiable by running a command',
|
|
56
|
-
'Tasks must follow TDD order - write test first, then implement, then refactor',
|
|
57
|
-
'Every task must include a verification command (gradle test / specific test class)',
|
|
58
|
-
'Mark blocking dependencies explicitly between tasks',
|
|
59
|
-
],
|
|
60
|
-
},
|
|
61
|
-
};
|
|
62
|
-
export const javaGradleDetectionConfig = {
|
|
63
|
-
stackId: 'java-gradle',
|
|
64
|
-
markerFiles: ['build.gradle', 'build.gradle.kts', 'gradlew'],
|
|
65
|
-
markerDirs: [],
|
|
66
|
-
fileExtensions: ['.java'],
|
|
67
|
-
priority: 10,
|
|
68
|
-
};
|
|
69
|
-
//# sourceMappingURL=java-gradle.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"java-gradle.js","sourceRoot":"","sources":["../../src/stacks/java-gradle.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,eAAe,GAAiB;IAC3C,EAAE,EAAE,aAAa;IACjB,KAAK,EAAE,eAAe;IACtB,SAAS,EAAE,CAAC,MAAM,CAAC;IACnB,YAAY,EAAE,oEAAoE;IAClF,QAAQ,EAAE;QACR,KAAK,EAAE,sBAAsB;QAC7B,IAAI,EAAE,aAAa;QACnB,IAAI,EAAE,uBAAuB;QAC7B,MAAM,EAAE,sBAAsB;KAC/B;IACD,aAAa,EAAE,gEAAgE;IAC/E,WAAW,EAAE,yDAAyD;IACtE,WAAW,EAAE;QACX,gBAAgB;QAChB,iBAAiB;QACjB,cAAc;KACf;IACD,iBAAiB,EAAE;QACjB,SAAS;QACT,UAAU;QACV,SAAS;QACT,OAAO;QACP,QAAQ;QACR,OAAO;KACR;IACD,eAAe,EAAE;;;;;;qEAMkD;IACnE,aAAa,EAAE;QACb,QAAQ,EAAE;YACR,2FAA2F;YAC3F,gFAAgF;YAChF,kDAAkD;YAClD,gCAAgC;SACjC;QACD,MAAM,EAAE;YACN,mFAAmF;YACnF,oFAAoF;YACpF,qDAAqD;YACrD,qDAAqD;SACtD;QACD,KAAK,EAAE;YACL,0CAA0C;YAC1C,sDAAsD;YACtD,4CAA4C;YAC5C,+DAA+D;SAChE;QACD,KAAK,EAAE;YACL,gDAAgD;YAChD,+EAA+E;YAC/E,+EAA+E;YAC/E,oFAAoF;YACpF,qDAAqD;SACtD;KACF;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAoB;IACxD,OAAO,EAAE,aAAa;IACtB,WAAW,EAAE,CAAC,cAAc,EAAE,kBAAkB,EAAE,SAAS,CAAC;IAC5D,UAAU,EAAE,EAAE;IACd,cAAc,EAAE,CAAC,OAAO,CAAC;IACzB,QAAQ,EAAE,EAAE;CACb,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"java-maven.d.ts","sourceRoot":"","sources":["../../src/stacks/java-maven.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,eAAO,MAAM,cAAc,EAAE,YA0D5B,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,eAMtC,CAAC"}
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
export const javaMavenStack = {
|
|
2
|
-
id: 'java-maven',
|
|
3
|
-
label: 'Java (Maven)',
|
|
4
|
-
languages: ['Java'],
|
|
5
|
-
architecture: 'Clean Architecture / Layered (Controller -> Service -> Repository)',
|
|
6
|
-
commands: {
|
|
7
|
-
build: 'mvn package -DskipTests',
|
|
8
|
-
test: 'mvn test',
|
|
9
|
-
lint: 'mvn checkstyle:check',
|
|
10
|
-
format: 'mvn spotless:apply',
|
|
11
|
-
},
|
|
12
|
-
errorHandling: 'Java checked/unchecked exceptions + custom exception hierarchy',
|
|
13
|
-
concurrency: 'Java virtual threads (Project Loom) + CompletableFuture',
|
|
14
|
-
permissions: [
|
|
15
|
-
'Bash(mvn *)',
|
|
16
|
-
'Bash(java *)',
|
|
17
|
-
],
|
|
18
|
-
gitignorePatterns: [
|
|
19
|
-
'/target/',
|
|
20
|
-
'*.class',
|
|
21
|
-
'*.jar',
|
|
22
|
-
'.idea/',
|
|
23
|
-
'*.iml',
|
|
24
|
-
],
|
|
25
|
-
openspecContext: `Tech stack: Java (Maven) backend services
|
|
26
|
-
Build: mvn package
|
|
27
|
-
Testing: mvn test
|
|
28
|
-
Code style: checkstyle + spotless
|
|
29
|
-
Architecture: Clean Architecture / Layered (Controller -> Service -> Repository)
|
|
30
|
-
Error handling: Java checked/unchecked exceptions + custom exception hierarchy
|
|
31
|
-
Concurrency: Java virtual threads (Project Loom) + CompletableFuture`,
|
|
32
|
-
openspecRules: {
|
|
33
|
-
proposal: [
|
|
34
|
-
'Always include a "Non-goals" section to explicitly scope out what this change does NOT do',
|
|
35
|
-
'Include "Trade-offs" section with at least 2 alternative approaches considered',
|
|
36
|
-
'Must reference affected modules/packages by name',
|
|
37
|
-
'Keep proposals under 800 words',
|
|
38
|
-
],
|
|
39
|
-
design: [
|
|
40
|
-
'Must include a dependency diagram (ASCII or mermaid) showing module relationships',
|
|
41
|
-
'Must specify public API surface (interfaces, class signatures, endpoint contracts)',
|
|
42
|
-
'Must address error handling strategy for the change',
|
|
43
|
-
'Must address concurrency implications if applicable',
|
|
44
|
-
],
|
|
45
|
-
specs: [
|
|
46
|
-
'Each spec must be independently testable',
|
|
47
|
-
'Specs must define both success and failure behaviors',
|
|
48
|
-
'Include boundary conditions and edge cases',
|
|
49
|
-
'Reference specific classes/interfaces, not vague descriptions',
|
|
50
|
-
],
|
|
51
|
-
tasks: [
|
|
52
|
-
'Break tasks into chunks of max 2 hours of work',
|
|
53
|
-
'Each task must have a clear "done" definition verifiable by running a command',
|
|
54
|
-
'Tasks must follow TDD order - write test first, then implement, then refactor',
|
|
55
|
-
'Every task must include a verification command (mvn test / specific test class)',
|
|
56
|
-
'Mark blocking dependencies explicitly between tasks',
|
|
57
|
-
],
|
|
58
|
-
},
|
|
59
|
-
};
|
|
60
|
-
export const javaMavenDetectionConfig = {
|
|
61
|
-
stackId: 'java-maven',
|
|
62
|
-
markerFiles: ['pom.xml'],
|
|
63
|
-
markerDirs: ['src/main/java'],
|
|
64
|
-
fileExtensions: ['.java'],
|
|
65
|
-
priority: 10,
|
|
66
|
-
};
|
|
67
|
-
//# sourceMappingURL=java-maven.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"java-maven.js","sourceRoot":"","sources":["../../src/stacks/java-maven.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,cAAc,GAAiB;IAC1C,EAAE,EAAE,YAAY;IAChB,KAAK,EAAE,cAAc;IACrB,SAAS,EAAE,CAAC,MAAM,CAAC;IACnB,YAAY,EAAE,oEAAoE;IAClF,QAAQ,EAAE;QACR,KAAK,EAAE,yBAAyB;QAChC,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,sBAAsB;QAC5B,MAAM,EAAE,oBAAoB;KAC7B;IACD,aAAa,EAAE,gEAAgE;IAC/E,WAAW,EAAE,yDAAyD;IACtE,WAAW,EAAE;QACX,aAAa;QACb,cAAc;KACf;IACD,iBAAiB,EAAE;QACjB,UAAU;QACV,SAAS;QACT,OAAO;QACP,QAAQ;QACR,OAAO;KACR;IACD,eAAe,EAAE;;;;;;qEAMkD;IACnE,aAAa,EAAE;QACb,QAAQ,EAAE;YACR,2FAA2F;YAC3F,gFAAgF;YAChF,kDAAkD;YAClD,gCAAgC;SACjC;QACD,MAAM,EAAE;YACN,mFAAmF;YACnF,oFAAoF;YACpF,qDAAqD;YACrD,qDAAqD;SACtD;QACD,KAAK,EAAE;YACL,0CAA0C;YAC1C,sDAAsD;YACtD,4CAA4C;YAC5C,+DAA+D;SAChE;QACD,KAAK,EAAE;YACL,gDAAgD;YAChD,+EAA+E;YAC/E,+EAA+E;YAC/E,iFAAiF;YACjF,qDAAqD;SACtD;KACF;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAoB;IACvD,OAAO,EAAE,YAAY;IACrB,WAAW,EAAE,CAAC,SAAS,CAAC;IACxB,UAAU,EAAE,CAAC,eAAe,CAAC;IAC7B,cAAc,EAAE,CAAC,OAAO,CAAC;IACzB,QAAQ,EAAE,EAAE;CACb,CAAC"}
|
package/dist/stacks/kotlin.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"kotlin.d.ts","sourceRoot":"","sources":["../../src/stacks/kotlin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,eAAO,MAAM,WAAW,EAAE,YA4DzB,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,eAMnC,CAAC"}
|
package/dist/stacks/kotlin.js
DELETED
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
export const kotlinStack = {
|
|
2
|
-
id: 'kotlin',
|
|
3
|
-
label: 'Kotlin',
|
|
4
|
-
languages: ['Kotlin'],
|
|
5
|
-
architecture: 'Clean Architecture / MVVM',
|
|
6
|
-
commands: {
|
|
7
|
-
build: 'gradle build -x test',
|
|
8
|
-
test: 'gradle test',
|
|
9
|
-
lint: 'ktlint',
|
|
10
|
-
format: 'ktlint -F',
|
|
11
|
-
},
|
|
12
|
-
errorHandling: 'Kotlin exceptions + sealed classes + Result type',
|
|
13
|
-
concurrency: 'Kotlin coroutines + Flow',
|
|
14
|
-
permissions: [
|
|
15
|
-
'Bash(gradle *)',
|
|
16
|
-
'Bash(gradlew *)',
|
|
17
|
-
'Bash(ktlint *)',
|
|
18
|
-
'Bash(kotlin *)',
|
|
19
|
-
],
|
|
20
|
-
gitignorePatterns: [
|
|
21
|
-
'/build/',
|
|
22
|
-
'.gradle/',
|
|
23
|
-
'*.class',
|
|
24
|
-
'.idea/',
|
|
25
|
-
'*.iml',
|
|
26
|
-
],
|
|
27
|
-
openspecContext: `Tech stack: Kotlin
|
|
28
|
-
Build: gradle build -x test
|
|
29
|
-
Testing: gradle test
|
|
30
|
-
Code style: ktlint
|
|
31
|
-
Architecture: Clean Architecture / MVVM
|
|
32
|
-
Error handling: Kotlin exceptions + sealed classes + Result type
|
|
33
|
-
Concurrency: Kotlin coroutines + Flow`,
|
|
34
|
-
openspecRules: {
|
|
35
|
-
proposal: [
|
|
36
|
-
'Always include a "Non-goals" section to explicitly scope out what this change does NOT do',
|
|
37
|
-
'Include "Trade-offs" section with at least 2 alternative approaches considered',
|
|
38
|
-
'Must reference affected modules/packages by name',
|
|
39
|
-
'Keep proposals under 800 words',
|
|
40
|
-
],
|
|
41
|
-
design: [
|
|
42
|
-
'Must include a dependency diagram (ASCII or mermaid) showing module relationships',
|
|
43
|
-
'Must specify public API surface (interfaces, class signatures)',
|
|
44
|
-
'Must address error handling strategy for the change',
|
|
45
|
-
'Must address concurrency implications if applicable',
|
|
46
|
-
],
|
|
47
|
-
specs: [
|
|
48
|
-
'Each spec must be independently testable',
|
|
49
|
-
'Specs must define both success and failure behaviors',
|
|
50
|
-
'Include boundary conditions and edge cases',
|
|
51
|
-
'Reference specific types/classes, not vague descriptions',
|
|
52
|
-
],
|
|
53
|
-
tasks: [
|
|
54
|
-
'Break tasks into chunks of max 2 hours of work',
|
|
55
|
-
'Each task must have a clear "done" definition verifiable by running a command',
|
|
56
|
-
'Tasks must follow TDD order - write test first, then implement, then refactor',
|
|
57
|
-
'Every task must include a verification command (gradle test / specific test class)',
|
|
58
|
-
'Mark blocking dependencies explicitly between tasks',
|
|
59
|
-
],
|
|
60
|
-
},
|
|
61
|
-
};
|
|
62
|
-
export const kotlinDetectionConfig = {
|
|
63
|
-
stackId: 'kotlin',
|
|
64
|
-
markerFiles: [],
|
|
65
|
-
markerDirs: [],
|
|
66
|
-
fileExtensions: ['.kt', '.kts'],
|
|
67
|
-
priority: 10,
|
|
68
|
-
};
|
|
69
|
-
//# sourceMappingURL=kotlin.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"kotlin.js","sourceRoot":"","sources":["../../src/stacks/kotlin.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,WAAW,GAAiB;IACvC,EAAE,EAAE,QAAQ;IACZ,KAAK,EAAE,QAAQ;IACf,SAAS,EAAE,CAAC,QAAQ,CAAC;IACrB,YAAY,EAAE,2BAA2B;IACzC,QAAQ,EAAE;QACR,KAAK,EAAE,sBAAsB;QAC7B,IAAI,EAAE,aAAa;QACnB,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,WAAW;KACpB;IACD,aAAa,EAAE,kDAAkD;IACjE,WAAW,EAAE,0BAA0B;IACvC,WAAW,EAAE;QACX,gBAAgB;QAChB,iBAAiB;QACjB,gBAAgB;QAChB,gBAAgB;KACjB;IACD,iBAAiB,EAAE;QACjB,SAAS;QACT,UAAU;QACV,SAAS;QACT,QAAQ;QACR,OAAO;KACR;IACD,eAAe,EAAE;;;;;;sCAMmB;IACpC,aAAa,EAAE;QACb,QAAQ,EAAE;YACR,2FAA2F;YAC3F,gFAAgF;YAChF,kDAAkD;YAClD,gCAAgC;SACjC;QACD,MAAM,EAAE;YACN,mFAAmF;YACnF,gEAAgE;YAChE,qDAAqD;YACrD,qDAAqD;SACtD;QACD,KAAK,EAAE;YACL,0CAA0C;YAC1C,sDAAsD;YACtD,4CAA4C;YAC5C,0DAA0D;SAC3D;QACD,KAAK,EAAE;YACL,gDAAgD;YAChD,+EAA+E;YAC/E,+EAA+E;YAC/E,oFAAoF;YACpF,qDAAqD;SACtD;KACF;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAoB;IACpD,OAAO,EAAE,QAAQ;IACjB,WAAW,EAAE,EAAE;IACf,UAAU,EAAE,EAAE;IACd,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC;IAC/B,QAAQ,EAAE,EAAE;CACb,CAAC"}
|
package/dist/stacks/php.d.ts
DELETED
package/dist/stacks/php.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"php.d.ts","sourceRoot":"","sources":["../../src/stacks/php.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,eAAO,MAAM,QAAQ,EAAE,YA2DtB,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,eAMhC,CAAC"}
|
package/dist/stacks/php.js
DELETED
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
export const phpStack = {
|
|
2
|
-
id: 'php',
|
|
3
|
-
label: 'PHP',
|
|
4
|
-
languages: ['PHP'],
|
|
5
|
-
architecture: 'MVC / Layered',
|
|
6
|
-
commands: {
|
|
7
|
-
build: 'composer install',
|
|
8
|
-
test: 'vendor/bin/phpunit',
|
|
9
|
-
lint: 'vendor/bin/phpstan analyse',
|
|
10
|
-
format: 'vendor/bin/php-cs-fixer fix',
|
|
11
|
-
},
|
|
12
|
-
errorHandling: 'PHP exceptions + typed error handlers',
|
|
13
|
-
concurrency: 'PHP Fibers (PHP 8.1+) + async frameworks',
|
|
14
|
-
permissions: [
|
|
15
|
-
'Bash(php *)',
|
|
16
|
-
'Bash(composer *)',
|
|
17
|
-
'Bash(vendor/bin/phpunit *)',
|
|
18
|
-
'Bash(vendor/bin/phpstan *)',
|
|
19
|
-
],
|
|
20
|
-
gitignorePatterns: [
|
|
21
|
-
'/vendor/',
|
|
22
|
-
'*.cache',
|
|
23
|
-
'.phpunit.result.cache',
|
|
24
|
-
'.php-cs-fixer.cache',
|
|
25
|
-
],
|
|
26
|
-
openspecContext: `Tech stack: PHP
|
|
27
|
-
Build: composer install
|
|
28
|
-
Testing: vendor/bin/phpunit
|
|
29
|
-
Code style: phpstan + php-cs-fixer
|
|
30
|
-
Architecture: MVC / Layered
|
|
31
|
-
Error handling: PHP exceptions + typed error handlers
|
|
32
|
-
Concurrency: PHP Fibers (PHP 8.1+) + async frameworks`,
|
|
33
|
-
openspecRules: {
|
|
34
|
-
proposal: [
|
|
35
|
-
'Always include a "Non-goals" section to explicitly scope out what this change does NOT do',
|
|
36
|
-
'Include "Trade-offs" section with at least 2 alternative approaches considered',
|
|
37
|
-
'Must reference affected packages/namespaces by name',
|
|
38
|
-
'Keep proposals under 800 words',
|
|
39
|
-
],
|
|
40
|
-
design: [
|
|
41
|
-
'Must include a dependency diagram (ASCII or mermaid) showing namespace/package relationships',
|
|
42
|
-
'Must specify public API surface (classes, interfaces, method signatures)',
|
|
43
|
-
'Must address error handling strategy for the change',
|
|
44
|
-
'Must address concurrency implications if applicable',
|
|
45
|
-
],
|
|
46
|
-
specs: [
|
|
47
|
-
'Each spec must be independently testable',
|
|
48
|
-
'Specs must define both success and failure behaviors',
|
|
49
|
-
'Include boundary conditions and edge cases',
|
|
50
|
-
'Reference specific classes/interfaces/methods, not vague descriptions',
|
|
51
|
-
],
|
|
52
|
-
tasks: [
|
|
53
|
-
'Break tasks into chunks of max 2 hours of work',
|
|
54
|
-
'Each task must have a clear "done" definition verifiable by running a command',
|
|
55
|
-
'Tasks must follow TDD order - write test first, then implement, then refactor',
|
|
56
|
-
'Every task must include a verification command (vendor/bin/phpunit / specific test file)',
|
|
57
|
-
'Mark blocking dependencies explicitly between tasks',
|
|
58
|
-
],
|
|
59
|
-
},
|
|
60
|
-
};
|
|
61
|
-
export const phpDetectionConfig = {
|
|
62
|
-
stackId: 'php',
|
|
63
|
-
markerFiles: ['composer.json', 'composer.lock'],
|
|
64
|
-
markerDirs: [],
|
|
65
|
-
fileExtensions: ['.php'],
|
|
66
|
-
priority: 10,
|
|
67
|
-
};
|
|
68
|
-
//# sourceMappingURL=php.js.map
|
package/dist/stacks/php.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"php.js","sourceRoot":"","sources":["../../src/stacks/php.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,QAAQ,GAAiB;IACpC,EAAE,EAAE,KAAK;IACT,KAAK,EAAE,KAAK;IACZ,SAAS,EAAE,CAAC,KAAK,CAAC;IAClB,YAAY,EAAE,eAAe;IAC7B,QAAQ,EAAE;QACR,KAAK,EAAE,kBAAkB;QACzB,IAAI,EAAE,oBAAoB;QAC1B,IAAI,EAAE,4BAA4B;QAClC,MAAM,EAAE,6BAA6B;KACtC;IACD,aAAa,EAAE,uCAAuC;IACtD,WAAW,EAAE,0CAA0C;IACvD,WAAW,EAAE;QACX,aAAa;QACb,kBAAkB;QAClB,4BAA4B;QAC5B,4BAA4B;KAC7B;IACD,iBAAiB,EAAE;QACjB,UAAU;QACV,SAAS;QACT,uBAAuB;QACvB,qBAAqB;KACtB;IACD,eAAe,EAAE;;;;;;sDAMmC;IACpD,aAAa,EAAE;QACb,QAAQ,EAAE;YACR,2FAA2F;YAC3F,gFAAgF;YAChF,qDAAqD;YACrD,gCAAgC;SACjC;QACD,MAAM,EAAE;YACN,8FAA8F;YAC9F,0EAA0E;YAC1E,qDAAqD;YACrD,qDAAqD;SACtD;QACD,KAAK,EAAE;YACL,0CAA0C;YAC1C,sDAAsD;YACtD,4CAA4C;YAC5C,uEAAuE;SACxE;QACD,KAAK,EAAE;YACL,gDAAgD;YAChD,+EAA+E;YAC/E,+EAA+E;YAC/E,0FAA0F;YAC1F,qDAAqD;SACtD;KACF;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAoB;IACjD,OAAO,EAAE,KAAK;IACd,WAAW,EAAE,CAAC,eAAe,EAAE,eAAe,CAAC;IAC/C,UAAU,EAAE,EAAE;IACd,cAAc,EAAE,CAAC,MAAM,CAAC;IACxB,QAAQ,EAAE,EAAE;CACb,CAAC"}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import type { StackProfile } from '../types.js';
|
|
2
|
-
import type { DetectionConfig } from './detect.js';
|
|
3
|
-
export declare const pythonFastapiStack: StackProfile;
|
|
4
|
-
export declare const pythonFastapiDetectionConfig: DetectionConfig;
|
|
5
|
-
//# sourceMappingURL=python-fastapi.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"python-fastapi.d.ts","sourceRoot":"","sources":["../../src/stacks/python-fastapi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,eAAO,MAAM,kBAAkB,EAAE,YAkEhC,CAAC;AAEF,eAAO,MAAM,4BAA4B,EAAE,eAM1C,CAAC"}
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
export const pythonFastapiStack = {
|
|
2
|
-
id: 'python-fastapi',
|
|
3
|
-
label: 'Python + FastAPI',
|
|
4
|
-
languages: ['Python'],
|
|
5
|
-
framework: 'FastAPI',
|
|
6
|
-
architecture: 'Clean Architecture / Layered (API -> Service -> Repository)',
|
|
7
|
-
commands: {
|
|
8
|
-
build: 'pip install -e .',
|
|
9
|
-
test: 'python -m pytest tests/ -v',
|
|
10
|
-
lint: 'ruff check .',
|
|
11
|
-
format: 'ruff format .',
|
|
12
|
-
typecheck: 'mypy src/',
|
|
13
|
-
},
|
|
14
|
-
errorHandling: 'Python exceptions + FastAPI HTTPException + custom error handlers',
|
|
15
|
-
concurrency: 'Python asyncio + FastAPI async endpoints',
|
|
16
|
-
permissions: [
|
|
17
|
-
'Bash(python -m pytest *)',
|
|
18
|
-
'Bash(pip install *)',
|
|
19
|
-
'Bash(ruff *)',
|
|
20
|
-
'Bash(mypy *)',
|
|
21
|
-
'Bash(uvicorn *)',
|
|
22
|
-
'Bash(python *)',
|
|
23
|
-
],
|
|
24
|
-
gitignorePatterns: [
|
|
25
|
-
'__pycache__/',
|
|
26
|
-
'*.egg-info/',
|
|
27
|
-
'.venv/',
|
|
28
|
-
'*.pyc',
|
|
29
|
-
'.mypy_cache/',
|
|
30
|
-
'.ruff_cache/',
|
|
31
|
-
'/dist/',
|
|
32
|
-
],
|
|
33
|
-
openspecContext: `Tech stack: Python + FastAPI backend services
|
|
34
|
-
Build: pip install -e .
|
|
35
|
-
Testing: pytest
|
|
36
|
-
Code style: ruff (check + format) + mypy
|
|
37
|
-
Architecture: Clean Architecture / Layered (API -> Service -> Repository)
|
|
38
|
-
Error handling: Python exceptions + FastAPI HTTPException
|
|
39
|
-
Concurrency: Python asyncio + FastAPI async endpoints`,
|
|
40
|
-
openspecRules: {
|
|
41
|
-
proposal: [
|
|
42
|
-
'Always include a "Non-goals" section to explicitly scope out what this change does NOT do',
|
|
43
|
-
'Include "Trade-offs" section with at least 2 alternative approaches considered',
|
|
44
|
-
'Must reference affected modules/packages by name',
|
|
45
|
-
'Keep proposals under 800 words',
|
|
46
|
-
],
|
|
47
|
-
design: [
|
|
48
|
-
'Must include a dependency diagram (ASCII or mermaid) showing module relationships',
|
|
49
|
-
'Must specify public API surface (Pydantic models, endpoint signatures)',
|
|
50
|
-
'Must address error handling strategy for the change',
|
|
51
|
-
'Must address async/concurrency implications if applicable',
|
|
52
|
-
],
|
|
53
|
-
specs: [
|
|
54
|
-
'Each spec must be independently testable',
|
|
55
|
-
'Specs must define both success and failure behaviors',
|
|
56
|
-
'Include boundary conditions and edge cases',
|
|
57
|
-
'Reference specific classes/models/types, not vague descriptions',
|
|
58
|
-
],
|
|
59
|
-
tasks: [
|
|
60
|
-
'Break tasks into chunks of max 2 hours of work',
|
|
61
|
-
'Each task must have a clear "done" definition verifiable by running a command',
|
|
62
|
-
'Tasks must follow TDD order - write test first, then implement, then refactor',
|
|
63
|
-
'Every task must include a verification command (pytest / specific test function)',
|
|
64
|
-
'Mark blocking dependencies explicitly between tasks',
|
|
65
|
-
],
|
|
66
|
-
},
|
|
67
|
-
};
|
|
68
|
-
export const pythonFastapiDetectionConfig = {
|
|
69
|
-
stackId: 'python-fastapi',
|
|
70
|
-
markerFiles: ['requirements.txt', 'pyproject.toml', 'setup.py', 'Pipfile'],
|
|
71
|
-
markerDirs: [],
|
|
72
|
-
fileExtensions: ['.py'],
|
|
73
|
-
priority: 10,
|
|
74
|
-
};
|
|
75
|
-
//# sourceMappingURL=python-fastapi.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"python-fastapi.js","sourceRoot":"","sources":["../../src/stacks/python-fastapi.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,kBAAkB,GAAiB;IAC9C,EAAE,EAAE,gBAAgB;IACpB,KAAK,EAAE,kBAAkB;IACzB,SAAS,EAAE,CAAC,QAAQ,CAAC;IACrB,SAAS,EAAE,SAAS;IACpB,YAAY,EAAE,6DAA6D;IAC3E,QAAQ,EAAE;QACR,KAAK,EAAE,kBAAkB;QACzB,IAAI,EAAE,4BAA4B;QAClC,IAAI,EAAE,cAAc;QACpB,MAAM,EAAE,eAAe;QACvB,SAAS,EAAE,WAAW;KACvB;IACD,aAAa,EAAE,mEAAmE;IAClF,WAAW,EAAE,0CAA0C;IACvD,WAAW,EAAE;QACX,0BAA0B;QAC1B,qBAAqB;QACrB,cAAc;QACd,cAAc;QACd,iBAAiB;QACjB,gBAAgB;KACjB;IACD,iBAAiB,EAAE;QACjB,cAAc;QACd,aAAa;QACb,QAAQ;QACR,OAAO;QACP,cAAc;QACd,cAAc;QACd,QAAQ;KACT;IACD,eAAe,EAAE;;;;;;sDAMmC;IACpD,aAAa,EAAE;QACb,QAAQ,EAAE;YACR,2FAA2F;YAC3F,gFAAgF;YAChF,kDAAkD;YAClD,gCAAgC;SACjC;QACD,MAAM,EAAE;YACN,mFAAmF;YACnF,wEAAwE;YACxE,qDAAqD;YACrD,2DAA2D;SAC5D;QACD,KAAK,EAAE;YACL,0CAA0C;YAC1C,sDAAsD;YACtD,4CAA4C;YAC5C,iEAAiE;SAClE;QACD,KAAK,EAAE;YACL,gDAAgD;YAChD,+EAA+E;YAC/E,+EAA+E;YAC/E,kFAAkF;YAClF,qDAAqD;SACtD;KACF;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,4BAA4B,GAAoB;IAC3D,OAAO,EAAE,gBAAgB;IACzB,WAAW,EAAE,CAAC,kBAAkB,EAAE,gBAAgB,EAAE,UAAU,EAAE,SAAS,CAAC;IAC1E,UAAU,EAAE,EAAE;IACd,cAAc,EAAE,CAAC,KAAK,CAAC;IACvB,QAAQ,EAAE,EAAE;CACb,CAAC"}
|
package/dist/stacks/ruby.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ruby.d.ts","sourceRoot":"","sources":["../../src/stacks/ruby.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,eAAO,MAAM,SAAS,EAAE,YA4DvB,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,eAMjC,CAAC"}
|