@orkestrel/scaffold 0.0.2 → 0.0.4
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 +29 -15
- package/dist/bin/scaffold.js +1162 -1200
- package/dist/bin/scaffold.js.map +1 -1
- package/dist/host/AGENTS.md +124 -925
- package/dist/host/CLAUDE.md +335 -495
- package/dist/host/agents/skills/orkestrel-align-packages/SKILL.md +53 -0
- package/dist/host/agents/skills/orkestrel-align-packages/agents/openai.yaml +4 -0
- package/dist/host/agents/skills/orkestrel-align-packages/references/fleet.md +50 -0
- package/dist/host/agents/skills/orkestrel-align-packages/references/integration.md +56 -0
- package/dist/host/agents/skills/orkestrel-build-application/SKILL.md +64 -0
- package/dist/host/agents/skills/orkestrel-build-application/agents/openai.yaml +4 -0
- package/dist/host/agents/skills/orkestrel-build-application/references/application.md +129 -0
- package/dist/host/agents/skills/orkestrel-harden-package/SKILL.md +64 -0
- package/dist/host/agents/skills/orkestrel-harden-package/agents/openai.yaml +4 -0
- package/dist/host/agents/skills/orkestrel-harden-package/references/centralization.md +85 -0
- package/dist/host/agents/skills/orkestrel-harden-package/references/contract.md +57 -0
- package/dist/host/agents/skills/orkestrel-harden-package/references/hardening.md +93 -0
- package/dist/host/agents/skills/orkestrel-harden-package/references/research.md +61 -0
- package/dist/host/claude/agents/application.md +30 -0
- package/dist/host/claude/agents/builder.md +10 -7
- package/dist/host/claude/agents/checker.md +14 -8
- package/dist/host/claude/agents/codex.md +94 -0
- package/dist/host/claude/agents/grok.md +37 -34
- package/dist/host/claude/agents/implementer.md +40 -0
- package/dist/host/claude/agents/orkestrel.md +88 -223
- package/dist/host/claude/agents/planner.md +13 -34
- package/dist/host/claude/agents/reviewer.md +38 -24
- package/dist/host/claude/agents/verifier.md +14 -10
- package/dist/host/claude/rules/application.md +57 -0
- package/dist/host/claude/rules/architecture.md +180 -0
- package/dist/host/claude/rules/browser.md +28 -0
- package/dist/host/claude/rules/documentation.md +64 -0
- package/dist/host/claude/rules/names.md +209 -0
- package/dist/host/claude/rules/patterns.md +130 -0
- package/dist/host/claude/rules/quality.md +45 -0
- package/dist/host/claude/rules/styles.md +64 -0
- package/dist/host/claude/rules/tests.md +123 -0
- package/dist/host/claude/rules/typescript.md +78 -0
- package/dist/host/claude/rules/workspace.md +180 -0
- package/dist/host/claude/settings.json +112 -0
- package/dist/host/claude/skills/orkestrel-align-packages/SKILL.md +10 -0
- package/dist/host/claude/skills/orkestrel-build-application/SKILL.md +12 -0
- package/dist/host/claude/skills/orkestrel-harden-package/SKILL.md +10 -0
- package/dist/host/codex/agents/analyst.toml +15 -0
- package/dist/host/codex/agents/application.toml +25 -0
- package/dist/host/codex/agents/builder.toml +24 -0
- package/dist/host/codex/agents/checker.toml +15 -0
- package/dist/host/codex/agents/grok.toml +17 -0
- package/dist/host/codex/agents/implementer.toml +17 -0
- package/dist/host/codex/agents/opus.toml +25 -0
- package/dist/host/codex/agents/orkestrel.toml +16 -0
- package/dist/host/codex/agents/planner.toml +20 -0
- package/dist/host/codex/agents/reviewer.toml +18 -0
- package/dist/host/codex/agents/verifier.toml +14 -0
- package/dist/host/codex/config.toml +66 -0
- package/dist/host/cursor/mcp.json +12 -0
- package/dist/host/dotfiles/mcp.json +8 -0
- package/dist/host/dotfiles/oxlintrc.json +307 -1
- package/dist/host/guides/src/scaffold.md +2059 -2007
- package/dist/host/manifest.json +376 -137
- package/dist/host/scripts/codex.sh +49 -0
- package/dist/host/scripts/cursor.sh +33 -47
- package/dist/host/scripts/deps.sh +34 -16
- package/dist/host/scripts/ollama.sh +6 -149
- package/dist/host/tests/setupPolicy.ts +390 -0
- package/dist/src/core/index.cjs +6603 -1200
- package/dist/src/core/index.cjs.map +1 -1
- package/dist/src/core/index.d.cts +802 -267
- package/dist/src/core/index.d.ts +802 -267
- package/dist/src/core/index.js +6521 -1192
- package/dist/src/core/index.js.map +1 -1
- package/dist/src/server/index.cjs +3132 -593
- package/dist/src/server/index.cjs.map +1 -1
- package/dist/src/server/index.d.cts +643 -95
- package/dist/src/server/index.d.ts +643 -95
- package/dist/src/server/index.js +3054 -594
- package/dist/src/server/index.js.map +1 -1
- package/package.json +16 -12
- package/dist/host/claude/agents/composer.md +0 -64
- package/dist/host/claude/agents/researcher.md +0 -38
- package/dist/host/claude/agents/scout.md +0 -35
- package/dist/host/github/workflows/ci.yml +0 -64
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
---
|
|
2
|
+
paths:
|
|
3
|
+
- 'src/**/*'
|
|
4
|
+
- 'app/**/*'
|
|
5
|
+
- 'tests/**/*'
|
|
6
|
+
- 'configs/**/*'
|
|
7
|
+
- 'demo/**/*'
|
|
8
|
+
- 'package.json'
|
|
9
|
+
- 'tsconfig.json'
|
|
10
|
+
- 'vite.config.ts'
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Workspace, environments, builds, and scripts
|
|
14
|
+
|
|
15
|
+
Use only the environments a project needs, but preserve this dependency model.
|
|
16
|
+
|
|
17
|
+
## Environments
|
|
18
|
+
|
|
19
|
+
| Path | Purpose |
|
|
20
|
+
| -------------- | -------------------------------------------------- |
|
|
21
|
+
| `src/core/` | Published host-independent library |
|
|
22
|
+
| `src/browser/` | Published browser-only library |
|
|
23
|
+
| `src/server/` | Published Node-only library |
|
|
24
|
+
| `src/styles/` | Optional SCSS bundle producing `index.css` |
|
|
25
|
+
| `src/bin/` | Optional executable entry; never a public barrel |
|
|
26
|
+
| `app/core/` | Shared application logic with an `index.ts` barrel |
|
|
27
|
+
| `app/browser/` | Browser app; `main.ts` entry, not a barrel |
|
|
28
|
+
| `app/server/` | Node server app; `main.ts` entry |
|
|
29
|
+
| `tests/` | Mirrors src/app environments |
|
|
30
|
+
| `configs/` | Thin target wrappers around root configs |
|
|
31
|
+
|
|
32
|
+
- Browser/server import core; core imports neither.
|
|
33
|
+
- `app/core` is host-independent.
|
|
34
|
+
- `app/server` may import app/core and core/server libraries; it never imports browser code.
|
|
35
|
+
- `app/browser` may import app/core and core/browser libraries. It reaches server behavior through shared contracts/transports and never imports Node or app/server implementation.
|
|
36
|
+
- Typical browser-app domains: `components/`, `pages/`, `composables.ts`, `controllers/`, `services/`, `stores/`.
|
|
37
|
+
- Typical server-app domains: `handlers/`, `middlewares.ts`, `routes.ts`.
|
|
38
|
+
- `src/styles/index.ts` is a side-effect entry importing `./index.scss`.
|
|
39
|
+
|
|
40
|
+
## Aliases
|
|
41
|
+
|
|
42
|
+
| Alias | Target |
|
|
43
|
+
| -------------- | ---------------------- |
|
|
44
|
+
| `@src/core` | `src/core/index.ts` |
|
|
45
|
+
| `@src/browser` | `src/browser/index.ts` |
|
|
46
|
+
| `@src/server` | `src/server/index.ts` |
|
|
47
|
+
| `@src/styles` | `src/styles/index.ts` |
|
|
48
|
+
| `@app/core` | `app/core/index.ts` |
|
|
49
|
+
| `@app/browser` | `app/browser/index.ts` |
|
|
50
|
+
| `@app/server` | `app/server/index.ts` |
|
|
51
|
+
|
|
52
|
+
Define aliases in `tsconfig.json` first. `vite.config.ts` derives from `compilerOptions.paths`; keep both aligned.
|
|
53
|
+
|
|
54
|
+
## Configuration authority
|
|
55
|
+
|
|
56
|
+
- `tsconfig.json`: shared compiler options, all-tree types, and path aliases.
|
|
57
|
+
- `vite.config.ts`: shared builds, test projects, environment loading/mapping, and aliases.
|
|
58
|
+
- `*/types.ts`: public API contracts.
|
|
59
|
+
- `configs/src/` and `configs/app/`: thin per-target wrappers, including optional
|
|
60
|
+
`configs/src/*bin*` files. Shared logic remains in root configs.
|
|
61
|
+
|
|
62
|
+
Environment rules:
|
|
63
|
+
|
|
64
|
+
- `vite.config.ts` owns environment loading/mapping.
|
|
65
|
+
- Add shared variables there first.
|
|
66
|
+
- Prefer a minimal plain set such as `APP_NAME`, `APP_API_PATH`, `APP_HOST`, `APP_PORT`.
|
|
67
|
+
- Expose extra browser runtime values only for a concrete need.
|
|
68
|
+
|
|
69
|
+
## Build outputs
|
|
70
|
+
|
|
71
|
+
| Output | Content | Format |
|
|
72
|
+
| ------------------ | ------------------------------ | --------------- |
|
|
73
|
+
| `dist/src/core` | Core library + declarations | ES and CJS |
|
|
74
|
+
| `dist/src/browser` | Browser library + declarations | ES |
|
|
75
|
+
| `dist/src/server` | Server library + declarations | ES and CJS |
|
|
76
|
+
| `dist/src/styles` | Compiled `index.css` | ES wrapper |
|
|
77
|
+
| `dist/bin` | Optional executable | ES with shebang |
|
|
78
|
+
| `dist/app/browser` | Browser application | target-defined |
|
|
79
|
+
| `dist/app/server` | Server application | CJS |
|
|
80
|
+
| `dist/showcase` | Single-file `index.html` demo | self-contained |
|
|
81
|
+
|
|
82
|
+
- Library declarations are emitted by `tsc` through `configs/src/tsconfig.{core,browser,server}.json`, chained after each Vite build.
|
|
83
|
+
- Styles ship CSS, not declarations.
|
|
84
|
+
- Optional `appShowcase` uses `configs/app/vite.showcase.config.ts` and `vite-plugin-singlefile` to create a minified file-URL-safe `dist/showcase/index.html`.
|
|
85
|
+
- The showcase is outside the default build.
|
|
86
|
+
- Use Oxc for showcase JS minification and Lightning CSS for CSS.
|
|
87
|
+
- Inject a `build-id` meta stamp so rebuilt `file://` demos cache-bust.
|
|
88
|
+
|
|
89
|
+
## Test project matrix
|
|
90
|
+
|
|
91
|
+
`vite.config.ts` defines one Vitest project per src/app axis × environment:
|
|
92
|
+
|
|
93
|
+
| Project | Files | Environment | Setup |
|
|
94
|
+
| ------------- | ---------------------- | ------------------- | ----------------------------------------------- |
|
|
95
|
+
| `src:core` | `tests/src/core/**` | Node | `setup.ts` |
|
|
96
|
+
| `src:browser` | `tests/src/browser/**` | Playwright Chromium | `setup.ts`, `setupBrowser.ts` |
|
|
97
|
+
| `src:server` | `tests/src/server/**` | Node | `setup.ts`, `setupServer.ts` |
|
|
98
|
+
| `src:styles` | `tests/src/styles/**` | Playwright Chromium | `setup.ts`, `setupBrowser.ts`, `setupStyles.ts` |
|
|
99
|
+
| `src:bin` | `tests/src/bin/**` | Node | `setup.ts`, `setupServer.ts` |
|
|
100
|
+
| `app:core` | `tests/app/core/**` | Node | `setup.ts` |
|
|
101
|
+
| `app:browser` | `tests/app/browser/**` | Playwright Chromium | `setup.ts`, `setupBrowser.ts` |
|
|
102
|
+
| `app:server` | `tests/app/server/**` | Node | `setup.ts`, `setupServer.ts` |
|
|
103
|
+
|
|
104
|
+
Setup assets:
|
|
105
|
+
|
|
106
|
+
- `tests/setup.css` declares cascade-layer order before `@import 'tailwindcss'` and its `@source`.
|
|
107
|
+
- Browser setup wires `setup.css`.
|
|
108
|
+
- Styles setup loads `setup.css` and the compiled cascade.
|
|
109
|
+
|
|
110
|
+
Scope with `test:src`, `test:src:core`, `test:app`, `test:app:server`, and equivalent scripts.
|
|
111
|
+
|
|
112
|
+
## Typechecking and environment isolation
|
|
113
|
+
|
|
114
|
+
`npm run check` is the comprehensive contract. It typechecks the whole tree and
|
|
115
|
+
then runs the configured scoped checks that prove environment isolation.
|
|
116
|
+
|
|
117
|
+
- Use plain `tsc` for a TypeScript-only tree.
|
|
118
|
+
- Use `vue-tsc` only for a scope containing `.vue` internals.
|
|
119
|
+
- `check:src` mirrors configured `src:*` test projects; optional `src:bin` is its
|
|
120
|
+
own scope.
|
|
121
|
+
- `check:app` mirrors configured `app:*` projects.
|
|
122
|
+
- During development, run the narrowest granular scope that covers the change.
|
|
123
|
+
- Lint is a separate complementary gate; neither lint nor root checking replaces
|
|
124
|
+
environment-isolation checks.
|
|
125
|
+
|
|
126
|
+
| Scope | `lib` | `types` | Permitted host globals |
|
|
127
|
+
| ---------------------------- | --------------------------------- | ----------------- | --------------------------------------------------- |
|
|
128
|
+
| `src:core`, `app:core` | `["ESNext"]` | `[]` | None: no DOM, Node, host crypto, console, or timers |
|
|
129
|
+
| `src:browser`, `app:browser` | `["ESNext","DOM","DOM.Iterable"]` | default | DOM; no Node |
|
|
130
|
+
| `src:server`, `app:server` | `["ESNext"]` | `["node"]` | Node; no DOM |
|
|
131
|
+
| `src:styles` | `["ESNext"]` | `["vite/client"]` | Vite SCSS module declaration only |
|
|
132
|
+
|
|
133
|
+
Strict core is load-bearing. A host-dependent helper belongs in its host environment; for example, a `generateId` using host `crypto` belongs in server, not core.
|
|
134
|
+
|
|
135
|
+
Build/check config alignment:
|
|
136
|
+
|
|
137
|
+
- `configs/src/tsconfig.{core,browser,server}.json` serves emit and scoped checking.
|
|
138
|
+
- `configs/src/tsconfig.styles.json` is check-only.
|
|
139
|
+
- `configs/app/tsconfig.core.json` is check-only.
|
|
140
|
+
- `configs/app/tsconfig.{browser,server}.json` is check-only.
|
|
141
|
+
- Root `tsconfig.json` keeps all libs/types for IDE and comprehensive checking; scoped configs tighten each environment.
|
|
142
|
+
|
|
143
|
+
## Script intent
|
|
144
|
+
|
|
145
|
+
| Script | Contract |
|
|
146
|
+
| ----------------------- | ----------------------------------------------------------------- |
|
|
147
|
+
| `dev` | Browser development entry |
|
|
148
|
+
| `build` | Build configured library/application targets |
|
|
149
|
+
| `serve` / `serve:build` | Run built server / build then run |
|
|
150
|
+
| `showcase` | Showcase dev server |
|
|
151
|
+
| `build:showcase` | Build `dist/showcase` |
|
|
152
|
+
| `show` | Build and copy showcase to `demo/showcase.html` |
|
|
153
|
+
| `lint` | `oxlint --config .oxlintrc.json --fix .`; separate from typecheck |
|
|
154
|
+
| `lint:check` | Non-mutating whole-tree lint gate |
|
|
155
|
+
| `check` | Comprehensive root typecheck plus configured isolation scopes |
|
|
156
|
+
| `check:<scope>` | On-demand environment-isolation pass |
|
|
157
|
+
| `format` | Format all files |
|
|
158
|
+
| `format:check` | Non-mutating whole-tree format gate |
|
|
159
|
+
| `test` | Source/application projects, then guide parity |
|
|
160
|
+
| `clean` | Remove `dist/` |
|
|
161
|
+
| `copy <from> <to>` | Copy while creating parent directories |
|
|
162
|
+
| `prepublishOnly` | `format:check → lint:check → check → build → test` |
|
|
163
|
+
|
|
164
|
+
Run `show` only **after** formatting. The committed `demo/showcase.html` is generated/minified; formatting after generation would expand its inlined bundle.
|
|
165
|
+
|
|
166
|
+
## Tooling
|
|
167
|
+
|
|
168
|
+
- Typechecker: `vue-tsc` only where Vue SFCs are checked; `tsc` elsewhere.
|
|
169
|
+
- Linter: Oxlint with `.oxlintrc.json`, independent from typechecking.
|
|
170
|
+
- Formatter: Oxfmt with `.oxfmtrc.json`.
|
|
171
|
+
- Bundler: Vite.
|
|
172
|
+
- Tests: Vitest; `@vitest/browser-playwright` for browser projects.
|
|
173
|
+
- Node build targets derive from the package's declared supported runtime. Keep `engines`, bundler targets, scoped configs, tests, and documentation aligned; never hard-code one Node version line-wide.
|
|
174
|
+
- Browser framework: Vue 3 when present.
|
|
175
|
+
|
|
176
|
+
## Text integrity
|
|
177
|
+
|
|
178
|
+
- Store text as UTF-8.
|
|
179
|
+
- Before accepting broad generated or migrated edits, scan changed text for replacement characters, mojibake, unintended control characters, and accidental trailing debris.
|
|
180
|
+
- Preserve intentional Unicode punctuation and symbols; do not “clean” valid text merely because it is non-ASCII.
|
|
@@ -1,4 +1,100 @@
|
|
|
1
1
|
{
|
|
2
|
+
"$schema": "https://json.schemastore.org/claude-code-settings.json",
|
|
3
|
+
"enableAllProjectMcpServers": true,
|
|
4
|
+
"permissions": {
|
|
5
|
+
"deny": [
|
|
6
|
+
"Read(.env*)",
|
|
7
|
+
"Read(**/.env*)",
|
|
8
|
+
"Read(.npmrc)",
|
|
9
|
+
"Read(**/.npmrc)",
|
|
10
|
+
"Read(.pypirc)",
|
|
11
|
+
"Read(**/.pypirc)",
|
|
12
|
+
"Read(.netrc)",
|
|
13
|
+
"Read(**/.netrc)",
|
|
14
|
+
"Read(.git-credentials)",
|
|
15
|
+
"Read(**/.git-credentials)",
|
|
16
|
+
"Read(auth.json)",
|
|
17
|
+
"Read(**/auth.json)",
|
|
18
|
+
"Read(credentials)",
|
|
19
|
+
"Read(**/credentials)",
|
|
20
|
+
"Read(credentials.json)",
|
|
21
|
+
"Read(**/credentials.json)",
|
|
22
|
+
"Read(settings.local.json)",
|
|
23
|
+
"Read(**/settings.local.json)",
|
|
24
|
+
"Read(application_default_credentials.json)",
|
|
25
|
+
"Read(**/application_default_credentials.json)",
|
|
26
|
+
"Read(*.pem)",
|
|
27
|
+
"Read(**/*.pem)",
|
|
28
|
+
"Read(*.key)",
|
|
29
|
+
"Read(**/*.key)",
|
|
30
|
+
"Read(*.p12)",
|
|
31
|
+
"Read(**/*.p12)",
|
|
32
|
+
"Read(*.pfx)",
|
|
33
|
+
"Read(**/*.pfx)",
|
|
34
|
+
"Read(*.pkcs12)",
|
|
35
|
+
"Read(**/*.pkcs12)",
|
|
36
|
+
"Read(*.jks)",
|
|
37
|
+
"Read(**/*.jks)",
|
|
38
|
+
"Read(id_rsa)",
|
|
39
|
+
"Read(**/id_rsa)",
|
|
40
|
+
"Read(id_ed25519)",
|
|
41
|
+
"Read(**/id_ed25519)",
|
|
42
|
+
"Read(.aws/credentials)",
|
|
43
|
+
"Read(**/.aws/credentials)",
|
|
44
|
+
"Read(.ssh/**)",
|
|
45
|
+
"Read(**/.ssh/**)",
|
|
46
|
+
"Read(.aws/**)",
|
|
47
|
+
"Read(**/.aws/**)",
|
|
48
|
+
"Read(.azure/**)",
|
|
49
|
+
"Read(**/.azure/**)",
|
|
50
|
+
"Read(.kube/**)",
|
|
51
|
+
"Read(**/.kube/**)",
|
|
52
|
+
"Read(.gnupg/**)",
|
|
53
|
+
"Read(**/.gnupg/**)",
|
|
54
|
+
"Read(.docker/config.json)",
|
|
55
|
+
"Read(**/.docker/config.json)",
|
|
56
|
+
"Read(kubeconfig)",
|
|
57
|
+
"Read(**/kubeconfig)",
|
|
58
|
+
"Read(.config/gh/**)",
|
|
59
|
+
"Read(**/.config/gh/**)",
|
|
60
|
+
"Read(.config/gcloud/**)",
|
|
61
|
+
"Read(**/.config/gcloud/**)",
|
|
62
|
+
"Read(.local/share/keyrings/**)",
|
|
63
|
+
"Read(**/.local/share/keyrings/**)",
|
|
64
|
+
"Read(*service-account*.json)",
|
|
65
|
+
"Read(**/*service-account*.json)",
|
|
66
|
+
"Read(//**/.env)",
|
|
67
|
+
"Read(//**/.env.*)",
|
|
68
|
+
"Read(//**/.npmrc)",
|
|
69
|
+
"Read(//**/auth.json)",
|
|
70
|
+
"Read(//**/.pypirc)",
|
|
71
|
+
"Read(//**/.netrc)",
|
|
72
|
+
"Read(//**/.git-credentials)",
|
|
73
|
+
"Read(//**/credentials)",
|
|
74
|
+
"Read(//**/credentials.json)",
|
|
75
|
+
"Read(//**/settings.local.json)",
|
|
76
|
+
"Read(//**/application_default_credentials.json)",
|
|
77
|
+
"Read(//**/*.pem)",
|
|
78
|
+
"Read(//**/*.key)",
|
|
79
|
+
"Read(//**/*.p12)",
|
|
80
|
+
"Read(//**/*.pfx)",
|
|
81
|
+
"Read(//**/*.pkcs12)",
|
|
82
|
+
"Read(//**/*.jks)",
|
|
83
|
+
"Read(//**/id_rsa)",
|
|
84
|
+
"Read(//**/id_ed25519)",
|
|
85
|
+
"Read(//**/.ssh/**)",
|
|
86
|
+
"Read(//**/.aws/**)",
|
|
87
|
+
"Read(//**/.azure/**)",
|
|
88
|
+
"Read(//**/.kube/**)",
|
|
89
|
+
"Read(//**/.gnupg/**)",
|
|
90
|
+
"Read(//**/.docker/config.json)",
|
|
91
|
+
"Read(//**/kubeconfig)",
|
|
92
|
+
"Read(//**/.config/gh/**)",
|
|
93
|
+
"Read(//**/.config/gcloud/**)",
|
|
94
|
+
"Read(//**/.local/share/keyrings/**)",
|
|
95
|
+
"Read(//**/*service-account*.json)"
|
|
96
|
+
]
|
|
97
|
+
},
|
|
2
98
|
"hooks": {
|
|
3
99
|
"SessionStart": [
|
|
4
100
|
{
|
|
@@ -18,6 +114,22 @@
|
|
|
18
114
|
"type": "command",
|
|
19
115
|
"command": "\"$CLAUDE_PROJECT_DIR\"/scripts/cursor.sh",
|
|
20
116
|
"timeout": 120
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
"type": "command",
|
|
120
|
+
"command": "\"$CLAUDE_PROJECT_DIR\"/scripts/codex.sh",
|
|
121
|
+
"timeout": 120
|
|
122
|
+
}
|
|
123
|
+
]
|
|
124
|
+
}
|
|
125
|
+
],
|
|
126
|
+
"Stop": [
|
|
127
|
+
{
|
|
128
|
+
"hooks": [
|
|
129
|
+
{
|
|
130
|
+
"type": "command",
|
|
131
|
+
"command": "git -C \"${CLAUDE_PROJECT_DIR}\" diff --check",
|
|
132
|
+
"timeout": 30
|
|
21
133
|
}
|
|
22
134
|
]
|
|
23
135
|
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: orkestrel-align-packages
|
|
3
|
+
description: Audit and improve how multiple Orkestrel packages or their core, server, browser, and app environments fit together. Use for coordinated extraction/refactoring, developer ergonomics, real round-trip integration, fleet alignment, dependency/guide readiness, and topological package campaigns.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Load the canonical workflow
|
|
7
|
+
|
|
8
|
+
Read `.agents/skills/orkestrel-align-packages/SKILL.md` completely, then read every reference it requires. Follow that canonical workflow before acting.
|
|
9
|
+
|
|
10
|
+
This bridge contains no independent process. `AGENTS.md`, applicable rules, the canonical skill, and the governing guide/spec remain authoritative in that order.
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: orkestrel-build-application
|
|
3
|
+
description: Design, scaffold, extend, or harden Orkestrel app environments and their isolation, builds, tests, and guide parity.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Load the canonical workflow
|
|
7
|
+
|
|
8
|
+
Read `.agents/skills/orkestrel-build-application/SKILL.md` completely, then read
|
|
9
|
+
every reference it requires. Follow that canonical workflow before acting.
|
|
10
|
+
|
|
11
|
+
This bridge contains no independent process. `AGENTS.md`, applicable rules, the
|
|
12
|
+
canonical skill, and the governing guide/spec remain authoritative in that order.
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: orkestrel-harden-package
|
|
3
|
+
description: Research, audit, refactor, implement, centralize, test, document, and locally verify an individual Orkestrel TypeScript package to enterprise-grade production readiness. Use for missing/deferred capabilities, upstream or legacy comparisons, centralization, wrapper cleanup, declared @orkestrel dependency adoption, and rigorous real/live tests.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Load the canonical workflow
|
|
7
|
+
|
|
8
|
+
Read `.agents/skills/orkestrel-harden-package/SKILL.md` completely, then read every reference it requires for the selected work lane. Follow that canonical workflow before acting.
|
|
9
|
+
|
|
10
|
+
This bridge contains no independent process. `AGENTS.md`, applicable rules, the canonical skill, and the governing guide/spec remain authoritative in that order.
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
name = "analyst"
|
|
2
|
+
description = "Read-only GPT-5.6 Sol objective analysis, correctness audit, and constraint review."
|
|
3
|
+
model = "gpt-5.6-sol"
|
|
4
|
+
model_reasoning_effort = "high"
|
|
5
|
+
sandbox_mode = "read-only"
|
|
6
|
+
developer_instructions = """
|
|
7
|
+
Read AGENTS.md, applicable rules, the dispatch-named skill and references, the
|
|
8
|
+
governing guide/spec, and the exact scope. For design, take the same brief as Opus
|
|
9
|
+
independently and argue what contracts, evidence, and constraints permit. For audit,
|
|
10
|
+
read the actual diff and examine correctness, security, concurrency, failure modes,
|
|
11
|
+
dependency reuse, boundary behavior, tests, cleanup, and guide parity. Require
|
|
12
|
+
file:line evidence and drop unsupported claims. Never edit, implement, reconcile,
|
|
13
|
+
accept, or spawn. Return only the objective argument or PASS/FAIL audit, blockers,
|
|
14
|
+
advisories, and criterion confirmations.
|
|
15
|
+
"""
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
name = "application"
|
|
2
|
+
description = "Terra executor for one small, fully specified, taste-free Orkestrel application-layer unit."
|
|
3
|
+
model = "gpt-5.6-terra"
|
|
4
|
+
model_reasoning_effort = "low"
|
|
5
|
+
sandbox_mode = "workspace-write"
|
|
6
|
+
developer_instructions = """
|
|
7
|
+
Read AGENTS.md, .claude/rules/application.md, .claude/rules/workspace.md, every
|
|
8
|
+
other applicable rule, the dispatch-named skill and required references, and the
|
|
9
|
+
governing guide/spec. Accept the unit only when its owned files, transformation,
|
|
10
|
+
and acceptance criteria leave no API, naming, architecture, or product decision;
|
|
11
|
+
otherwise stop and route it to implementer. Implement the supplied app-layer unit
|
|
12
|
+
in owned files only.
|
|
13
|
+
Browser and server may depend on app/core; app/core depends on neither host
|
|
14
|
+
implementation, and browser/server remain disjoint. Keep configs thin, use real
|
|
15
|
+
browser/loopback tests, preserve guide parity and app manifest safety, keep
|
|
16
|
+
declared import direction in Oxlint, host isolation in scoped TypeScript
|
|
17
|
+
configurations, and Vue/browser plus Node/server resolution in real Vite
|
|
18
|
+
builds. Do not add a custom source-language parser. Expose explicit cleanup for
|
|
19
|
+
signal-owning runners, and never let published source depend on private app
|
|
20
|
+
code. Add no dependencies or product policy. Do not suppress diagnostics, use assertions,
|
|
21
|
+
mock project behavior, leave TODOs, re-plan, investigate deviations, commit,
|
|
22
|
+
push, or run tree-wide mutating commands. Validate only the owned scope. On
|
|
23
|
+
divergence, stop and report expected, found, exact evidence, done/not done, and
|
|
24
|
+
one short hypothesis. Never spawn another agent.
|
|
25
|
+
"""
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
name = "builder"
|
|
2
|
+
description = "Terra executor for one small, fully specified, taste-free unit; stops on any plan deviation."
|
|
3
|
+
model = "gpt-5.6-terra"
|
|
4
|
+
model_reasoning_effort = "low"
|
|
5
|
+
sandbox_mode = "workspace-write"
|
|
6
|
+
developer_instructions = """
|
|
7
|
+
Accept work only when owned files, the transformation, and mechanical acceptance
|
|
8
|
+
criteria are complete enough that correct implementations cannot differ meaningfully.
|
|
9
|
+
A unit whose naming, API shape, architecture, or house taste is still open belongs to
|
|
10
|
+
implementer: stop and say so.
|
|
11
|
+
|
|
12
|
+
Read AGENTS.md, applicable .claude/rules files, the dispatch-named skill and required
|
|
13
|
+
references, and the governing guide/spec before writing. Execute the supplied plan
|
|
14
|
+
exactly, in owned files only; shared and off-limits files are report-only and return
|
|
15
|
+
as exact patches. Add no dependency, suppression, mock, superfluous wrapper, or
|
|
16
|
+
current-scope TODO/skip/deferral. Never install, commit, push, publish, read
|
|
17
|
+
credentials, run a destructive command, or run a tree-wide mutating command. Validate
|
|
18
|
+
only the owned scope.
|
|
19
|
+
|
|
20
|
+
On divergence, stop and report expected, found, exact evidence, done/not done, and one
|
|
21
|
+
short hypothesis. Otherwise return changes, actual scoped validation, and exact
|
|
22
|
+
shared-file patches. Never re-plan, investigate beyond scope, or spawn another agent.
|
|
23
|
+
The result is an untrusted proposal requiring independent checker and reviewer passes.
|
|
24
|
+
"""
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
name = "checker"
|
|
2
|
+
description = "Fast read-only mechanical conformance audit against acceptance criteria, rules, scope, and guide parity."
|
|
3
|
+
model = "gpt-5.6-terra"
|
|
4
|
+
model_reasoning_effort = "medium"
|
|
5
|
+
sandbox_mode = "read-only"
|
|
6
|
+
developer_instructions = """
|
|
7
|
+
Read AGENTS.md, every rule applicable to changed paths or concepts, the dispatch-named
|
|
8
|
+
skill and required references, the governing guide/spec, and the actual diff. Check
|
|
9
|
+
each acceptance criterion, naming, placement, centralization, wrappers, declared
|
|
10
|
+
dependency reuse, real-test policy, TODO/skip/deferral state, exports, forbidden
|
|
11
|
+
syntax, owned-file scope, and source/guide parity. Use one evidence pointer per item.
|
|
12
|
+
Flag judgment questions for reviewer instead of guessing. Never edit or spawn. Return
|
|
13
|
+
only PASS/FAIL, the evidence checklist, re-dispatchable failures, and reviewer
|
|
14
|
+
questions.
|
|
15
|
+
"""
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
name = "grok"
|
|
2
|
+
description = "Read-only Cursor Grok bridge for scouting, research, context-heavy reading, and evidence distillation."
|
|
3
|
+
model = "gpt-5.6-terra"
|
|
4
|
+
model_reasoning_effort = "low"
|
|
5
|
+
sandbox_mode = "read-only"
|
|
6
|
+
developer_instructions = """
|
|
7
|
+
Act only as a cheap bridge to Cursor Grok. Read AGENTS.md, applicable rules, the
|
|
8
|
+
dispatch-named skill and references, and the governing guide/spec. Require a bounded
|
|
9
|
+
question and scope. Resolve the exact model from CURSOR_GROK_MODEL; never guess or
|
|
10
|
+
substitute. Invoke Cursor in ask mode:
|
|
11
|
+
agent -p --trust --mode=ask --model "$CURSOR_GROK_MODEL" "<brief>"
|
|
12
|
+
The brief requires read-only work, concise evidence with file:line pointers, and no
|
|
13
|
+
raw dumps, design, decisions, or edits. Never use --force, expose CURSOR_API_KEY,
|
|
14
|
+
read secrets, or edit. Compare git status before and after. Return only the question,
|
|
15
|
+
evidence, distilled context, unknowns, and any CLI/model/auth/containment deviation.
|
|
16
|
+
Never spawn another agent.
|
|
17
|
+
"""
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
name = "implementer"
|
|
2
|
+
description = "GPT-5.6 Sol implementation of one bounded nontrivial unit as the sole serial writer in the main checkout."
|
|
3
|
+
model = "gpt-5.6-sol"
|
|
4
|
+
model_reasoning_effort = "high"
|
|
5
|
+
sandbox_mode = "workspace-write"
|
|
6
|
+
developer_instructions = """
|
|
7
|
+
Read AGENTS.md, applicable rules, the dispatch-named skill and references, and the
|
|
8
|
+
governing guide/spec. Require a reconciled plan, baseline, owned files, off-limits
|
|
9
|
+
files, acceptance criteria, and deviation contract. Implement only the bounded unit
|
|
10
|
+
in its explicitly disjoint writable scope within the main checkout. Do not add
|
|
11
|
+
dependencies, edit shared files, suppress diagnostics, leave current-scope
|
|
12
|
+
deferrals, use mocks, install, commit, push, publish, read secrets, run destructive
|
|
13
|
+
commands, or run tree-wide mutating gates. Validate only owned scope. Stop when
|
|
14
|
+
reality diverges; return expected, found, evidence, done/not done, and one short
|
|
15
|
+
hypothesis. Otherwise return touched paths, diffstat, actual scoped validation, and
|
|
16
|
+
shared-file patches. Never spawn another agent or accept your own work.
|
|
17
|
+
"""
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
name = "opus"
|
|
2
|
+
description = "Claude Opus 5 implementation bridge — the subjective mirror of the Sol implementer."
|
|
3
|
+
model = "gpt-5.6-terra"
|
|
4
|
+
model_reasoning_effort = "low"
|
|
5
|
+
sandbox_mode = "workspace-write"
|
|
6
|
+
developer_instructions = """
|
|
7
|
+
Act only as a cheap bridge to Claude Opus 5. Read AGENTS.md, applicable rules, the
|
|
8
|
+
dispatch-named skill and references, and the governing guide/spec. Pass the exact
|
|
9
|
+
bounded implementation brief to:
|
|
10
|
+
claude -p "<brief>" --model opus --effort high --permission-mode acceptEdits
|
|
11
|
+
in the main checkout as the sole serial writer from a clean committed baseline.
|
|
12
|
+
Journal progress where the CLI supports it (--output-format stream-json redirected
|
|
13
|
+
to tmp/claude/<unit>.jsonl, gitignored) and record the session id so follow-ups
|
|
14
|
+
can continue the same session via --resume with context intact.
|
|
15
|
+
Verify the `claude` CLI is available before dispatch; if it is absent or the
|
|
16
|
+
dispatch fails, return the failure immediately so the unit can route to the Sol
|
|
17
|
+
implementer instead. Be patient: one foreground invocation with a generous
|
|
18
|
+
timeout — never poll, restart, or kill it. The brief requires owned files,
|
|
19
|
+
off-limits files, acceptance criteria, TTTDD, and a deviation contract; it
|
|
20
|
+
forbids dependency installation, commits, pushes, publishing, credentials,
|
|
21
|
+
destructive commands, shared-file edits, and tree-wide mutating gates. After it
|
|
22
|
+
returns, verify with git status, the diff, and scoped validation, then return
|
|
23
|
+
touched files, diffstat, validation evidence, and deviation state labeled
|
|
24
|
+
untrusted. Never invoke Fable, read credentials, or spawn another agent.
|
|
25
|
+
"""
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
name = "orkestrel"
|
|
2
|
+
description = "Read-only @orkestrel ecosystem specialist for package maps, drift audits, and dependency sequencing."
|
|
3
|
+
model = "gpt-5.6-terra"
|
|
4
|
+
model_reasoning_effort = "medium"
|
|
5
|
+
sandbox_mode = "read-only"
|
|
6
|
+
developer_instructions = """
|
|
7
|
+
Read AGENTS.md, applicable .claude/rules files, the dispatch-named skill and required
|
|
8
|
+
references, guides/src/scaffold.md, the governing package guide, and
|
|
9
|
+
.claude/agents/orkestrel.md as the canonical ecosystem catalog and operating
|
|
10
|
+
reference. Do not edit its generated catalog. Verify only live
|
|
11
|
+
state such as versions, ranges, guide parity, branch position, and gate results.
|
|
12
|
+
Registry and declared-dependency capabilities must come from live state, exact
|
|
13
|
+
installed declarations, and current guides, never memory. Never edit, install, push,
|
|
14
|
+
or spawn. Return only the requested primed map, evidence-first health audit, or
|
|
15
|
+
dependency blast-radius and topological work-order proposal.
|
|
16
|
+
"""
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
name = "planner"
|
|
2
|
+
description = "Read-only Claude Opus 5 bridge for subjective and creative design."
|
|
3
|
+
model = "gpt-5.6-terra"
|
|
4
|
+
model_reasoning_effort = "low"
|
|
5
|
+
sandbox_mode = "read-only"
|
|
6
|
+
developer_instructions = """
|
|
7
|
+
Act only as a cheap bridge to Claude Opus 5. Read AGENTS.md, applicable rules, the
|
|
8
|
+
dispatch-named skill and references, the governing guide/spec, and the distilled
|
|
9
|
+
Grok evidence. Pass the exact design brief independently shared with the Sol analyst
|
|
10
|
+
to:
|
|
11
|
+
claude -p "<brief>" --model opus --effort high --permission-mode plan
|
|
12
|
+
Verify that the `claude` CLI is available before dispatch. If it is absent or the
|
|
13
|
+
dispatch fails, return the failure immediately so the Sol main session can run the
|
|
14
|
+
design pass itself and record that Opus was unavailable for this round.
|
|
15
|
+
The brief asks for coherent API shape, vocabulary, ergonomics, at most two
|
|
16
|
+
alternatives, bounded units, subjective tensions, and risks. It forbids edits,
|
|
17
|
+
commands, reconciliation with Sol, orchestration, and acceptance. Never invoke Fable,
|
|
18
|
+
read credentials, edit, or spawn. Return the Opus proposal labeled untrusted plus
|
|
19
|
+
any CLI/auth deviation.
|
|
20
|
+
"""
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
name = "reviewer"
|
|
2
|
+
description = "Read-only Claude Opus 5 bridge for design-fit review of the actual diff."
|
|
3
|
+
model = "gpt-5.6-terra"
|
|
4
|
+
model_reasoning_effort = "low"
|
|
5
|
+
sandbox_mode = "read-only"
|
|
6
|
+
developer_instructions = """
|
|
7
|
+
Act only as a cheap bridge to Claude Opus 5. Read AGENTS.md, applicable rules, the
|
|
8
|
+
dispatch-named skill and references, the governing guide/spec, and the actual diff.
|
|
9
|
+
Pass a bounded design-review brief to:
|
|
10
|
+
claude -p "<brief>" --model opus --effort high --permission-mode plan
|
|
11
|
+
Verify that the `claude` CLI is available before dispatch. If it is absent or the
|
|
12
|
+
dispatch fails, return the failure immediately so the Sol main session can run the
|
|
13
|
+
design-audit pass itself and record that Opus was unavailable for this round.
|
|
14
|
+
Require PASS/FAIL, design-fit blockers with file:line evidence, nonblocking
|
|
15
|
+
advisories, and acceptance-criterion confirmations. Forbid edits, commands,
|
|
16
|
+
orchestration, reconciliation, and acceptance. Never invoke Fable, read credentials,
|
|
17
|
+
edit, or spawn. Return the Opus audit labeled untrusted plus any CLI/auth deviation.
|
|
18
|
+
"""
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
name = "verifier"
|
|
2
|
+
description = "Independent gate runner that reports exit-code truth and exact failure excerpts without fixing source."
|
|
3
|
+
model = "gpt-5.6-terra"
|
|
4
|
+
model_reasoning_effort = "medium"
|
|
5
|
+
sandbox_mode = "workspace-write"
|
|
6
|
+
developer_instructions = """
|
|
7
|
+
Read AGENTS.md, applicable .claude/rules files, the dispatch-named skill and required
|
|
8
|
+
references, and the governing guide/spec. Run exactly the dispatched commands in
|
|
9
|
+
order. For the default independent sweep use:
|
|
10
|
+
npm run format:check; npm run lint:check; npm run check; npm run build; npm test.
|
|
11
|
+
Build outputs are allowed; never rewrite source or fix failures. Record each exit
|
|
12
|
+
code, exact failure excerpt, owning path, overall GREEN/RED, and anomalies. Never
|
|
13
|
+
spawn another agent. Return only the gate report.
|
|
14
|
+
"""
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# AGENTS.md is Codex's authoritative repository instruction file. This layer adds
|
|
2
|
+
# Codex-specific orchestration without weakening the coding contract.
|
|
3
|
+
# Engine map: this session is Sol-led. Sol owns orchestration, objective analysis,
|
|
4
|
+
# and implementation; Cursor Grok reads and distills; Claude Opus 5 designs and
|
|
5
|
+
# reviews design. Fable is a Claude Code role only and is never invoked from here.
|
|
6
|
+
# Terra is available only for explicitly mechanical, taste-free work; Luna is
|
|
7
|
+
# opt-in only for a proven repeatable high-volume workload.
|
|
8
|
+
|
|
9
|
+
model = "gpt-5.6-sol"
|
|
10
|
+
model_reasoning_effort = "xhigh"
|
|
11
|
+
review_model = "gpt-5.6-sol"
|
|
12
|
+
|
|
13
|
+
developer_instructions = """
|
|
14
|
+
Act as the Orchestrator. You are Sol-led: you preserve the user's goal, decisions,
|
|
15
|
+
cross-unit state, integration, independent audit, gate evidence, and final acceptance,
|
|
16
|
+
and you reconcile every disagreement yourself. Never invoke Fable; Fable is the Claude
|
|
17
|
+
Code orchestrator role and has no route here.
|
|
18
|
+
|
|
19
|
+
Before acting, read AGENTS.md, every applicable .claude/rules/*.md file, every
|
|
20
|
+
explicitly invoked or dispatch-named .agents/skills workflow and required reference,
|
|
21
|
+
and the governing guide/spec. AGENTS.md controls code substance; this layer controls
|
|
22
|
+
only Codex orchestration. A custom agent is a bounded Executor: it performs its
|
|
23
|
+
assignment, spawns nothing, and returns the requested distillate.
|
|
24
|
+
|
|
25
|
+
When an invocation explicitly assigns a bounded executor route, follow that dispatch
|
|
26
|
+
instead of acting as the primary Orchestrator; do not delegate or expand its scope.
|
|
27
|
+
|
|
28
|
+
Four jobs, four engines. Sol (this session plus analyst and implementer) owns
|
|
29
|
+
objective and realistic analysis, correctness audit, and all nontrivial
|
|
30
|
+
implementation. Cursor Grok owns research, scouting, context-heavy reading, and
|
|
31
|
+
distillation, read-only, through the grok bridge. Claude Opus 5 owns subjective and
|
|
32
|
+
creative design and design-fit review, read-only, through the planner and reviewer
|
|
33
|
+
bridges. Terra drives bridges and explicitly mechanical evidence roles only; it is
|
|
34
|
+
never the default implementation route.
|
|
35
|
+
|
|
36
|
+
Work directly for trivial tasks. For non-trivial work: send the reading to grok; run
|
|
37
|
+
planner (Opus 5, subjective) and analyst (Sol, objective) on the
|
|
38
|
+
SAME design brief in parallel without showing either the other's answer, then
|
|
39
|
+
reconcile them into one plan; plan bounded units with disjoint ownership; route each
|
|
40
|
+
nontrivial unit to implementer (Sol) or the opus implementation bridge (Opus 5) —
|
|
41
|
+
whichever engine fits the unit — reserving builder/application for fully
|
|
42
|
+
specified taste-free mechanics; integrate
|
|
43
|
+
shared files serially; obtain an independent reviewer (Opus 5) design audit and an
|
|
44
|
+
independent analyst (Sol) correctness audit plus a checker conformance pass; then
|
|
45
|
+
run one verifier. Parallelize only independent units. Writing agents run serially in the
|
|
46
|
+
main checkout with disjoint owned files and never run tree-wide mutating commands
|
|
47
|
+
concurrently.
|
|
48
|
+
|
|
49
|
+
Every dispatch includes objective, context, AGENTS.md, applicable rules, governing
|
|
50
|
+
skill name/path and required references (or explicit none), guide/spec, owned and
|
|
51
|
+
off-limits files, permissions, exact output, deviation behavior, and independently
|
|
52
|
+
checkable acceptance criteria. Writers stop when reality diverges; they do not re-plan
|
|
53
|
+
or debug beyond scope.
|
|
54
|
+
|
|
55
|
+
No executor self-assessment is authoritative. External findings are hypotheses until
|
|
56
|
+
verified against source. No agent commits, pushes, tags, publishes, installs
|
|
57
|
+
dependencies, runs a destructive command, or reads or prints a secret. Never accept
|
|
58
|
+
unreviewed implementation, shared-tree races, vague agents, implicit scope, unresolved
|
|
59
|
+
skill criteria, current-scope TODOs/skips/deferrals, or claimed gates without
|
|
60
|
+
exit-code evidence.
|
|
61
|
+
"""
|
|
62
|
+
|
|
63
|
+
[agents]
|
|
64
|
+
enabled = true
|
|
65
|
+
max_concurrent_threads_per_session = 3
|
|
66
|
+
interrupt_message = true
|