@orkestrel/scaffold 0.0.43 → 0.0.45
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 +10 -10
- package/dist/bin/main.js +40 -43
- package/dist/bin/main.js.map +1 -1
- package/dist/host/AGENTS.md +7 -2
- package/dist/host/agents/orchestration.md +232 -56
- package/dist/host/agents/skills/enterprise-bootstrap/SKILL.md +7 -7
- package/dist/host/agents/skills/enterprise-bootstrap/references/bootstrap-reference.md +11 -9
- package/dist/host/agents/skills/enterprise-bootstrap/references/components.md +3 -3
- package/dist/host/agents/skills/enterprise-bootstrap/references/frontend-design.md +3 -3
- package/dist/host/agents/skills/enterprise-bootstrap/references/utilities.md +1 -1
- package/dist/host/agents/skills/orkestrel-align-packages/SKILL.md +1 -1
- package/dist/host/agents/skills/orkestrel-build-application/SKILL.md +2 -2
- package/dist/host/agents/skills/orkestrel-debrief/SKILL.md +1 -1
- package/dist/host/agents/skills/orkestrel-debrief/references/field-testing.md +2 -2
- package/dist/host/agents/skills/orkestrel-debrief/references/instruction-audit.md +8 -8
- package/dist/host/agents/skills/orkestrel-falsify/SKILL.md +16 -14
- package/dist/host/agents/skills/orkestrel-falsify/references/brief.md +3 -3
- package/dist/host/agents/skills/orkestrel-falsify/references/reconcile.md +14 -14
- package/dist/host/agents/skills/orkestrel-harden-package/SKILL.md +1 -1
- package/dist/host/agents/skills/orkestrel-human-journey/SKILL.md +3 -3
- package/dist/host/agents/skills/orkestrel-human-journey/references/captures.md +3 -3
- package/dist/host/agents/skills/orkestrel-human-journey/references/layer.md +3 -3
- package/dist/host/agents/skills/orkestrel-polish-surface/SKILL.md +3 -3
- package/dist/host/claude/agents/analyst.md +2 -2
- package/dist/host/claude/agents/checker.md +2 -2
- package/dist/host/claude/agents/codex.md +5 -5
- package/dist/host/claude/agents/orkestrel.md +9 -8
- package/dist/host/claude/agents/planner.md +1 -1
- package/dist/host/claude/agents/researcher.md +2 -2
- package/dist/host/claude/agents/reviewer.md +1 -1
- package/dist/host/claude/agents/scout.md +2 -2
- package/dist/host/claude/agents/sol.md +3 -3
- package/dist/host/claude/agents/verifier.md +8 -0
- package/dist/host/claude/rules/application.md +7 -7
- package/dist/host/claude/rules/architecture.md +6 -6
- package/dist/host/claude/rules/documentation.md +1 -0
- package/dist/host/claude/rules/patterns.md +3 -3
- package/dist/host/claude/rules/quality.md +3 -3
- package/dist/host/claude/rules/tests.md +9 -2
- package/dist/host/claude/rules/workspace.md +7 -7
- package/dist/host/claude/rules/writing.md +12 -2
- package/dist/host/codex/agents/planner.toml +1 -1
- package/dist/host/configs/helpers.ts +21 -1
- package/dist/host/cursor/rules/orchestration.mdc +1 -1
- package/dist/host/dotfiles/gitignore +4 -1
- package/dist/host/guides/scaffold.md +134 -119
- package/dist/host/scripts/codex.sh +0 -0
- package/dist/host/scripts/cursor.sh +0 -0
- package/dist/host/scripts/deps.sh +0 -0
- package/dist/host/scripts/ollama.sh +0 -0
- package/dist/host/tests/config.test.ts +40 -1
- package/dist/host/tests/policy.test.ts +2 -2
- package/dist/host/tests/setupPolicy.ts +8 -5
- package/dist/src/core/index.cjs +143 -149
- package/dist/src/core/index.cjs.map +1 -1
- package/dist/src/core/index.d.cts +1624 -1643
- package/dist/src/core/index.d.ts +1624 -1643
- package/dist/src/core/index.js +144 -149
- package/dist/src/core/index.js.map +1 -1
- package/dist/src/server/index.cjs +82 -97
- package/dist/src/server/index.cjs.map +1 -1
- package/dist/src/server/index.d.cts +1844 -1871
- package/dist/src/server/index.d.ts +1844 -1871
- package/dist/src/server/index.js +83 -96
- package/dist/src/server/index.js.map +1 -1
- package/package.json +3 -2
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -120,6 +120,16 @@ describe('root configuration', () => {
|
|
|
120
120
|
setup: ['./tests/setup.ts'],
|
|
121
121
|
})
|
|
122
122
|
}
|
|
123
|
+
// The setup project is selected by any proof named `setup*.test.ts` directly under
|
|
124
|
+
// `tests`, so it is the one derived project whose include is a pattern rather than
|
|
125
|
+
// the proof's own path. Reading it from the same glob the generator reads keeps a
|
|
126
|
+
// registered project inside this gate instead of beside it.
|
|
127
|
+
if (globSync('tests/setup*.test.ts', { cwd: root }).length > 0) {
|
|
128
|
+
expected.set('setup', {
|
|
129
|
+
include: 'tests/setup*.test.ts',
|
|
130
|
+
setup: ['./tests/setup.ts'],
|
|
131
|
+
})
|
|
132
|
+
}
|
|
123
133
|
// The live-service project covers a directory rather than one proof, so its
|
|
124
134
|
// readiness module is the fact that selects it. A suite beneath
|
|
125
135
|
// `tests/service` with no setup module is a project nothing configures.
|
|
@@ -675,6 +685,7 @@ describe('configuration helpers', () => {
|
|
|
675
685
|
'WORKSPACE_ROOT',
|
|
676
686
|
'containedPath',
|
|
677
687
|
'decodeAssetSource',
|
|
688
|
+
'enforceBuildLog',
|
|
678
689
|
'enforceOutputPath',
|
|
679
690
|
'environmentAssetSources',
|
|
680
691
|
'environmentBoundary',
|
|
@@ -702,6 +713,34 @@ describe('configuration helpers', () => {
|
|
|
702
713
|
for (const name of required) expect(found).toContain(name)
|
|
703
714
|
})
|
|
704
715
|
|
|
716
|
+
it('fails broken import-meta builds and forwards every other log', () => {
|
|
717
|
+
expect(() =>
|
|
718
|
+
configHelpers.enforceBuildLog(
|
|
719
|
+
'warn',
|
|
720
|
+
{
|
|
721
|
+
code: 'EMPTY_IMPORT_META',
|
|
722
|
+
message: 'The import.meta meta-property is not available in CommonJS output.',
|
|
723
|
+
},
|
|
724
|
+
expect.unreachable,
|
|
725
|
+
),
|
|
726
|
+
).toThrow(
|
|
727
|
+
'[orkestrel-build] The import.meta meta-property is not available in CommonJS output.',
|
|
728
|
+
)
|
|
729
|
+
|
|
730
|
+
const levels: string[] = []
|
|
731
|
+
const messages: string[] = []
|
|
732
|
+
configHelpers.enforceBuildLog(
|
|
733
|
+
'warn',
|
|
734
|
+
{ code: 'CONTROL_WARNING', message: 'The control warning remains visible.' },
|
|
735
|
+
(level, log) => {
|
|
736
|
+
levels.push(level)
|
|
737
|
+
messages.push(typeof log === 'string' ? log : log.message)
|
|
738
|
+
},
|
|
739
|
+
)
|
|
740
|
+
expect(levels).toStrictEqual(['warn'])
|
|
741
|
+
expect(messages).toStrictEqual(['The control warning remains visible.'])
|
|
742
|
+
})
|
|
743
|
+
|
|
705
744
|
it('resolves contained workspace paths and refuses a real outside sibling', () => {
|
|
706
745
|
const scratch = createPolicyScratch({ prefix: 'orkestrel-config-outside-' })
|
|
707
746
|
try {
|
|
@@ -813,7 +852,7 @@ describe('configuration helpers', () => {
|
|
|
813
852
|
)
|
|
814
853
|
})
|
|
815
854
|
|
|
816
|
-
it('drives
|
|
855
|
+
it('drives each plugin through its real Vite hooks', async () => {
|
|
817
856
|
const environments: ReadonlyArray<
|
|
818
857
|
'src/core' | 'src/browser' | 'src/server' | 'app/core' | 'app/browser' | 'app/server'
|
|
819
858
|
> = ['src/core', 'src/browser', 'src/server', 'app/core', 'app/browser', 'app/server']
|
|
@@ -346,7 +346,7 @@ describe('skill family policy', () => {
|
|
|
346
346
|
expect(inspectSkillFamily(process.cwd())).toEqual([])
|
|
347
347
|
})
|
|
348
348
|
|
|
349
|
-
it('parses a folded description containing a colon as exactly
|
|
349
|
+
it('parses a folded description containing a colon as exactly the name and description keys', () => {
|
|
350
350
|
const skill = SKILL_POLICY_FOLDED.files.find((file) => file.path.endsWith('/SKILL.md'))
|
|
351
351
|
const frontmatter = parseSkillFrontmatter(skill?.content ?? '')
|
|
352
352
|
expect(frontmatter?.keys).toEqual(['name', 'description'])
|
|
@@ -375,7 +375,7 @@ describe('skill family policy', () => {
|
|
|
375
375
|
expect(inspectPolicyControl(SKILL_POLICY_BACKTICKED)).toEqual([])
|
|
376
376
|
})
|
|
377
377
|
|
|
378
|
-
it('parses a folded description containing
|
|
378
|
+
it('parses a folded description containing more than one paragraph', () => {
|
|
379
379
|
const skill = SKILL_POLICY_PARAGRAPHS.files.find((file) => file.path.endsWith('/SKILL.md'))
|
|
380
380
|
const frontmatter = parseSkillFrontmatter(skill?.content ?? '')
|
|
381
381
|
expect(frontmatter?.keys).toEqual(['name', 'description'])
|
|
@@ -114,7 +114,7 @@ export const SKILL_REFERENCE_TEXT = `${SKILL_POLICY_TEXT}\nRead references/examp
|
|
|
114
114
|
/** Minimal valid provider bridge text for physical bridge controls. */
|
|
115
115
|
export const SKILL_BRIDGE_TEXT = `${SKILL_POLICY_TEXT}\nRead \`.agents/skills/sample/SKILL.md\`.\n`
|
|
116
116
|
|
|
117
|
-
/** Canonical skill metadata whose
|
|
117
|
+
/** Canonical skill metadata whose values each carry YAML's escaped apostrophe. */
|
|
118
118
|
export const SKILL_APOSTROPHE_METADATA =
|
|
119
119
|
"interface:\n display_name: 'Owner''s Fixture'\n" +
|
|
120
120
|
" short_description: 'Exercise the family''s apostrophe rule'\n" +
|
|
@@ -184,7 +184,10 @@ export const DATA_SOURCE_FILES: readonly string[] = Object.freeze([
|
|
|
184
184
|
export const DATA_EXEMPT_FILES: readonly string[] = Object.freeze(['helpers.ts'])
|
|
185
185
|
|
|
186
186
|
/** Fleet-registered folders whose direct modules each contain one named function. */
|
|
187
|
-
export const FUNCTION_DOMAIN_FOLDERS: readonly string[] = Object.freeze([
|
|
187
|
+
export const FUNCTION_DOMAIN_FOLDERS: readonly string[] = Object.freeze([
|
|
188
|
+
'app/browser/composables',
|
|
189
|
+
'src/server/execution',
|
|
190
|
+
])
|
|
188
191
|
|
|
189
192
|
/** Every ambient declaration suffix the source glob collects and the parsed population excludes. */
|
|
190
193
|
export const POLICY_AMBIENT_SUFFIXES: readonly string[] = Object.freeze([
|
|
@@ -1094,7 +1097,7 @@ export function readSkillReferences(root: string, name: string): readonly string
|
|
|
1094
1097
|
}
|
|
1095
1098
|
|
|
1096
1099
|
/**
|
|
1097
|
-
* Create metadata in the canonical
|
|
1100
|
+
* Create metadata in the canonical skill interface shape.
|
|
1098
1101
|
*
|
|
1099
1102
|
* @param name - The skill token the default prompt invokes.
|
|
1100
1103
|
* @returns Canonical skill interface metadata ending in one newline.
|
|
@@ -1111,7 +1114,7 @@ export function createSkillMetadata(name: string): string {
|
|
|
1111
1114
|
}
|
|
1112
1115
|
|
|
1113
1116
|
/**
|
|
1114
|
-
* Parse the default prompt from the canonical
|
|
1117
|
+
* Parse the default prompt from the canonical skill interface shape.
|
|
1115
1118
|
*
|
|
1116
1119
|
* Each value is a non-empty single-quoted scalar in which `''` carries an apostrophe.
|
|
1117
1120
|
*
|
|
@@ -2099,7 +2102,7 @@ export const SKILL_POLICY_BACKTICKED: PolicyControl = Object.freeze({
|
|
|
2099
2102
|
],
|
|
2100
2103
|
})
|
|
2101
2104
|
|
|
2102
|
-
/** A folded description whose blank scalar line separates
|
|
2105
|
+
/** A folded description whose blank scalar line separates its paragraphs. */
|
|
2103
2106
|
export const SKILL_POLICY_PARAGRAPHS: PolicyControl = Object.freeze({
|
|
2104
2107
|
label: 'accepts a folded description containing two paragraphs',
|
|
2105
2108
|
membership: 'folded description scalars in discovered skill frontmatter',
|