Skip to content

Commit 3a773d3

Browse files
committed
feat/initial commit
0 parents  commit 3a773d3

72 files changed

Lines changed: 20663 additions & 0 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.commitlintrc.js

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
module.exports = {
2+
extends: ['@commitlint/config-conventional'],
3+
rules: {
4+
'type-enum': [
5+
2,
6+
'always',
7+
[
8+
'feat',
9+
'fix',
10+
'docs',
11+
'style',
12+
'refactor',
13+
'perf',
14+
'test',
15+
'build',
16+
'ci',
17+
'chore',
18+
'revert',
19+
'security',
20+
],
21+
],
22+
'scope-enum': [
23+
2,
24+
'always',
25+
[
26+
'github-app',
27+
'controller',
28+
'ai-service',
29+
'rust-worker',
30+
'lean-engine',
31+
'shared-types',
32+
'shared-utils',
33+
'shared-config',
34+
'infrastructure',
35+
'docs',
36+
'deps',
37+
'release',
38+
],
39+
],
40+
'subject-case': [2, 'always', 'lower-case'],
41+
'subject-empty': [2, 'never'],
42+
'subject-full-stop': [2, 'never', '.'],
43+
'header-max-length': [2, 'always', 72],
44+
'body-leading-blank': [2, 'always'],
45+
'footer-leading-blank': [2, 'always'],
46+
},
47+
};

.editorconfig

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
root = true
2+
3+
[*]
4+
charset = utf-8
5+
end_of_line = lf
6+
insert_final_newline = true
7+
trim_trailing_whitespace = true
8+
indent_style = space
9+
indent_size = 2
10+
11+
[*.{js,ts,jsx,tsx,json,yml,yaml}]
12+
indent_size = 2
13+
14+
[*.{py}]
15+
indent_size = 4
16+
17+
[*.{rs}]
18+
indent_size = 4
19+
20+
[*.{go}]
21+
indent_size = 4
22+
23+
[*.{lean}]
24+
indent_size = 2
25+
26+
[*.{md}]
27+
trim_trailing_whitespace = false
28+
29+
[*.{dockerfile,Dockerfile}]
30+
indent_size = 4
31+
32+
[*.{tf,tfvars}]
33+
indent_size = 2
34+
35+
[Makefile]
36+
indent_style = tab

.eslintrc.js

Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
module.exports = {
2+
root: true,
3+
env: {
4+
node: true,
5+
es2022: true,
6+
},
7+
extends: [
8+
'eslint:recommended',
9+
'@typescript-eslint/recommended',
10+
'@typescript-eslint/recommended-requiring-type-checking',
11+
'plugin:import/recommended',
12+
'plugin:import/typescript',
13+
'plugin:node/recommended',
14+
'prettier',
15+
],
16+
parser: '@typescript-eslint/parser',
17+
parserOptions: {
18+
ecmaVersion: 2022,
19+
sourceType: 'module',
20+
project: ['./tsconfig.json', './apps/*/tsconfig.json', './packages/*/tsconfig.json'],
21+
tsconfigRootDir: __dirname,
22+
},
23+
plugins: ['@typescript-eslint', 'import', 'node'],
24+
rules: {
25+
// TypeScript specific rules
26+
'@typescript-eslint/no-unused-vars': ['error', { argsIgnorePattern: '^_' }],
27+
'@typescript-eslint/explicit-function-return-type': 'warn',
28+
'@typescript-eslint/no-explicit-any': 'warn',
29+
'@typescript-eslint/prefer-const': 'error',
30+
'@typescript-eslint/no-var-requires': 'error',
31+
'@typescript-eslint/consistent-type-imports': 'error',
32+
33+
// Import rules
34+
'import/order': [
35+
'error',
36+
{
37+
groups: [
38+
'builtin',
39+
'external',
40+
'internal',
41+
'parent',
42+
'sibling',
43+
'index',
44+
],
45+
'newlines-between': 'always',
46+
alphabetize: {
47+
order: 'asc',
48+
caseInsensitive: true,
49+
},
50+
},
51+
],
52+
'import/no-unresolved': 'error',
53+
'import/no-cycle': 'error',
54+
55+
// Node.js rules
56+
'node/no-unsupported-features/es-syntax': 'off',
57+
'node/no-missing-import': 'off',
58+
59+
// General rules
60+
'no-console': 'warn',
61+
'no-debugger': 'error',
62+
'prefer-const': 'error',
63+
'no-var': 'error',
64+
'object-shorthand': 'error',
65+
'prefer-template': 'error',
66+
},
67+
settings: {
68+
'import/resolver': {
69+
typescript: {
70+
alwaysTryTypes: true,
71+
project: './tsconfig.json',
72+
},
73+
},
74+
},
75+
overrides: [
76+
{
77+
files: ['**/*.test.ts', '**/*.spec.ts'],
78+
env: {
79+
jest: true,
80+
},
81+
rules: {
82+
'@typescript-eslint/no-explicit-any': 'off',
83+
'no-console': 'off',
84+
},
85+
},
86+
{
87+
files: ['**/scripts/**/*.ts'],
88+
rules: {
89+
'no-console': 'off',
90+
},
91+
},
92+
],
93+
};

.github/CODEOWNERS

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
# SpecCursor Code Ownership
2+
3+
# Core Services
4+
/apps/github-app/ @speccursor/github-app-team
5+
/apps/controller/ @speccursor/controller-team
6+
/apps/ai-service/ @speccursor/ai-team
7+
8+
# Worker Implementations
9+
/workers/rust-worker/ @speccursor/rust-team
10+
/workers/lean-engine/ @speccursor/formal-team
11+
12+
# Shared Packages
13+
/packages/shared-types/ @speccursor/core-team
14+
/packages/shared-utils/ @speccursor/core-team
15+
/packages/shared-config/ @speccursor/core-team
16+
17+
# Infrastructure
18+
/infrastructure/ @speccursor/infrastructure-team
19+
/terraform/ @speccursor/infrastructure-team
20+
/docker-compose.yml @speccursor/infrastructure-team
21+
22+
# Documentation
23+
/docs/ @speccursor/documentation-team
24+
/README.md @speccursor/documentation-team
25+
/CONTRIBUTING.md @speccursor/documentation-team
26+
27+
# Security
28+
/scripts/ai-patch.ts @speccursor/ai-team @speccursor/security-team
29+
/scripts/post-patch-proof.ts @speccursor/formal-team @speccursor/security-team
30+
/docs/architecture/threat-model.md @speccursor/security-team
31+
/config/alertmanager-rules.yaml @speccursor/security-team
32+
33+
# Configuration
34+
/.github/ @speccursor/devops-team
35+
/.husky/ @speccursor/devops-team
36+
/.commitlintrc.js @speccursor/devops-team
37+
/.eslintrc.js @speccursor/devops-team
38+
/.prettierrc @speccursor/devops-team
39+
/tsconfig.json @speccursor/devops-team
40+
/package.json @speccursor/devops-team
41+
/pnpm-workspace.yaml @speccursor/devops-team
42+
43+
# CI/CD
44+
/.github/workflows/ @speccursor/devops-team
45+
/.github/actions/ @speccursor/devops-team
46+
47+
# Testing
48+
/tests/ @speccursor/qa-team
49+
/workers/lean-engine/lean/test_runner.lean @speccursor/formal-team
50+
51+
# Monitoring & Observability
52+
/config/prometheus.yml @speccursor/observability-team
53+
/config/grafana-dashboards.yaml @speccursor/observability-team
54+
/config/alertmanager-rules.yaml @speccursor/observability-team
55+
/config/opentelemetry-collector-config.yaml @speccursor/observability-team
56+
57+
# Database
58+
/infrastructure/docker/postgres/ @speccursor/data-team
59+
60+
# Release & Governance
61+
/CHANGELOG.md @speccursor/release-team
62+
/.github/CODEOWNERS @speccursor/release-team
63+
/docs/rfcs/ @speccursor/release-team
64+
65+
# All files (fallback)
66+
* @speccursor/core-team

0 commit comments

Comments
 (0)