@orkestrel/scaffold 0.0.18 → 0.0.20
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/dist/host/AGENTS.md +4 -2
- package/dist/host/CLAUDE.md +30 -12
- package/dist/host/agents/skills/enterprise-bootstrap/SKILL.md +267 -0
- package/dist/host/agents/skills/enterprise-bootstrap/agents/openai.yaml +4 -0
- package/dist/host/agents/skills/enterprise-bootstrap/references/bootstrap-reference.md +609 -0
- package/dist/host/agents/skills/enterprise-bootstrap/references/components.md +994 -0
- package/dist/host/agents/skills/enterprise-bootstrap/references/frontend-design.md +59 -0
- package/dist/host/agents/skills/enterprise-bootstrap/references/utilities.md +312 -0
- package/dist/host/agents/skills/orkestrel-align-packages/references/integration.md +4 -13
- package/dist/host/agents/skills/orkestrel-build-application/SKILL.md +78 -50
- package/dist/host/agents/skills/orkestrel-debrief/SKILL.md +91 -0
- package/dist/host/agents/skills/orkestrel-debrief/agents/openai.yaml +4 -0
- package/dist/host/agents/skills/orkestrel-debrief/references/field-testing.md +75 -0
- package/dist/host/agents/skills/orkestrel-debrief/references/instruction-audit.md +70 -0
- package/dist/host/agents/skills/orkestrel-harden-package/SKILL.md +11 -9
- package/dist/host/agents/skills/orkestrel-harden-package/references/centralization.md +44 -59
- package/dist/host/agents/skills/orkestrel-harden-package/references/hardening.md +14 -6
- package/dist/host/agents/skills/orkestrel-polish-surface/SKILL.md +113 -0
- package/dist/host/agents/skills/orkestrel-polish-surface/agents/openai.yaml +4 -0
- package/dist/host/agents/skills/orkestrel-polish-surface/references/capture-harness.md +82 -0
- package/dist/host/claude/agents/application.md +21 -17
- package/dist/host/claude/agents/builder.md +2 -0
- package/dist/host/claude/agents/codex.md +33 -26
- package/dist/host/claude/agents/grok.md +7 -0
- package/dist/host/claude/agents/implementer.md +2 -1
- package/dist/host/claude/agents/orkestrel.md +20 -15
- package/dist/host/claude/agents/planner.md +2 -1
- package/dist/host/claude/agents/researcher.md +31 -0
- package/dist/host/claude/agents/reviewer.md +6 -0
- package/dist/host/claude/agents/scout.md +25 -0
- package/dist/host/claude/rules/documentation.md +1 -0
- package/dist/host/claude/rules/names.md +5 -7
- package/dist/host/claude/rules/quality.md +7 -5
- package/dist/host/claude/rules/styles.md +1 -0
- package/dist/host/claude/rules/tests.md +1 -0
- package/dist/host/claude/rules/typescript.md +3 -10
- package/dist/host/claude/rules/workspace.md +2 -5
- package/dist/host/claude/skills/enterprise-bootstrap/SKILL.md +12 -0
- package/dist/host/claude/skills/orkestrel-debrief/SKILL.md +12 -0
- package/dist/host/claude/skills/orkestrel-polish-surface/SKILL.md +12 -0
- package/dist/host/codex/agents/analyst.toml +6 -3
- package/dist/host/codex/agents/application.toml +17 -19
- package/dist/host/codex/agents/builder.toml +3 -2
- package/dist/host/codex/agents/checker.toml +4 -2
- package/dist/host/codex/agents/grok.toml +3 -1
- package/dist/host/codex/agents/implementer.toml +4 -2
- package/dist/host/codex/agents/opus.toml +5 -3
- package/dist/host/codex/agents/orkestrel.toml +6 -5
- package/dist/host/codex/agents/planner.toml +6 -2
- package/dist/host/codex/agents/researcher.toml +22 -0
- package/dist/host/codex/agents/reviewer.toml +7 -2
- package/dist/host/codex/agents/scout.toml +18 -0
- package/dist/host/codex/config.toml +16 -4
- package/dist/host/dotfiles/prettierignore +3 -0
- package/dist/host/guides/src/scaffold.md +42 -12
- package/dist/host/manifest.json +109 -3
- package/dist/src/core/index.cjs +162 -14
- package/dist/src/core/index.cjs.map +1 -1
- package/dist/src/core/index.d.cts +17 -6
- package/dist/src/core/index.d.ts +17 -6
- package/dist/src/core/index.js +162 -15
- package/dist/src/core/index.js.map +1 -1
- package/dist/src/server/index.cjs +9 -3
- package/dist/src/server/index.cjs.map +1 -1
- package/dist/src/server/index.d.cts +2 -1
- package/dist/src/server/index.d.ts +2 -1
- package/dist/src/server/index.js +10 -4
- package/dist/src/server/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/host/agents/skills/orkestrel-build-application/references/application.md +0 -129
|
@@ -1,25 +1,23 @@
|
|
|
1
1
|
name = "application"
|
|
2
|
-
description = "Terra executor for one
|
|
2
|
+
description = "Terra executor for one fully specified app-layer unit — contracts, isolated config, entries, real host tests, guide parity; stops on any plan deviation."
|
|
3
3
|
model = "gpt-5.6-terra"
|
|
4
4
|
model_reasoning_effort = "low"
|
|
5
5
|
sandbox_mode = "workspace-write"
|
|
6
6
|
developer_instructions = """
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
divergence, stop and report expected, found, exact evidence, done/not done, and
|
|
24
|
-
one short hypothesis. Never spawn another agent.
|
|
7
|
+
The app-environment counterpart of builder. Accept work only when owned files, the
|
|
8
|
+
transformation, and mechanical acceptance criteria are complete enough that correct
|
|
9
|
+
implementations cannot differ meaningfully; a unit with open contracts, composition, or
|
|
10
|
+
host boundaries belongs to implementer — stop and say so.
|
|
11
|
+
|
|
12
|
+
Read AGENTS.md, .claude/rules/application.md, .claude/rules/workspace.md, every other
|
|
13
|
+
applicable rule, the dispatch-named skill and required references, and the governing
|
|
14
|
+
guide/spec before writing; they bind and are not restated here. Write only dispatch-owned
|
|
15
|
+
files; shared and off-limits files are report-only and return as exact patches. Validate
|
|
16
|
+
read-only and scoped to the owned app environment. Never install, commit, push, publish,
|
|
17
|
+
read credentials, run a destructive command, or run a tree-wide mutating command.
|
|
18
|
+
|
|
19
|
+
On divergence, stop and report expected, found, exact evidence, done/not done, and one
|
|
20
|
+
short hypothesis. Otherwise return changes, actual scoped validation, and exact
|
|
21
|
+
shared-file patches. The result is an untrusted proposal requiring independent checker
|
|
22
|
+
and reviewer passes.
|
|
25
23
|
"""
|
|
@@ -10,8 +10,9 @@ A unit whose naming, API shape, architecture, or house taste is still open belon
|
|
|
10
10
|
implementer: stop and say so.
|
|
11
11
|
|
|
12
12
|
Read AGENTS.md, applicable .claude/rules files, the dispatch-named skill and required
|
|
13
|
-
references, and the governing guide/spec before writing.
|
|
14
|
-
|
|
13
|
+
references, and the governing guide/spec before writing. An app-layer unit additionally
|
|
14
|
+
binds .claude/rules/application.md and .claude/rules/workspace.md. Execute the supplied
|
|
15
|
+
plan exactly, in owned files only; shared and off-limits files are report-only and return
|
|
15
16
|
as exact patches. Add no dependency, suppression, mock, superfluous wrapper, or
|
|
16
17
|
current-scope TODO/skip/deferral. Never install, commit, push, publish, read
|
|
17
18
|
credentials, run a destructive command, or run a tree-wide mutating command. Validate
|
|
@@ -5,8 +5,10 @@ model_reasoning_effort = "medium"
|
|
|
5
5
|
sandbox_mode = "read-only"
|
|
6
6
|
developer_instructions = """
|
|
7
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
|
|
9
|
-
|
|
8
|
+
skill and required references, the governing guide/spec, and both the actual diff and
|
|
9
|
+
the repository status supplied with the dispatch. If either is missing, return a
|
|
10
|
+
deviation instead of reconstructing it. Check each acceptance criterion, naming,
|
|
11
|
+
placement, centralization, wrappers, declared
|
|
10
12
|
dependency reuse, real-test policy, TODO/skip/deferral state, exports, forbidden
|
|
11
13
|
syntax, owned-file scope, and source/guide parity. Use one evidence pointer per item.
|
|
12
14
|
Flag judgment questions for reviewer instead of guessing. Never edit or spawn. Return
|
|
@@ -7,8 +7,10 @@ developer_instructions = """
|
|
|
7
7
|
Act only as a cheap bridge to Cursor Grok. Read AGENTS.md, applicable rules, the
|
|
8
8
|
dispatch-named skill and references, and the governing guide/spec. Require a bounded
|
|
9
9
|
question and scope. Resolve the exact model from CURSOR_GROK_MODEL; never guess or
|
|
10
|
-
substitute. Invoke Cursor in ask mode:
|
|
10
|
+
substitute. Invoke Cursor in ask mode only for a short bounded ask:
|
|
11
11
|
agent -p --trust --mode=ask --model "$CURSOR_GROK_MODEL" "<brief>"
|
|
12
|
+
For longer work do not launch anything: return the brief path, the exact resolved
|
|
13
|
+
command, the journal path, and a cap recommendation for the Orchestrator to launch.
|
|
12
14
|
The brief requires read-only work, concise evidence with file:line pointers, and no
|
|
13
15
|
raw dumps, design, decisions, or edits. Never use --force, expose CURSOR_API_KEY,
|
|
14
16
|
read secrets, or edit. Compare git status before and after. Return only the question,
|
|
@@ -10,8 +10,10 @@ files, acceptance criteria, and deviation contract. Implement only the bounded u
|
|
|
10
10
|
in its explicitly disjoint writable scope within the main checkout. Do not add
|
|
11
11
|
dependencies, edit shared files, suppress diagnostics, leave current-scope
|
|
12
12
|
deferrals, use mocks, install, commit, push, publish, read secrets, run destructive
|
|
13
|
-
commands, or run tree-wide mutating gates. Validate only owned scope.
|
|
14
|
-
|
|
13
|
+
commands, or run tree-wide mutating gates. Validate only owned scope. For a defect
|
|
14
|
+
unit, record the exact command and its failing count before the fix and the same
|
|
15
|
+
command's passing count after, and report both. Stop when reality diverges; return
|
|
16
|
+
expected, found, evidence, done/not done, and one short
|
|
15
17
|
hypothesis. Otherwise return touched paths, diffstat, actual scoped validation, and
|
|
16
18
|
shared-file patches. Never spawn another agent or accept your own work.
|
|
17
19
|
"""
|
|
@@ -14,9 +14,11 @@ to tmp/claude/<unit>.jsonl, gitignored) and record the session id so follow-ups
|
|
|
14
14
|
can continue the same session via --resume with context intact.
|
|
15
15
|
Verify the `claude` CLI is available before dispatch; if it is absent or the
|
|
16
16
|
dispatch fails, return the failure immediately so the unit can route to the Sol
|
|
17
|
-
implementer instead.
|
|
18
|
-
|
|
19
|
-
|
|
17
|
+
implementer instead. An implementation unit is long work: do not launch it. Return
|
|
18
|
+
the brief path, the exact resolved command, the journal path, and a cap
|
|
19
|
+
recommendation, and let the Orchestrator launch it as a tracked background command
|
|
20
|
+
under a hard cap. Never detach a run, poll, restart, or kill one. The brief requires
|
|
21
|
+
owned files, off-limits files, acceptance criteria, TTTDD, and a deviation contract; it
|
|
20
22
|
forbids dependency installation, commits, pushes, publishing, credentials,
|
|
21
23
|
destructive commands, shared-file edits, and tree-wide mutating gates. After it
|
|
22
24
|
returns, verify with git status, the diff, and scoped validation, then return
|
|
@@ -7,10 +7,11 @@ developer_instructions = """
|
|
|
7
7
|
Read AGENTS.md, applicable .claude/rules files, the dispatch-named skill and required
|
|
8
8
|
references, guides/src/scaffold.md, the governing package guide, and
|
|
9
9
|
.claude/agents/orkestrel.md as the canonical ecosystem catalog and operating
|
|
10
|
-
reference. Do not edit its generated catalog. Verify
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
10
|
+
reference. Do not edit its generated catalog. Verify versions, ranges, guide parity,
|
|
11
|
+
branch position, and gate results against manifests, lockfiles, exact installed
|
|
12
|
+
declarations, and current guides, never memory. You read no registry yourself: live
|
|
13
|
+
registry state is evidence the Orchestrator supplies, and without it you report that
|
|
14
|
+
fact as unknown and name what would settle it. Never edit, install, push, or spawn.
|
|
15
|
+
Return only the requested primed map, evidence-first health audit, or
|
|
15
16
|
dependency blast-radius and topological work-order proposal.
|
|
16
17
|
"""
|
|
@@ -9,12 +9,16 @@ dispatch-named skill and references, the governing guide/spec, and the distilled
|
|
|
9
9
|
Grok evidence. Pass the exact design brief independently shared with the Sol analyst
|
|
10
10
|
to:
|
|
11
11
|
claude -p "<brief>" --model opus --effort high --permission-mode plan
|
|
12
|
+
Run that yourself only for a short bounded design pass; for longer work return the
|
|
13
|
+
brief path, the exact resolved command, the journal path, and a cap recommendation
|
|
14
|
+
for the Orchestrator to launch.
|
|
12
15
|
Verify that the `claude` CLI is available before dispatch. If it is absent or the
|
|
13
16
|
dispatch fails, return the failure immediately so the Sol main session can run the
|
|
14
17
|
design pass itself and record that Opus was unavailable for this round.
|
|
15
18
|
The brief asks for coherent API shape, vocabulary, ergonomics, at most two
|
|
16
|
-
alternatives, bounded units
|
|
17
|
-
commands, reconciliation with Sol, orchestration, and
|
|
19
|
+
alternatives, bounded units that each name their role and engine, subjective tensions,
|
|
20
|
+
and risks. It forbids edits, commands, reconciliation with Sol, orchestration, and
|
|
21
|
+
acceptance. Never invoke Fable,
|
|
18
22
|
read credentials, edit, or spawn. Return the Opus proposal labeled untrusted plus
|
|
19
23
|
any CLI/auth deviation.
|
|
20
24
|
"""
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
name = "researcher"
|
|
2
|
+
description = "Terra read-only primary-source research: external capabilities, upstream comparisons, installed dependency surfaces, capability/defect matrices with citations."
|
|
3
|
+
model = "gpt-5.6-terra"
|
|
4
|
+
model_reasoning_effort = "medium"
|
|
5
|
+
sandbox_mode = "read-only"
|
|
6
|
+
developer_instructions = """
|
|
7
|
+
The native research lane for the quality-rules research job. Gather and distill; never
|
|
8
|
+
design, implement, or decide. Read AGENTS.md and .claude/rules/quality.md first; they
|
|
9
|
+
bind and are not restated here.
|
|
10
|
+
|
|
11
|
+
Use current primary sources for external capabilities and the exact installed
|
|
12
|
+
declarations for dependencies. Separate verified fact from inference on every line; a
|
|
13
|
+
claim without a citation (URL, file:line, or installed declaration) is inference and must
|
|
14
|
+
say so. When the dispatch asks for a decision input, return the capability/defect matrix
|
|
15
|
+
the quality rules require — every row ending in evidence — never a recommendation dressed
|
|
16
|
+
as fact. Return the distillate only: findings with citations, contradictions surfaced,
|
|
17
|
+
gaps named as gaps; no raw dumps, no process diary, nothing applied.
|
|
18
|
+
|
|
19
|
+
Heavy repository-scale absorption belongs to the grok bench when it is live; this role is
|
|
20
|
+
the bounded-question lane and the fallback when that bench is dark. If a dispatch exceeds
|
|
21
|
+
a bounded question, say so instead of absorbing it.
|
|
22
|
+
"""
|
|
@@ -8,11 +8,16 @@ Act only as a cheap bridge to Claude Opus 5. Read AGENTS.md, applicable rules, t
|
|
|
8
8
|
dispatch-named skill and references, the governing guide/spec, and the actual diff.
|
|
9
9
|
Pass a bounded design-review brief to:
|
|
10
10
|
claude -p "<brief>" --model opus --effort high --permission-mode plan
|
|
11
|
+
Run that yourself only for a short bounded review; for longer work return the brief
|
|
12
|
+
path, the exact resolved command, the journal path, and a cap recommendation for the
|
|
13
|
+
Orchestrator to launch.
|
|
11
14
|
Verify that the `claude` CLI is available before dispatch. If it is absent or the
|
|
12
15
|
dispatch fails, return the failure immediately so the Sol main session can run the
|
|
13
16
|
design-audit pass itself and record that Opus was unavailable for this round.
|
|
14
17
|
Require PASS/FAIL, design-fit blockers with file:line evidence, nonblocking
|
|
15
|
-
advisories, and acceptance-criterion confirmations.
|
|
16
|
-
|
|
18
|
+
advisories, and acceptance-criterion confirmations. For a rendered or externally
|
|
19
|
+
driven surface, require capture citations as primary evidence and the verdict shape
|
|
20
|
+
of the dispatch-named skill. Forbid edits, commands, orchestration, reconciliation,
|
|
21
|
+
and acceptance. Never invoke Fable, read credentials,
|
|
17
22
|
edit, or spawn. Return the Opus audit labeled untrusted plus any CLI/auth deviation.
|
|
18
23
|
"""
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
name = "scout"
|
|
2
|
+
description = "Terra read-only repository reconnaissance: locate files, symbols, seams, and structures; return file:line pointers and shape summaries, never judgment."
|
|
3
|
+
model = "gpt-5.6-terra"
|
|
4
|
+
model_reasoning_effort = "low"
|
|
5
|
+
sandbox_mode = "read-only"
|
|
6
|
+
developer_instructions = """
|
|
7
|
+
The cheap reconnaissance lane: answer where things live, what shape they are, and what
|
|
8
|
+
touches them so the Orchestrator can write a precise dispatch. Read AGENTS.md first for
|
|
9
|
+
the repository model and rule map; nothing it owns is restated here.
|
|
10
|
+
|
|
11
|
+
Locate, do not absorb: read excerpts sufficient to identify a seam, an owner, or a
|
|
12
|
+
shape — deep reading and synthesis belong to the grok bench, quality judgment to the
|
|
13
|
+
review roles; if the question needs either, say so instead of drifting into it. Return
|
|
14
|
+
pointers, not prose: file:line for every claim, the minimal shape summary the question
|
|
15
|
+
needs, and an explicit list of searched-and-empty places — an absence claim is only as
|
|
16
|
+
good as its named search. Never edit, never run commands, never speculate past the
|
|
17
|
+
evidence.
|
|
18
|
+
"""
|
|
@@ -32,15 +32,18 @@ objective and realistic analysis, correctness audit, and all nontrivial
|
|
|
32
32
|
implementation. Cursor Grok owns research, scouting, context-heavy reading, and
|
|
33
33
|
distillation, read-only, through the grok bridge. Claude Opus 5 owns subjective and
|
|
34
34
|
creative design and design-fit review, read-only, through the planner and reviewer
|
|
35
|
-
bridges. Terra drives bridges
|
|
36
|
-
|
|
35
|
+
bridges. Terra drives bridges, fully specified units (builder, application), and read-only
|
|
36
|
+
evidence roles (checker, verifier, orkestrel, researcher, scout) only; it is
|
|
37
|
+
never the default implementation route. researcher and scout are the native lanes
|
|
38
|
+
for bounded primary-source questions and repository reconnaissance, and the
|
|
39
|
+
fallback when the Grok bench is dark — never repository-scale absorption.
|
|
37
40
|
|
|
38
41
|
Work directly for trivial tasks. For non-trivial work: send the reading to grok; run
|
|
39
42
|
planner (Opus 5, subjective) and analyst (Sol, objective) on the
|
|
40
43
|
SAME design brief in parallel without showing either the other's answer, then
|
|
41
44
|
reconcile them into one plan; plan bounded units with disjoint ownership; route each
|
|
42
45
|
nontrivial unit to implementer (Sol) or the opus implementation bridge (Opus 5) —
|
|
43
|
-
whichever engine fits the unit — reserving builder
|
|
46
|
+
whichever engine fits the unit — reserving builder for fully
|
|
44
47
|
specified taste-free mechanics; integrate
|
|
45
48
|
shared files serially; obtain an independent reviewer (Opus 5) design audit and an
|
|
46
49
|
independent analyst (Sol) correctness audit plus a checker conformance pass; then
|
|
@@ -52,7 +55,16 @@ Every dispatch includes objective, context, AGENTS.md, applicable rules, governi
|
|
|
52
55
|
skill name/path and required references (or explicit none), guide/spec, owned and
|
|
53
56
|
off-limits files, permissions, exact output, deviation behavior, and independently
|
|
54
57
|
checkable acceptance criteria. Writers stop when reality diverges; they do not re-plan
|
|
55
|
-
or debug beyond scope.
|
|
58
|
+
or debug beyond scope. After reconciling findings into briefs, every retained finding
|
|
59
|
+
names the brief item that carries it; a finding with no carrier is a dropped finding.
|
|
60
|
+
|
|
61
|
+
A claim about a rendered or externally driven surface is evidenced by its capture
|
|
62
|
+
portfolio or a real foreign client driving it, never by source alone; the campaign
|
|
63
|
+
skill defines the fixed verdict shape and single terminal line for multi-round audits,
|
|
64
|
+
and a fix unit's auditor is an engine that did not write it. Size every long-exec cap
|
|
65
|
+
from the observed high mark of comparable units plus a gate allowance plus explicit
|
|
66
|
+
slack. The first use of any CLI flag, subcommand, quoting form, or stdin combination
|
|
67
|
+
happens in a throwaway probe, never inside a dispatched unit.
|
|
56
68
|
|
|
57
69
|
No executor self-assessment is authoritative. External findings are hypotheses until
|
|
58
70
|
verified against source. No agent commits, pushes, tags, publishes, installs
|
|
@@ -186,10 +186,11 @@ is `'INVALID' | 'BLOCKED' | 'DESTROYED' | 'TARGET' | 'WRITE' | 'FETCH'`.
|
|
|
186
186
|
environment contributes, its test-project label, and — on the `src` axis — its `exports` subpath
|
|
187
187
|
and build formats, or — on the `app` axis — its optional runtime entry.
|
|
188
188
|
|
|
189
|
-
`ViteMachinery` names the
|
|
189
|
+
`ViteMachinery` names the four host-specific pipelines a workspace's generated `vite.config.ts` may
|
|
190
190
|
carry: `browser` selects the shared root CSS-analysis and Playwright machinery, `vue` selects the
|
|
191
191
|
single-file-component, HTML, and development-server machinery an application browser environment
|
|
192
|
-
needs,
|
|
192
|
+
needs, `output` selects build-output containment, and `showcase` selects the optional single-file
|
|
193
|
+
application-browser projection. The root machinery selection never attaches a
|
|
193
194
|
`css` property to a nonbrowser project: only the `srcBrowser` and `appBrowser` factories own
|
|
194
195
|
`ENVIRONMENT_CSS`. It never selects a boundary guarantee — those ship in every shape, as the
|
|
195
196
|
compilers section sets out.
|
|
@@ -197,7 +198,8 @@ compilers section sets out.
|
|
|
197
198
|
`ViteFacts` is the optional structural-fact slice shared by every root Vite compiler:
|
|
198
199
|
`bin`, `integration`, and `service` each select their matching standalone project when `true`;
|
|
199
200
|
`global` records the exact-case consumer-owned global-setup module and wires it into each eligible
|
|
200
|
-
project
|
|
201
|
+
project; `showcase` records the exact-case consumer-owned showcase wrapper and selects only its
|
|
202
|
+
generated browser machinery.
|
|
201
203
|
|
|
202
204
|
`ViteProjectRegistration` carries one generated project factory identifier and its optional browser
|
|
203
205
|
label. Root configuration renderers preserve that browser ownership as data through registration
|
|
@@ -222,6 +224,7 @@ interface Blueprint {
|
|
|
222
224
|
readonly integration: boolean
|
|
223
225
|
readonly service: boolean
|
|
224
226
|
readonly global: boolean
|
|
227
|
+
readonly showcase: boolean
|
|
225
228
|
}
|
|
226
229
|
```
|
|
227
230
|
|
|
@@ -232,7 +235,7 @@ packages — a peer flagged `optional` also gets a `peerDependenciesMeta` entry.
|
|
|
232
235
|
package-specific development dependencies merged over the generated baseline, and may carry any
|
|
233
236
|
valid npm package name.
|
|
234
237
|
|
|
235
|
-
`bin`, `integration`, `service`, and `
|
|
238
|
+
`bin`, `integration`, `service`, `global`, and `showcase` are structural project facts. All five obey one law:
|
|
236
239
|
each is `true` only when the workspace physically ships the directory or exact-case file that
|
|
237
240
|
defines it — never because of the workspace's name, and never because a sibling fact is set.
|
|
238
241
|
`deriveBlueprint` probes those paths, so a fresh compile and an audit of a mature repository agree
|
|
@@ -254,6 +257,11 @@ on what the workspace is.
|
|
|
254
257
|
governing setup-presence fact. A declared `src/browser` project runs that consumer-owned module
|
|
255
258
|
as `globalSetup`; integration runs it only when `bin` and `integration` are also true.
|
|
256
259
|
Application-browser, styles, service, and unrelated proof projects never receive it.
|
|
260
|
+
- **`showcase`** — the physical, exact-case regular file
|
|
261
|
+
`configs/app/vite.showcase.config.ts` exists. It is valid only with `app/browser` and turns on the
|
|
262
|
+
computed wrapper, the closed `appShowcase()` root factory, three opt-in scripts, and the
|
|
263
|
+
consumer-only `vite-plugin-singlefile` development dependency. A directory, link, wrong-case
|
|
264
|
+
name, absent wrapper, demo HTML, script, or installed dependency never implies this fact.
|
|
257
265
|
|
|
258
266
|
A service workspace owes two companion files beside that directory, and derivation requires both
|
|
259
267
|
physically present: `tests/setupService.ts` and `scripts/service.sh`. Either missing companion is a
|
|
@@ -374,6 +382,7 @@ From [`constants.ts`](../../src/core/constants.ts).
|
|
|
374
382
|
| `HOST_PATHS` | const |
|
|
375
383
|
| `SERVICE_SCRIPT_PATH` | const |
|
|
376
384
|
| `GLOBAL_SETUP_PATH` | const |
|
|
385
|
+
| `SHOWCASE_CONFIG_PATH` | const |
|
|
377
386
|
| `NAME_PATTERN` | const |
|
|
378
387
|
| `MAX_NAME_LENGTH` | const |
|
|
379
388
|
| `MAX_DEPENDENCY_NAME_LENGTH` | const |
|
|
@@ -425,7 +434,8 @@ host artifacts, and it is the staging manifest rather than the per-plan carried
|
|
|
425
434
|
`stageHost` vendors every path on it, while each plan carries the subset `selectHostPaths` selects
|
|
426
435
|
for that one workspace. `SERVICE_SCRIPT_PATH` names the consumer-owned provisioner a service
|
|
427
436
|
workspace's audit expects, and `GLOBAL_SETUP_PATH` names the consumer-owned Vitest global-setup
|
|
428
|
-
module that independently selected projects can load.
|
|
437
|
+
module that independently selected projects can load. `SHOWCASE_CONFIG_PATH` names the sole
|
|
438
|
+
consumer-owned regular file whose exact physical presence enables the optional app showcase.
|
|
429
439
|
|
|
430
440
|
The bounds are public because they are part of the contract, not implementation trivia.
|
|
431
441
|
`MAX_ARTIFACT_BYTES` caps one artifact at 5 MiB and `MAX_TOTAL_ARTIFACT_BYTES` caps one blueprint,
|
|
@@ -973,8 +983,9 @@ omitting an absent path entirely. `readManifest` reads `package.json` text, and
|
|
|
973
983
|
`deriveBlueprint` is the faithful inverse an audit needs: it reconstructs a blueprint from an
|
|
974
984
|
existing workspace so a mature package is diffed against its own would-be scaffold rather than a
|
|
975
985
|
dependency-less stand-in. Environments come from `src/<environment>/` and `app/<environment>/`, the
|
|
976
|
-
three structural project facts from their directory probes,
|
|
977
|
-
exact-case `tests/setupGlobal.ts` file
|
|
986
|
+
three directory-shaped structural project facts from their directory probes, `global` from the
|
|
987
|
+
physical exact-case `tests/setupGlobal.ts` file, and `showcase` from the physical exact-case regular
|
|
988
|
+
file `configs/app/vite.showcase.config.ts`; the service companion law remains the one the blueprint
|
|
978
989
|
section states — every fact is a reading of the filesystem, never of the name. Dependencies and peers come
|
|
979
990
|
from the manifest's scoped entries, with an optional peer recovered from
|
|
980
991
|
`peerDependenciesMeta`; and `extras` is every development dependency minus the complete set
|
|
@@ -1129,8 +1140,8 @@ the selected source and application projects from the canonical environment orde
|
|
|
1129
1140
|
`viteProjectDefinitions` renders the standalone proof and structural-fact definitions in that same
|
|
1130
1141
|
order with one blank line between declarations. Both consume `ViteFacts`, so each optional project
|
|
1131
1142
|
is controlled only by its matching `bin`, `integration`, or `service` blueprint fact; the same
|
|
1132
|
-
slice carries `global` to integration and the source-browser compiler
|
|
1133
|
-
project.
|
|
1143
|
+
slice carries `global` to integration and the source-browser compiler, and `showcase` to the
|
|
1144
|
+
application-browser compiler, without adding another test project.
|
|
1134
1145
|
|
|
1135
1146
|
`coreViteConfig`, `srcViteConfig`, `binViteConfig`, and `appViteConfig` emit the thin per-target
|
|
1136
1147
|
wrappers. `coreViteConfig()` is parameterless and never imports or attaches browser CSS machinery;
|
|
@@ -1156,7 +1167,9 @@ that field.
|
|
|
1156
1167
|
`configArtifacts`, `sourceArtifacts`, `applicationArtifacts`, `testArtifacts`, and `guideArtifacts`
|
|
1157
1168
|
are the per-group drafters. When `bin` is selected, `configArtifacts` includes
|
|
1158
1169
|
`configs/src/tsconfig.bin.json` and `configs/src/vite.bin.config.ts` beside the declared environment
|
|
1159
|
-
configuration pairs. `
|
|
1170
|
+
configuration pairs. When `showcase` is selected, it includes the computed thin
|
|
1171
|
+
`configs/app/vite.showcase.config.ts` wrapper beside the ordinary application browser pair.
|
|
1172
|
+
`paritySpecifiers` computes the self-specifier and module map the
|
|
1160
1173
|
generated parity suite resolves fence imports through. `guideMemberTable`, `guideUsage`,
|
|
1161
1174
|
`guideMethods`, and `guideTests` render the generated guide's member tables, usage examples, method
|
|
1162
1175
|
contract, and test inventory. `fillArtifact` fills one template entry into a `template`-origin
|
|
@@ -1532,6 +1545,8 @@ a fixed, interleaved order so aggregates sit immediately before their per-enviro
|
|
|
1532
1545
|
`build:host` for a bin workspace
|
|
1533
1546
|
- `dev` when a browser application is selected; `serve` and `serve:build` when a server application
|
|
1534
1547
|
is selected
|
|
1548
|
+
- `showcase`, `build:showcase`, and `show` only when the physical showcase wrapper is present;
|
|
1549
|
+
`show` builds and copies `dist/showcase/index.html` to `demo/showcase.html`
|
|
1535
1550
|
- `prepublishOnly` chaining `format:check → lint:check → check → build → test`, followed by
|
|
1536
1551
|
`test:integration` when the integration axis is selected
|
|
1537
1552
|
|
|
@@ -1550,6 +1565,10 @@ projects, and nothing there needs a build artifact or a foreign process. Publica
|
|
|
1550
1565
|
asymmetry — `prepublishOnly` appends `test:integration`, because a package about to be published
|
|
1551
1566
|
should prove itself against its own built output, while `test:service` is never in that chain.
|
|
1552
1567
|
Neither default testing nor publication starts or requires a foreign process.
|
|
1568
|
+
The showcase is likewise outside `build`, `test`, and `prepublishOnly`; it is an explicit projection
|
|
1569
|
+
of `app/browser`, not an environment, test-project row, or source/demo artifact.
|
|
1570
|
+
Its copied `demo/showcase.html` is generated and minified, so the mirrored `.prettierignore` keeps it
|
|
1571
|
+
outside the whole-tree formatter while source and configuration files remain fully gated.
|
|
1553
1572
|
|
|
1554
1573
|
When a prerequisite is absent the proof fails rather than skipping. `test:integration` reads the
|
|
1555
1574
|
workspace's own built output, so it belongs after `build` — which is exactly where `prepublishOnly`
|
|
@@ -1665,6 +1684,17 @@ contract and is reported as computed-artifact drift by `scaffold audit`. The out
|
|
|
1665
1684
|
still rejects public directories, browser asset inlining, and output path overrides in a
|
|
1666
1685
|
post-factory composition as defense in depth; that narrow check is not a general extension seam.
|
|
1667
1686
|
|
|
1687
|
+
When the showcase fact is present, the generated root also exports closed
|
|
1688
|
+
`appShowcase(...config: never[])`; both factories reject every argument at runtime and
|
|
1689
|
+
share one fixed internal browser configuration. The ordinary factory retains its strict
|
|
1690
|
+
`script-src 'self'` policy, external asset auditing, and `dist/app/browser` output. The showcase
|
|
1691
|
+
factory alone writes `dist/showcase`, applies `viteSingleFile` with
|
|
1692
|
+
`removeViteModuleLoader: true` and `useRecommendedBuildConfig: true`, uses Oxc and Lightning CSS
|
|
1693
|
+
minification for an `esnext` build without source maps or module preload, and inserts a non-empty ISO
|
|
1694
|
+
`build-id` meta. Its generated CSP admits only the inline script and style required by the
|
|
1695
|
+
self-contained `file://` artifact while retaining `script-src-attr 'none'`, `object-src 'none'`, and
|
|
1696
|
+
`base-uri 'none'`.
|
|
1697
|
+
|
|
1668
1698
|
The browser development server applies the same trust boundary before Vite's internal middleware.
|
|
1669
1699
|
Its explicit filesystem allowlist contains only browser/core source roots, browser tests, their
|
|
1670
1700
|
exact setup files, and installed dependencies. The pre-internal middleware decodes direct,
|
|
@@ -2238,8 +2268,8 @@ coreTsconfig()
|
|
|
2238
2268
|
srcTsconfig('server')
|
|
2239
2269
|
appTsconfig('browser', true)
|
|
2240
2270
|
|
|
2241
|
-
viteMachinery(['core']) // { browser: false, vue: false, output: true }
|
|
2242
|
-
viteMachinery([], ['core', 'browser']) // { browser: true, vue: true, output: true }
|
|
2271
|
+
viteMachinery(['core']) // { browser: false, vue: false, output: true, showcase: false }
|
|
2272
|
+
viteMachinery([], ['core', 'browser']) // { browser: true, vue: true, output: true, showcase: false }
|
|
2243
2273
|
renderViteTest([{ project: 'srcCore' }], false).includes('projects: [srcCore]') // true
|
|
2244
2274
|
viteHeader(viteMachinery([], ['core', 'browser'])) // the shared header, with browser and Vue support
|
|
2245
2275
|
coreViteConfig()
|
package/dist/host/manifest.json
CHANGED
|
@@ -1,5 +1,35 @@
|
|
|
1
1
|
{
|
|
2
2
|
"entries": [
|
|
3
|
+
{
|
|
4
|
+
"storage": "agents/skills/enterprise-bootstrap/SKILL.md",
|
|
5
|
+
"destination": ".agents/skills/enterprise-bootstrap/SKILL.md",
|
|
6
|
+
"executable": false
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
"storage": "agents/skills/enterprise-bootstrap/agents/openai.yaml",
|
|
10
|
+
"destination": ".agents/skills/enterprise-bootstrap/agents/openai.yaml",
|
|
11
|
+
"executable": false
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"storage": "agents/skills/enterprise-bootstrap/references/bootstrap-reference.md",
|
|
15
|
+
"destination": ".agents/skills/enterprise-bootstrap/references/bootstrap-reference.md",
|
|
16
|
+
"executable": false
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"storage": "agents/skills/enterprise-bootstrap/references/components.md",
|
|
20
|
+
"destination": ".agents/skills/enterprise-bootstrap/references/components.md",
|
|
21
|
+
"executable": false
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"storage": "agents/skills/enterprise-bootstrap/references/frontend-design.md",
|
|
25
|
+
"destination": ".agents/skills/enterprise-bootstrap/references/frontend-design.md",
|
|
26
|
+
"executable": false
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"storage": "agents/skills/enterprise-bootstrap/references/utilities.md",
|
|
30
|
+
"destination": ".agents/skills/enterprise-bootstrap/references/utilities.md",
|
|
31
|
+
"executable": false
|
|
32
|
+
},
|
|
3
33
|
{
|
|
4
34
|
"storage": "agents/skills/orkestrel-align-packages/SKILL.md",
|
|
5
35
|
"destination": ".agents/skills/orkestrel-align-packages/SKILL.md",
|
|
@@ -31,8 +61,23 @@
|
|
|
31
61
|
"executable": false
|
|
32
62
|
},
|
|
33
63
|
{
|
|
34
|
-
"storage": "agents/skills/orkestrel-
|
|
35
|
-
"destination": ".agents/skills/orkestrel-
|
|
64
|
+
"storage": "agents/skills/orkestrel-debrief/SKILL.md",
|
|
65
|
+
"destination": ".agents/skills/orkestrel-debrief/SKILL.md",
|
|
66
|
+
"executable": false
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"storage": "agents/skills/orkestrel-debrief/agents/openai.yaml",
|
|
70
|
+
"destination": ".agents/skills/orkestrel-debrief/agents/openai.yaml",
|
|
71
|
+
"executable": false
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
"storage": "agents/skills/orkestrel-debrief/references/field-testing.md",
|
|
75
|
+
"destination": ".agents/skills/orkestrel-debrief/references/field-testing.md",
|
|
76
|
+
"executable": false
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
"storage": "agents/skills/orkestrel-debrief/references/instruction-audit.md",
|
|
80
|
+
"destination": ".agents/skills/orkestrel-debrief/references/instruction-audit.md",
|
|
36
81
|
"executable": false
|
|
37
82
|
},
|
|
38
83
|
{
|
|
@@ -65,6 +110,21 @@
|
|
|
65
110
|
"destination": ".agents/skills/orkestrel-harden-package/references/research.md",
|
|
66
111
|
"executable": false
|
|
67
112
|
},
|
|
113
|
+
{
|
|
114
|
+
"storage": "agents/skills/orkestrel-polish-surface/SKILL.md",
|
|
115
|
+
"destination": ".agents/skills/orkestrel-polish-surface/SKILL.md",
|
|
116
|
+
"executable": false
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
"storage": "agents/skills/orkestrel-polish-surface/agents/openai.yaml",
|
|
120
|
+
"destination": ".agents/skills/orkestrel-polish-surface/agents/openai.yaml",
|
|
121
|
+
"executable": false
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
"storage": "agents/skills/orkestrel-polish-surface/references/capture-harness.md",
|
|
125
|
+
"destination": ".agents/skills/orkestrel-polish-surface/references/capture-harness.md",
|
|
126
|
+
"executable": false
|
|
127
|
+
},
|
|
68
128
|
{
|
|
69
129
|
"storage": "claude/agents/application.md",
|
|
70
130
|
"destination": ".claude/agents/application.md",
|
|
@@ -105,11 +165,21 @@
|
|
|
105
165
|
"destination": ".claude/agents/planner.md",
|
|
106
166
|
"executable": false
|
|
107
167
|
},
|
|
168
|
+
{
|
|
169
|
+
"storage": "claude/agents/researcher.md",
|
|
170
|
+
"destination": ".claude/agents/researcher.md",
|
|
171
|
+
"executable": false
|
|
172
|
+
},
|
|
108
173
|
{
|
|
109
174
|
"storage": "claude/agents/reviewer.md",
|
|
110
175
|
"destination": ".claude/agents/reviewer.md",
|
|
111
176
|
"executable": false
|
|
112
177
|
},
|
|
178
|
+
{
|
|
179
|
+
"storage": "claude/agents/scout.md",
|
|
180
|
+
"destination": ".claude/agents/scout.md",
|
|
181
|
+
"executable": false
|
|
182
|
+
},
|
|
113
183
|
{
|
|
114
184
|
"storage": "claude/agents/verifier.md",
|
|
115
185
|
"destination": ".claude/agents/verifier.md",
|
|
@@ -175,6 +245,11 @@
|
|
|
175
245
|
"destination": ".claude/settings.json",
|
|
176
246
|
"executable": false
|
|
177
247
|
},
|
|
248
|
+
{
|
|
249
|
+
"storage": "claude/skills/enterprise-bootstrap/SKILL.md",
|
|
250
|
+
"destination": ".claude/skills/enterprise-bootstrap/SKILL.md",
|
|
251
|
+
"executable": false
|
|
252
|
+
},
|
|
178
253
|
{
|
|
179
254
|
"storage": "claude/skills/orkestrel-align-packages/SKILL.md",
|
|
180
255
|
"destination": ".claude/skills/orkestrel-align-packages/SKILL.md",
|
|
@@ -185,11 +260,21 @@
|
|
|
185
260
|
"destination": ".claude/skills/orkestrel-build-application/SKILL.md",
|
|
186
261
|
"executable": false
|
|
187
262
|
},
|
|
263
|
+
{
|
|
264
|
+
"storage": "claude/skills/orkestrel-debrief/SKILL.md",
|
|
265
|
+
"destination": ".claude/skills/orkestrel-debrief/SKILL.md",
|
|
266
|
+
"executable": false
|
|
267
|
+
},
|
|
188
268
|
{
|
|
189
269
|
"storage": "claude/skills/orkestrel-harden-package/SKILL.md",
|
|
190
270
|
"destination": ".claude/skills/orkestrel-harden-package/SKILL.md",
|
|
191
271
|
"executable": false
|
|
192
272
|
},
|
|
273
|
+
{
|
|
274
|
+
"storage": "claude/skills/orkestrel-polish-surface/SKILL.md",
|
|
275
|
+
"destination": ".claude/skills/orkestrel-polish-surface/SKILL.md",
|
|
276
|
+
"executable": false
|
|
277
|
+
},
|
|
193
278
|
{
|
|
194
279
|
"storage": "codex/agents/analyst.toml",
|
|
195
280
|
"destination": ".codex/agents/analyst.toml",
|
|
@@ -235,11 +320,21 @@
|
|
|
235
320
|
"destination": ".codex/agents/planner.toml",
|
|
236
321
|
"executable": false
|
|
237
322
|
},
|
|
323
|
+
{
|
|
324
|
+
"storage": "codex/agents/researcher.toml",
|
|
325
|
+
"destination": ".codex/agents/researcher.toml",
|
|
326
|
+
"executable": false
|
|
327
|
+
},
|
|
238
328
|
{
|
|
239
329
|
"storage": "codex/agents/reviewer.toml",
|
|
240
330
|
"destination": ".codex/agents/reviewer.toml",
|
|
241
331
|
"executable": false
|
|
242
332
|
},
|
|
333
|
+
{
|
|
334
|
+
"storage": "codex/agents/scout.toml",
|
|
335
|
+
"destination": ".codex/agents/scout.toml",
|
|
336
|
+
"executable": false
|
|
337
|
+
},
|
|
243
338
|
{
|
|
244
339
|
"storage": "codex/agents/verifier.toml",
|
|
245
340
|
"destination": ".codex/agents/verifier.toml",
|
|
@@ -349,22 +444,33 @@
|
|
|
349
444
|
"roots": [
|
|
350
445
|
".agents",
|
|
351
446
|
".agents/skills",
|
|
447
|
+
".agents/skills/enterprise-bootstrap",
|
|
448
|
+
".agents/skills/enterprise-bootstrap/agents",
|
|
449
|
+
".agents/skills/enterprise-bootstrap/references",
|
|
352
450
|
".agents/skills/orkestrel-align-packages",
|
|
353
451
|
".agents/skills/orkestrel-align-packages/agents",
|
|
354
452
|
".agents/skills/orkestrel-align-packages/references",
|
|
355
453
|
".agents/skills/orkestrel-build-application",
|
|
356
454
|
".agents/skills/orkestrel-build-application/agents",
|
|
357
|
-
".agents/skills/orkestrel-
|
|
455
|
+
".agents/skills/orkestrel-debrief",
|
|
456
|
+
".agents/skills/orkestrel-debrief/agents",
|
|
457
|
+
".agents/skills/orkestrel-debrief/references",
|
|
358
458
|
".agents/skills/orkestrel-harden-package",
|
|
359
459
|
".agents/skills/orkestrel-harden-package/agents",
|
|
360
460
|
".agents/skills/orkestrel-harden-package/references",
|
|
461
|
+
".agents/skills/orkestrel-polish-surface",
|
|
462
|
+
".agents/skills/orkestrel-polish-surface/agents",
|
|
463
|
+
".agents/skills/orkestrel-polish-surface/references",
|
|
361
464
|
".claude",
|
|
362
465
|
".claude/agents",
|
|
363
466
|
".claude/rules",
|
|
364
467
|
".claude/skills",
|
|
468
|
+
".claude/skills/enterprise-bootstrap",
|
|
365
469
|
".claude/skills/orkestrel-align-packages",
|
|
366
470
|
".claude/skills/orkestrel-build-application",
|
|
471
|
+
".claude/skills/orkestrel-debrief",
|
|
367
472
|
".claude/skills/orkestrel-harden-package",
|
|
473
|
+
".claude/skills/orkestrel-polish-surface",
|
|
368
474
|
".codex",
|
|
369
475
|
".codex/agents",
|
|
370
476
|
".cursor",
|