@warpgogol/forge 0.3.1 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +152 -5
- package/dist/bin/cli.js +4 -5
- package/dist/bin/cli.js.map +1 -1
- package/dist/os/adr/adr.module.d.ts.map +1 -1
- package/dist/os/adr/adr.module.js +4 -2
- package/dist/os/adr/adr.module.js.map +1 -1
- package/dist/os/adr/handlers/validate.d.ts.map +1 -1
- package/dist/os/adr/handlers/validate.js +32 -4
- package/dist/os/adr/handlers/validate.js.map +1 -1
- package/dist/os/compass/compass.module.d.ts.map +1 -1
- package/dist/os/compass/compass.module.js +4 -0
- package/dist/os/compass/compass.module.js.map +1 -1
- package/dist/os/compass/handlers/resolve-scan-root.d.ts.map +1 -1
- package/dist/os/compass/handlers/resolve-scan-root.js +16 -0
- package/dist/os/compass/handlers/resolve-scan-root.js.map +1 -1
- package/dist/os/core/core.module.d.ts.map +1 -1
- package/dist/os/core/core.module.js +82 -3
- package/dist/os/core/core.module.js.map +1 -1
- package/dist/os/core/handlers/knowledge-compact.d.ts +4 -0
- package/dist/os/core/handlers/knowledge-compact.d.ts.map +1 -0
- package/dist/os/core/handlers/knowledge-compact.js +198 -0
- package/dist/os/core/handlers/knowledge-compact.js.map +1 -0
- package/dist/os/rfc/handlers/implement-stamp.d.ts.map +1 -1
- package/dist/os/rfc/handlers/implement-stamp.js +10 -6
- package/dist/os/rfc/handlers/implement-stamp.js.map +1 -1
- package/dist/os/rfc/handlers/index-graph.js +2 -2
- package/dist/os/rfc/handlers/index-graph.js.map +1 -1
- package/dist/os/rfc/handlers/lifecycle.d.ts.map +1 -1
- package/dist/os/rfc/handlers/lifecycle.js +4 -5
- package/dist/os/rfc/handlers/lifecycle.js.map +1 -1
- package/dist/os/rfc/handlers/pipeline-status.js +1 -1
- package/dist/os/rfc/handlers/pipeline-status.js.map +1 -1
- package/dist/os/rfc/handlers/validate-rules.d.ts.map +1 -1
- package/dist/os/rfc/handlers/validate-rules.js +41 -3
- package/dist/os/rfc/handlers/validate-rules.js.map +1 -1
- package/dist/os/rfc/handlers/validate.js +1 -1
- package/dist/os/rfc/handlers/validate.js.map +1 -1
- package/dist/os/rfc/rfc.module.d.ts.map +1 -1
- package/dist/os/rfc/rfc.module.js +15 -10
- package/dist/os/rfc/rfc.module.js.map +1 -1
- package/dist/os/session/handlers/validate.js +1 -1
- package/dist/os/session/handlers/validate.js.map +1 -1
- package/dist/os/session/session.module.d.ts.map +1 -1
- package/dist/os/session/session.module.js +4 -2
- package/dist/os/session/session.module.js.map +1 -1
- package/dist/os/spec/spec-schema.d.ts +1 -1
- package/dist/os/werkstatt/handlers/lock.d.ts.map +1 -1
- package/dist/os/werkstatt/handlers/lock.js +27 -1
- package/dist/os/werkstatt/handlers/lock.js.map +1 -1
- package/dist/os/werkstatt/handlers/schema.d.ts +1 -0
- package/dist/os/werkstatt/handlers/schema.d.ts.map +1 -1
- package/dist/os/werkstatt/handlers/schema.js +1 -0
- package/dist/os/werkstatt/handlers/schema.js.map +1 -1
- package/dist/src/config/forge-config.d.ts +70 -3
- package/dist/src/config/forge-config.d.ts.map +1 -1
- package/dist/src/config/forge-config.js +91 -4
- package/dist/src/config/forge-config.js.map +1 -1
- package/dist/src/index.d.ts +3 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +6 -2
- package/dist/src/index.js.map +1 -1
- package/dist/src/knowledge/budgets.d.ts +38 -0
- package/dist/src/knowledge/budgets.d.ts.map +1 -0
- package/dist/src/knowledge/budgets.js +157 -0
- package/dist/src/knowledge/budgets.js.map +1 -0
- package/dist/src/knowledge/compact.d.ts +47 -0
- package/dist/src/knowledge/compact.d.ts.map +1 -0
- package/dist/src/knowledge/compact.js +322 -0
- package/dist/src/knowledge/compact.js.map +1 -0
- package/dist/src/knowledge/index.d.ts +7 -0
- package/dist/src/knowledge/index.d.ts.map +1 -0
- package/dist/src/knowledge/index.js +19 -0
- package/dist/src/knowledge/index.js.map +1 -0
- package/dist/src/knowledge/parse.d.ts +3 -0
- package/dist/src/knowledge/parse.d.ts.map +1 -0
- package/dist/src/knowledge/parse.js +205 -0
- package/dist/src/knowledge/parse.js.map +1 -0
- package/dist/src/knowledge/promote.d.ts +37 -0
- package/dist/src/knowledge/promote.d.ts.map +1 -0
- package/dist/src/knowledge/promote.js +120 -0
- package/dist/src/knowledge/promote.js.map +1 -0
- package/dist/src/knowledge/schema.d.ts +61 -0
- package/dist/src/knowledge/schema.d.ts.map +1 -0
- package/dist/src/knowledge/schema.js +64 -0
- package/dist/src/knowledge/schema.js.map +1 -0
- package/dist/src/knowledge/serialize.d.ts +3 -0
- package/dist/src/knowledge/serialize.d.ts.map +1 -0
- package/dist/src/knowledge/serialize.js +67 -0
- package/dist/src/knowledge/serialize.js.map +1 -0
- package/dist/src/onboarding/agents-generate.d.ts +19 -0
- package/dist/src/onboarding/agents-generate.d.ts.map +1 -1
- package/dist/src/onboarding/agents-generate.js +156 -66
- package/dist/src/onboarding/agents-generate.js.map +1 -1
- package/dist/src/onboarding/create.d.ts.map +1 -1
- package/dist/src/onboarding/create.js +66 -10
- package/dist/src/onboarding/create.js.map +1 -1
- package/dist/src/onboarding/doctor.d.ts +13 -1
- package/dist/src/onboarding/doctor.d.ts.map +1 -1
- package/dist/src/onboarding/doctor.js +613 -7
- package/dist/src/onboarding/doctor.js.map +1 -1
- package/dist/src/onboarding/init.d.ts +8 -1
- package/dist/src/onboarding/init.d.ts.map +1 -1
- package/dist/src/onboarding/init.js +33 -2
- package/dist/src/onboarding/init.js.map +1 -1
- package/dist/src/onboarding/memory-scaffold.d.ts +18 -0
- package/dist/src/onboarding/memory-scaffold.d.ts.map +1 -0
- package/dist/src/onboarding/memory-scaffold.js +151 -0
- package/dist/src/onboarding/memory-scaffold.js.map +1 -0
- package/dist/src/onboarding/nested-agents-generate.d.ts +16 -0
- package/dist/src/onboarding/nested-agents-generate.d.ts.map +1 -0
- package/dist/src/onboarding/nested-agents-generate.js +69 -0
- package/dist/src/onboarding/nested-agents-generate.js.map +1 -0
- package/dist/src/onboarding/nested-agents-templates.d.ts +26 -0
- package/dist/src/onboarding/nested-agents-templates.d.ts.map +1 -0
- package/dist/src/onboarding/nested-agents-templates.js +178 -0
- package/dist/src/onboarding/nested-agents-templates.js.map +1 -0
- package/dist/src/onboarding/profile-validate.d.ts +13 -0
- package/dist/src/onboarding/profile-validate.d.ts.map +1 -0
- package/dist/src/onboarding/profile-validate.js +109 -0
- package/dist/src/onboarding/profile-validate.js.map +1 -0
- package/dist/src/onboarding/upgrade.d.ts +6 -0
- package/dist/src/onboarding/upgrade.d.ts.map +1 -1
- package/dist/src/onboarding/upgrade.js +45 -1
- package/dist/src/onboarding/upgrade.js.map +1 -1
- package/dist/src/onboarding/workspace-discovery.d.ts +11 -0
- package/dist/src/onboarding/workspace-discovery.d.ts.map +1 -0
- package/dist/src/onboarding/workspace-discovery.js +138 -0
- package/dist/src/onboarding/workspace-discovery.js.map +1 -0
- package/dist/src/profiles/profile-schema.d.ts +116 -0
- package/dist/src/profiles/profile-schema.d.ts.map +1 -0
- package/dist/src/profiles/profile-schema.js +94 -0
- package/dist/src/profiles/profile-schema.js.map +1 -0
- package/dist/src/profiles/stack-profile.d.ts +41 -1
- package/dist/src/profiles/stack-profile.d.ts.map +1 -1
- package/dist/src/profiles/stack-profile.js +9 -0
- package/dist/src/profiles/stack-profile.js.map +1 -1
- package/dist/src/profiles/terminology-utils.d.ts +8 -0
- package/dist/src/profiles/terminology-utils.d.ts.map +1 -0
- package/dist/src/profiles/terminology-utils.js +31 -0
- package/dist/src/profiles/terminology-utils.js.map +1 -0
- package/dist/src/types.d.ts +0 -1
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/utils/fs-idempotent.d.ts +1 -1
- package/dist/src/utils/fs-idempotent.d.ts.map +1 -1
- package/dist/src/utils/fs-idempotent.js +12 -3
- package/dist/src/utils/fs-idempotent.js.map +1 -1
- package/dist/src/validators/skill-validate.d.ts +15 -0
- package/dist/src/validators/skill-validate.d.ts.map +1 -1
- package/dist/src/validators/skill-validate.js +204 -2
- package/dist/src/validators/skill-validate.js.map +1 -1
- package/package.json +2 -2
- package/profiles/astro-typescript-turborepo.yaml +87 -0
- package/profiles/editframe-html-templates/composition-agents.md +34 -0
- package/profiles/editframe-html-templates/composition.html +32 -0
- package/profiles/editframe-html.yaml +283 -0
- package/profiles/forge-shell.yaml +77 -0
- package/profiles/phaser-turborepo.yaml +87 -0
- package/skills/fo/fo-doc-audit/SKILL.md +6 -6
- package/skills/fo/fo-fix/SKILL.md +11 -0
- package/skills/fo/fo-handoff/SKILL.md +2 -1
- package/skills/fo/fo-idea-implement/SKILL.md +44 -2
- package/skills/fo/fo-idea-plan/SKILL.md +1 -0
- package/skills/fo/fo-knowledge-distill/SKILL.md +170 -0
- package/skills/fo/fo-memory-sync/SKILL.md +6 -3
- package/skills/fo/fo-memory-sync/fix-patterns.md +38 -4
- package/skills/fo/fo-review/SKILL.md +2 -2
- package/skills/fo/fo-session-retro/SKILL.md +21 -11
- package/skills/fo/fo-session-save/SKILL.md +3 -4
- package/skills/fo/fo-session-save/fix-patterns.md +53 -29
- package/skills/fo/fo-session-save/learned-principles.md +59 -8
- package/skills/fo/fo-step-commit/SKILL.md +55 -0
- package/skills/meta/forge-bootstrap/SKILL.md +28 -4
- package/skills/meta/forge-bootstrap/operator-profile-template.md +1 -0
- package/skills/meta/skill-create/SKILL.md +1 -1
- package/skills/shared/grilling/SKILL.md +1 -1
- package/skills/shared/grilling/learned-principles.md +14 -0
- package/skills/shared/grilling/qa-log.md +105 -6
- package/skills/shared/knowledge/learned-principles.md +5 -0
- package/skills/shared/windows-ai-tooling/SKILL.md +154 -1
- package/skills/shared/writing-great-skills/SKILL.md +74 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-validate.d.ts","sourceRoot":"","sources":["../../../src/validators/skill-validate.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"skill-validate.d.ts","sourceRoot":"","sources":["../../../src/validators/skill-validate.ts"],"names":[],"mappings":"AAoCA,UAAU,SAAS;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,OAAO;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,SAAS,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,mBAAmB;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,QAAQ,EAAE,OAAO,EAAE,CAAC;CACrB;AAID,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,mBAAmB,CAyavF"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*
|
|
2
2
|
<MODULE_CONTRACT>
|
|
3
|
-
<purpose>forge.skill.validate — validates all forge skills and declared pack skills against frontmatter contract and invariants SKILL-01..SKILL-
|
|
3
|
+
<purpose>forge.skill.validate — validates all forge skills and declared pack skills against frontmatter contract and invariants SKILL-01..SKILL-21.</purpose>
|
|
4
4
|
<non-goals>
|
|
5
5
|
<item>Do not validate third-party skills — only forge-managed skills in packages/forge/skills/ and declared pack skills.</item>
|
|
6
6
|
</non-goals>
|
|
@@ -13,6 +13,10 @@
|
|
|
13
13
|
<item>RFC-0539: added SKILL-14 (pack skill name must start with pack prefix) and SKILL-15 (non-forge skill may not use fo- prefix). Extended SKILL-07 with asymmetric dependency direction (forge→pack forbidden). Added pack skill validation loop.</item>
|
|
14
14
|
<item>RFC-0548: added SKILL-16 — triggers field must be an array of 1-5 strings, each 5-100 characters, only allowed on fo-category skills.</item>
|
|
15
15
|
<item>RFC-0553: added SKILL-17 — skill files must not contain specific platform RFC/ADR ids (RFC-\\d{4}, ADR-\\d{4}) or platform names (Warpgogol, WarpGogol).</item>
|
|
16
|
+
<item>RFC-0642: added SKILL-18 — forge skill instruction lines must not reference software-specific binding keys (typecheck, scopedBuild, test); use semantic keys (validate, produce, verify) instead.</item>
|
|
17
|
+
<item>RFC-0660: added SKILL-19 (knowledge entry schema validity) and SKILL-20 (entry identifier uniqueness) for structured knowledge files.</item>
|
|
18
|
+
<item>RFC-0661: added SKILL-21 (knowledge layer token budget warnings), refactored warning handling — warnings go to separate `warnings` array, not `violations`.</item>
|
|
19
|
+
<item>2026-08-03: SKILL-17 WarpGogol brand pattern made case-sensitive — the /gi flag defeated the first pattern's @-lookbehind and false-flagged every `@warpgogol/<pkg>` npm-scope reference.</item>
|
|
16
20
|
</CHANGE_SUMMARY>
|
|
17
21
|
*/
|
|
18
22
|
import fs from "node:fs";
|
|
@@ -21,6 +25,8 @@ import { parse as parseYaml } from "yaml";
|
|
|
21
25
|
import { skillFrontmatterSchema } from "../skill-schema.js";
|
|
22
26
|
import { FORGE_SKILLS, discoverPackSkills } from "../registry.js";
|
|
23
27
|
import { loadForgeConfig, resolveForgeRoot } from "../config/forge-config.js";
|
|
28
|
+
import { parseKnowledgeFile } from "../knowledge/index.js";
|
|
29
|
+
import { computeLayerBudgets, resolveKnowledgeBudgets, } from "../knowledge/budgets.js";
|
|
24
30
|
const PREFERENCES_PATTERN = /Read `PREFERENCES\.md`/i;
|
|
25
31
|
export function runSkillValidate(_input, context) {
|
|
26
32
|
const ctx = context;
|
|
@@ -41,6 +47,9 @@ export function runSkillValidate(_input, context) {
|
|
|
41
47
|
const forgeSkillNames = new Set(FORGE_SKILLS.map((s) => s.name));
|
|
42
48
|
const packSkillNames = new Set(packSkills.map((s) => s.name));
|
|
43
49
|
const violations = [];
|
|
50
|
+
const warnings = [];
|
|
51
|
+
// RFC-0661: resolve effective knowledge budgets from forge.yaml
|
|
52
|
+
const budgets = resolveKnowledgeBudgets(workspaceRoot);
|
|
44
53
|
for (const entry of FORGE_SKILLS) {
|
|
45
54
|
const skillPath = path.join(forgeRoot, entry.path);
|
|
46
55
|
const skillDir = path.dirname(skillPath);
|
|
@@ -154,8 +163,20 @@ export function runSkillValidate(_input, context) {
|
|
|
154
163
|
const skill11Violations = checkSkill11(entry.name, body);
|
|
155
164
|
violations.push(...skill11Violations);
|
|
156
165
|
}
|
|
166
|
+
// SKILL-18: Forge skill instruction lines must not reference software-specific
|
|
167
|
+
// binding keys (typecheck, scopedBuild, test). Use semantic keys instead
|
|
168
|
+
// (validate, produce, verify). Same scope as SKILL-11 (code blocks + run: directives).
|
|
169
|
+
// Supports <!-- skill-lint-disable SKILL-18 --> escape hatch.
|
|
170
|
+
// Forge-skill path only — pack skills are domain-specific by design.
|
|
171
|
+
{
|
|
172
|
+
const skill18Violations = checkSkill18(entry.name, body);
|
|
173
|
+
violations.push(...skill18Violations);
|
|
174
|
+
}
|
|
157
175
|
// SKILL-13: Declared knowledge files must exist relative to SKILL.md directory (RFC-0524)
|
|
176
|
+
// SKILL-19/SKILL-20: Knowledge entry schema and identifier uniqueness (RFC-0660)
|
|
177
|
+
// SKILL-21: Knowledge layer token budget warnings (RFC-0661)
|
|
158
178
|
if (parsed.data.knowledge) {
|
|
179
|
+
const parsedFiles = [];
|
|
159
180
|
for (const knowledgeFile of parsed.data.knowledge) {
|
|
160
181
|
const knowledgePath = path.join(skillDir, knowledgeFile);
|
|
161
182
|
if (!fs.existsSync(knowledgePath)) {
|
|
@@ -165,7 +186,16 @@ export function runSkillValidate(_input, context) {
|
|
|
165
186
|
message: `Declared knowledge file '${knowledgeFile}' not found relative to SKILL.md directory`,
|
|
166
187
|
});
|
|
167
188
|
}
|
|
189
|
+
else {
|
|
190
|
+
const { errors, warnings: skillWarnings } = checkSkill19And20(entry.name, knowledgeFile, knowledgePath);
|
|
191
|
+
violations.push(...errors);
|
|
192
|
+
warnings.push(...skillWarnings);
|
|
193
|
+
// Collect parsed files for SKILL-21 batch budget check
|
|
194
|
+
parsedFiles.push(parseKnowledgeFile(knowledgePath));
|
|
195
|
+
}
|
|
168
196
|
}
|
|
197
|
+
// SKILL-21: Check hot/warm layer budgets
|
|
198
|
+
warnings.push(...checkSkill21Budgets(parsedFiles, budgets, entry.name));
|
|
169
199
|
}
|
|
170
200
|
// SKILL-16: triggers field format and category restriction (RFC-0548)
|
|
171
201
|
if (parsed.data.triggers) {
|
|
@@ -310,7 +340,10 @@ export function runSkillValidate(_input, context) {
|
|
|
310
340
|
violations.push(...skill11Violations);
|
|
311
341
|
}
|
|
312
342
|
// SKILL-13: Declared knowledge files must exist
|
|
343
|
+
// SKILL-19/SKILL-20: Knowledge entry schema and identifier uniqueness (RFC-0660)
|
|
344
|
+
// SKILL-21: Knowledge layer token budget warnings (RFC-0661)
|
|
313
345
|
if (parsed.data.knowledge) {
|
|
346
|
+
const parsedFiles = [];
|
|
314
347
|
for (const knowledgeFile of parsed.data.knowledge) {
|
|
315
348
|
const knowledgePath = path.join(skillDir, knowledgeFile);
|
|
316
349
|
if (!fs.existsSync(knowledgePath)) {
|
|
@@ -321,7 +354,15 @@ export function runSkillValidate(_input, context) {
|
|
|
321
354
|
message: `Declared knowledge file '${knowledgeFile}' not found relative to SKILL.md directory`,
|
|
322
355
|
});
|
|
323
356
|
}
|
|
357
|
+
else {
|
|
358
|
+
const { errors, warnings: skillWarnings } = checkSkill19And20(entry.name, knowledgeFile, knowledgePath, entry.pack);
|
|
359
|
+
violations.push(...errors);
|
|
360
|
+
warnings.push(...skillWarnings);
|
|
361
|
+
parsedFiles.push(parseKnowledgeFile(knowledgePath));
|
|
362
|
+
}
|
|
324
363
|
}
|
|
364
|
+
// SKILL-21: Check hot/warm layer budgets for pack skills
|
|
365
|
+
warnings.push(...checkSkill21Budgets(parsedFiles, budgets, entry.name, entry.pack));
|
|
325
366
|
}
|
|
326
367
|
// SKILL-16: triggers field format (RFC-0548) — pack skills may not use triggers
|
|
327
368
|
if (parsed.data.triggers) {
|
|
@@ -367,6 +408,7 @@ export function runSkillValidate(_input, context) {
|
|
|
367
408
|
command: "forge.skill.validate",
|
|
368
409
|
status: violations.length === 0 ? "pass" : "fail",
|
|
369
410
|
violations,
|
|
411
|
+
warnings,
|
|
370
412
|
};
|
|
371
413
|
}
|
|
372
414
|
// ---------------------------------------------------------------------------
|
|
@@ -405,6 +447,40 @@ function checkSkill11(skillName, body) {
|
|
|
405
447
|
}
|
|
406
448
|
return result;
|
|
407
449
|
}
|
|
450
|
+
// ---------------------------------------------------------------------------
|
|
451
|
+
// SKILL-18: No software-specific binding keys in forge skill instruction lines (RFC-0642)
|
|
452
|
+
// ---------------------------------------------------------------------------
|
|
453
|
+
const SKILL18_PATTERNS = [
|
|
454
|
+
/bindings\.commands\.typecheck/gi,
|
|
455
|
+
/bindings\.commands\.scopedBuild/gi,
|
|
456
|
+
/bindings\.commands\.test/gi,
|
|
457
|
+
];
|
|
458
|
+
const SKILL18_DISABLE_MARKER = "<!-- skill-lint-disable SKILL-18 -->";
|
|
459
|
+
function checkSkill18(skillName, body) {
|
|
460
|
+
const result = [];
|
|
461
|
+
if (body.includes(SKILL18_DISABLE_MARKER)) {
|
|
462
|
+
return result;
|
|
463
|
+
}
|
|
464
|
+
const instructionLines = extractInstructionLines(body);
|
|
465
|
+
for (const line of instructionLines) {
|
|
466
|
+
if (line.includes(SKILL18_DISABLE_MARKER)) {
|
|
467
|
+
continue;
|
|
468
|
+
}
|
|
469
|
+
for (const pattern of SKILL18_PATTERNS) {
|
|
470
|
+
const re = new RegExp(pattern.source, pattern.flags);
|
|
471
|
+
const match = re.exec(line);
|
|
472
|
+
if (match) {
|
|
473
|
+
result.push({
|
|
474
|
+
skill: skillName,
|
|
475
|
+
rule: "SKILL-18",
|
|
476
|
+
message: `Instruction line references software-specific binding key '${match[0]}' — use semantic key instead`,
|
|
477
|
+
});
|
|
478
|
+
break;
|
|
479
|
+
}
|
|
480
|
+
}
|
|
481
|
+
}
|
|
482
|
+
return result;
|
|
483
|
+
}
|
|
408
484
|
function extractInstructionLines(body) {
|
|
409
485
|
const lines = [];
|
|
410
486
|
const bodyLines = body.split(/\r?\n/);
|
|
@@ -427,7 +503,7 @@ function extractInstructionLines(body) {
|
|
|
427
503
|
// SKILL-17: No internal platform RFC/ADR/DNA id references or platform names (RFC-0553)
|
|
428
504
|
// ---------------------------------------------------------------------------
|
|
429
505
|
const SKILL17_ID_PATTERNS = [/\bRFC-\d{4}\b/g, /\bADR-\d{4}\b/g, /\bDNA-\d+\b/g];
|
|
430
|
-
const SKILL17_PLATFORM_PATTERNS = [/(?<!@)Warpgogol\b/gi, /\bWarpGogol\b/
|
|
506
|
+
const SKILL17_PLATFORM_PATTERNS = [/(?<!@)Warpgogol\b/gi, /\bWarpGogol\b/g];
|
|
431
507
|
const SKILL17_DISABLE_MARKER = "<!-- skill-lint-disable SKILL-17 -->";
|
|
432
508
|
function checkSkill17(skillName, content) {
|
|
433
509
|
const result = [];
|
|
@@ -466,6 +542,132 @@ function checkSkill17(skillName, content) {
|
|
|
466
542
|
}
|
|
467
543
|
return result;
|
|
468
544
|
}
|
|
545
|
+
function checkSkill19And20(skillName, fileName, filePath, pack) {
|
|
546
|
+
const errors = [];
|
|
547
|
+
const warnings = [];
|
|
548
|
+
const parsed = parseKnowledgeFile(filePath);
|
|
549
|
+
// Knowledge-adjacent files are exempt from SKILL-19/SKILL-20
|
|
550
|
+
if (parsed.isKnowledgeAdjacent) {
|
|
551
|
+
return { errors, warnings };
|
|
552
|
+
}
|
|
553
|
+
// SKILL-19: Entry schema validity (errors)
|
|
554
|
+
for (const issue of parsed.parseIssues) {
|
|
555
|
+
errors.push({
|
|
556
|
+
skill: skillName,
|
|
557
|
+
rule: "SKILL-19",
|
|
558
|
+
file: fileName,
|
|
559
|
+
line: issue.line,
|
|
560
|
+
severity: "error",
|
|
561
|
+
message: issue.message,
|
|
562
|
+
pack,
|
|
563
|
+
});
|
|
564
|
+
}
|
|
565
|
+
// SKILL-19: Legacy section warnings (migration window) — go to warnings, not errors
|
|
566
|
+
if (parsed.legacySections.length > 0) {
|
|
567
|
+
warnings.push({
|
|
568
|
+
skill: skillName,
|
|
569
|
+
rule: "SKILL-19",
|
|
570
|
+
file: fileName,
|
|
571
|
+
severity: "warning",
|
|
572
|
+
message: `${parsed.legacySections.length} legacy section${parsed.legacySections.length === 1 ? "" : "s"} predate RFC-0660 — run the knowledge compaction command to migrate`,
|
|
573
|
+
pack,
|
|
574
|
+
});
|
|
575
|
+
}
|
|
576
|
+
// SKILL-20: Identifier uniqueness and reference validity (errors)
|
|
577
|
+
const seenIds = new Map(); // id → first line
|
|
578
|
+
for (const entry of parsed.entries) {
|
|
579
|
+
// Check id format
|
|
580
|
+
if (!/^K-\d{4}$/.test(entry.meta.id)) {
|
|
581
|
+
errors.push({
|
|
582
|
+
skill: skillName,
|
|
583
|
+
rule: "SKILL-20",
|
|
584
|
+
file: fileName,
|
|
585
|
+
line: entry.lineStart,
|
|
586
|
+
severity: "error",
|
|
587
|
+
message: `Entry id '${entry.meta.id}' does not match ^K-\d{4}$`,
|
|
588
|
+
pack,
|
|
589
|
+
});
|
|
590
|
+
continue;
|
|
591
|
+
}
|
|
592
|
+
// Check uniqueness
|
|
593
|
+
if (seenIds.has(entry.meta.id)) {
|
|
594
|
+
errors.push({
|
|
595
|
+
skill: skillName,
|
|
596
|
+
rule: "SKILL-20",
|
|
597
|
+
file: fileName,
|
|
598
|
+
line: entry.lineStart,
|
|
599
|
+
severity: "error",
|
|
600
|
+
message: `Duplicate entry id ${entry.meta.id} (first occurrence at line ${seenIds.get(entry.meta.id)})`,
|
|
601
|
+
pack,
|
|
602
|
+
});
|
|
603
|
+
}
|
|
604
|
+
else {
|
|
605
|
+
seenIds.set(entry.meta.id, entry.lineStart);
|
|
606
|
+
}
|
|
607
|
+
}
|
|
608
|
+
// Check supersedes references resolve within the same file
|
|
609
|
+
const entryIds = new Set(parsed.entries.map((e) => e.meta.id));
|
|
610
|
+
for (const entry of parsed.entries) {
|
|
611
|
+
if (entry.meta.supersedes) {
|
|
612
|
+
for (const refId of entry.meta.supersedes) {
|
|
613
|
+
if (!entryIds.has(refId)) {
|
|
614
|
+
errors.push({
|
|
615
|
+
skill: skillName,
|
|
616
|
+
rule: "SKILL-20",
|
|
617
|
+
file: fileName,
|
|
618
|
+
line: entry.lineStart,
|
|
619
|
+
severity: "error",
|
|
620
|
+
message: `Entry ${entry.meta.id}: supersedes reference '${refId}' does not resolve to an entry in the same file`,
|
|
621
|
+
pack,
|
|
622
|
+
});
|
|
623
|
+
}
|
|
624
|
+
}
|
|
625
|
+
}
|
|
626
|
+
// Check promotedTo format
|
|
627
|
+
if (entry.meta.promotedTo !== null && entry.meta.promotedTo !== undefined) {
|
|
628
|
+
if (!/^shared\/K-\d{4}$/.test(entry.meta.promotedTo)) {
|
|
629
|
+
errors.push({
|
|
630
|
+
skill: skillName,
|
|
631
|
+
rule: "SKILL-20",
|
|
632
|
+
file: fileName,
|
|
633
|
+
line: entry.lineStart,
|
|
634
|
+
severity: "error",
|
|
635
|
+
message: `Entry ${entry.meta.id}: promotedTo '${entry.meta.promotedTo}' does not match ^shared/K-\d{4}$`,
|
|
636
|
+
pack,
|
|
637
|
+
});
|
|
638
|
+
}
|
|
639
|
+
}
|
|
640
|
+
}
|
|
641
|
+
return { errors, warnings };
|
|
642
|
+
}
|
|
643
|
+
// ---------------------------------------------------------------------------
|
|
644
|
+
// SKILL-21: Knowledge layer token budget warnings (RFC-0661)
|
|
645
|
+
// ---------------------------------------------------------------------------
|
|
646
|
+
function checkSkill21Budgets(parsedFiles, budgets, skillName, pack) {
|
|
647
|
+
const warnings = [];
|
|
648
|
+
const skillNames = new Map();
|
|
649
|
+
for (const pf of parsedFiles) {
|
|
650
|
+
skillNames.set(pf.path, skillName);
|
|
651
|
+
}
|
|
652
|
+
const budgetReports = computeLayerBudgets(parsedFiles, budgets, skillNames);
|
|
653
|
+
for (const report of budgetReports) {
|
|
654
|
+
if (report.exceededBy > 0) {
|
|
655
|
+
const layerName = report.layer === "L2" ? "Hot" : "Warm";
|
|
656
|
+
const pctOver = Math.round((report.exceededBy / report.budget) * 100);
|
|
657
|
+
warnings.push({
|
|
658
|
+
skill: skillName,
|
|
659
|
+
rule: "SKILL-21",
|
|
660
|
+
file: report.file,
|
|
661
|
+
layer: report.layer,
|
|
662
|
+
severity: "warning",
|
|
663
|
+
message: `${layerName} layer exceeds budget: ${report.activeChars} of ${report.budget} characters (${pctOver}% over)`,
|
|
664
|
+
fixHint: "Run the knowledge compaction command (RFC-0662) to archive stale entries, or promote duplicated principles to the shared layer (RFC-0663)",
|
|
665
|
+
pack,
|
|
666
|
+
});
|
|
667
|
+
}
|
|
668
|
+
}
|
|
669
|
+
return warnings;
|
|
670
|
+
}
|
|
469
671
|
function scanForOrphanSkills(dir, knownPaths, forgeRoot, violations) {
|
|
470
672
|
const entries = fs.readdirSync(dir, { withFileTypes: true });
|
|
471
673
|
for (const entry of entries) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-validate.js","sourceRoot":"","sources":["../../../src/validators/skill-validate.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"skill-validate.js","sourceRoot":"","sources":["../../../src/validators/skill-validate.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@warpgogol/forge",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -148,7 +148,7 @@
|
|
|
148
148
|
"zod": "^4.4.3"
|
|
149
149
|
},
|
|
150
150
|
"devDependencies": {
|
|
151
|
-
"@types/node": "^26.1.
|
|
151
|
+
"@types/node": "^26.1.2",
|
|
152
152
|
"fast-check": "^4.9.0",
|
|
153
153
|
"typescript": "^6.0.3",
|
|
154
154
|
"vitest": "^4.1.10"
|
|
@@ -55,6 +55,93 @@ workspace:
|
|
|
55
55
|
.turbo
|
|
56
56
|
.cache
|
|
57
57
|
operator-profile.md
|
|
58
|
+
- path: .github/workflows/ci.yml
|
|
59
|
+
content: |
|
|
60
|
+
name: CI
|
|
61
|
+
|
|
62
|
+
on:
|
|
63
|
+
pull_request:
|
|
64
|
+
push:
|
|
65
|
+
branches: [main]
|
|
66
|
+
workflow_dispatch:
|
|
67
|
+
|
|
68
|
+
concurrency:
|
|
69
|
+
group: ${{ github.workflow }}-${{ github.ref }}
|
|
70
|
+
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
|
|
71
|
+
|
|
72
|
+
permissions:
|
|
73
|
+
contents: read
|
|
74
|
+
|
|
75
|
+
jobs:
|
|
76
|
+
ci:
|
|
77
|
+
runs-on: ubuntu-latest
|
|
78
|
+
timeout-minutes: 15
|
|
79
|
+
name: Lint, type-check, build, test
|
|
80
|
+
env:
|
|
81
|
+
TZ: UTC
|
|
82
|
+
|
|
83
|
+
steps:
|
|
84
|
+
- name: Checkout
|
|
85
|
+
uses: actions/checkout@v5
|
|
86
|
+
|
|
87
|
+
- name: Enable Corepack
|
|
88
|
+
run: corepack enable
|
|
89
|
+
|
|
90
|
+
- name: Setup Node.js
|
|
91
|
+
uses: actions/setup-node@v5
|
|
92
|
+
with:
|
|
93
|
+
node-version: "24"
|
|
94
|
+
cache: "pnpm"
|
|
95
|
+
|
|
96
|
+
- name: Install dependencies
|
|
97
|
+
run: pnpm install --frozen-lockfile
|
|
98
|
+
|
|
99
|
+
- name: Format check
|
|
100
|
+
run: pnpm format:check
|
|
101
|
+
|
|
102
|
+
- name: Type check
|
|
103
|
+
run: pnpm build:check
|
|
104
|
+
|
|
105
|
+
- name: Build
|
|
106
|
+
run: pnpm build
|
|
107
|
+
|
|
108
|
+
- name: Test
|
|
109
|
+
run: pnpm test
|
|
110
|
+
|
|
111
|
+
# Windows CI (optional — uncomment if Windows checks are needed):
|
|
112
|
+
#
|
|
113
|
+
# windows-ci:
|
|
114
|
+
# runs-on: windows-latest
|
|
115
|
+
# name: Lint, type-check, build, test (Windows)
|
|
116
|
+
# env:
|
|
117
|
+
# GIT_CONFIG_COUNT: 1
|
|
118
|
+
# GIT_CONFIG_KEY_0: core.longpaths
|
|
119
|
+
# GIT_CONFIG_VALUE_0: "true"
|
|
120
|
+
# steps:
|
|
121
|
+
# - name: Checkout
|
|
122
|
+
# uses: actions/checkout@v5
|
|
123
|
+
# - name: Enable Corepack
|
|
124
|
+
# run: corepack enable
|
|
125
|
+
# - name: Setup Node.js
|
|
126
|
+
# uses: actions/setup-node@v5
|
|
127
|
+
# with:
|
|
128
|
+
# node-version: "24"
|
|
129
|
+
# cache: "pnpm"
|
|
130
|
+
# - name: Install dependencies
|
|
131
|
+
# run: pnpm install --frozen-lockfile
|
|
132
|
+
# - name: Format check
|
|
133
|
+
# run: pnpm format:check
|
|
134
|
+
# - name: Type check
|
|
135
|
+
# run: pnpm build:check
|
|
136
|
+
# - name: Build
|
|
137
|
+
# run: pnpm build
|
|
138
|
+
# - name: Test
|
|
139
|
+
# run: pnpm test
|
|
140
|
+
#
|
|
141
|
+
# The GIT_CONFIG_COUNT env block MUST be set before the checkout step
|
|
142
|
+
# so git can handle long file paths during clone on Windows.
|
|
143
|
+
# Do not add Windows to the matrix "just in case" — it requires
|
|
144
|
+
# separate path-length and platform-specific dependency verification.
|
|
58
145
|
- path: package.json
|
|
59
146
|
content: |
|
|
60
147
|
{
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# Composition Workspace
|
|
2
|
+
|
|
3
|
+
This workspace contains an Editframe video composition.
|
|
4
|
+
|
|
5
|
+
## Domain terminology
|
|
6
|
+
|
|
7
|
+
- **Composition** — the artifact this workspace produces (an HTML file using Editframe custom elements).
|
|
8
|
+
- **Scene** — a structural module within a composition (an `ef-timegroup` block).
|
|
9
|
+
- **Director** — the operator who creates and renders the composition.
|
|
10
|
+
|
|
11
|
+
## Quality invariants
|
|
12
|
+
|
|
13
|
+
- **VIDEO-01**: Composition filenames must use kebab-case (lowercase letters, digits, hyphens only). This ensures consistent naming across the project. Severity: error.
|
|
14
|
+
- **VIDEO-02**: Scene durations must use `contain` fit mode by default to avoid unexpected cropping of video content. Use `cover` or `fill` only when intentionally overriding the default. Severity: warning.
|
|
15
|
+
- **VIDEO-03**: All speech audio elements (`ef-audio` with speech content) must have corresponding `ef-captions` elements for accessibility. Severity: error.
|
|
16
|
+
|
|
17
|
+
## Workflow
|
|
18
|
+
|
|
19
|
+
1. Create a `.html` file with Editframe custom elements (`ef-timegroup`, `ef-video`, `ef-audio`, `ef-text`, `ef-captions`).
|
|
20
|
+
2. Run `editframe preview` to preview the composition in the browser.
|
|
21
|
+
3. Run `editframe check` to validate the composition structure.
|
|
22
|
+
4. Run `editframe render -o dist/<name>.mp4` to produce the final video output.
|
|
23
|
+
|
|
24
|
+
## Reference template
|
|
25
|
+
|
|
26
|
+
A sample composition template is available at `editframe-html-templates/composition.html` in the forge profiles directory. Copy it to start a new composition:
|
|
27
|
+
|
|
28
|
+
```sh
|
|
29
|
+
cp node_modules/@warpgogol/forge/profiles/editframe-html-templates/composition.html compositions/my-new-video/composition.html
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## File naming
|
|
33
|
+
|
|
34
|
+
Composition files use kebab-case: `my-video.html`, `product-demo.html`, `intro-clip.html`.
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
Editframe HTML composition template
|
|
3
|
+
Copy this file to start a new composition. Editframe custom elements:
|
|
4
|
+
- ef-timegroup: groups elements into a timed sequence
|
|
5
|
+
- ef-video: video source with fit mode (contain, cover, fill)
|
|
6
|
+
- ef-audio: audio source
|
|
7
|
+
- ef-text: text overlay with positioning
|
|
8
|
+
- ef-captions: accessibility captions for speech audio
|
|
9
|
+
Run `editframe preview` to preview, `editframe render` to produce output.
|
|
10
|
+
-->
|
|
11
|
+
<ef-timegroup duration="10s">
|
|
12
|
+
<ef-video
|
|
13
|
+
src="assets/background.mp4"
|
|
14
|
+
fit="contain"
|
|
15
|
+
duration="10s"
|
|
16
|
+
></ef-video>
|
|
17
|
+
<ef-text
|
|
18
|
+
text="Your text here"
|
|
19
|
+
x="50%"
|
|
20
|
+
y="50%"
|
|
21
|
+
font-size="48px"
|
|
22
|
+
color="white"
|
|
23
|
+
text-align="center"
|
|
24
|
+
duration="5s"
|
|
25
|
+
></ef-text>
|
|
26
|
+
<ef-audio
|
|
27
|
+
src="assets/narration.mp3"
|
|
28
|
+
></ef-audio>
|
|
29
|
+
<ef-captions
|
|
30
|
+
src="assets/captions.vtt"
|
|
31
|
+
></ef-captions>
|
|
32
|
+
</ef-timegroup>
|