runward 0.14.0 → 0.14.2
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/commands/check.js
CHANGED
|
@@ -166,4 +166,13 @@ export async function checkCommand(opts) {
|
|
|
166
166
|
console.log("\n" + status.warning(`${parts.join(" · ")}. No phase closes without its artifact — and, under --strict, without its CRITICAL/HIGH rules accounted for.`));
|
|
167
167
|
process.exitCode = 1;
|
|
168
168
|
}
|
|
169
|
+
// Transmission surface: name the next gesture, so the operating agent can hand the human a decision.
|
|
170
|
+
console.log(section("Next"));
|
|
171
|
+
if (gaps === 0 && strictGaps === 0 && hookFailed === 0) {
|
|
172
|
+
console.log(` Assemble the evidence pack with ${c.primary("runward compliance <regime>")} ${c.darkGray("(iso-42001 · nist-ai-rmf · eu-ai-act), or")} ${c.primary("runward status")} ${c.darkGray("for a handover snapshot.")}`);
|
|
173
|
+
}
|
|
174
|
+
else {
|
|
175
|
+
console.log(` Fill the deliverable(s) named above, then re-run ${c.primary("runward check")}. ${c.primary("runward status")} ${c.darkGray("names exactly what is open at the current gate.")}`);
|
|
176
|
+
}
|
|
177
|
+
console.log();
|
|
169
178
|
}
|
package/dist/commands/doctor.js
CHANGED
|
@@ -5,7 +5,7 @@ import { TEMPLATES, MISSION_LAYOUT, VERSION, WORKFLOWS } from "../lib/paths.js";
|
|
|
5
5
|
import { EXPECTED_RULES, EXPECTED_MAPPED, EXPECTED_ADAPTERS } from "../lib/constants.js";
|
|
6
6
|
import { expectedRules } from "../lib/conformance.js";
|
|
7
7
|
import { findMissionRoot } from "../lib/mission.js";
|
|
8
|
-
import { createHeader, section, status } from "../lib/styles.js";
|
|
8
|
+
import { c, createHeader, section, status } from "../lib/styles.js";
|
|
9
9
|
/**
|
|
10
10
|
* Environment and installation checks.
|
|
11
11
|
* Exit codes: 0 = all good, 1 = warnings, 2 = critical failure.
|
|
@@ -80,5 +80,10 @@ export async function doctorCommand() {
|
|
|
80
80
|
}
|
|
81
81
|
else
|
|
82
82
|
console.log(" " + status.success("all checks passed"));
|
|
83
|
+
// Transmission surface: name the next gesture.
|
|
84
|
+
console.log(section("Next"));
|
|
85
|
+
console.log(" " + (root
|
|
86
|
+
? `Run ${c.primary("runward check")} to see which gate this mission is at.`
|
|
87
|
+
: `Run ${c.primary("runward init")} to scaffold a mission, then ${c.primary("runward check")} to see where you stand.`));
|
|
83
88
|
console.log();
|
|
84
89
|
}
|
package/dist/commands/update.js
CHANGED
|
@@ -45,5 +45,9 @@ export async function updateCommand(opts) {
|
|
|
45
45
|
}
|
|
46
46
|
console.log(section("Summary"));
|
|
47
47
|
console.log(` ${status.success(`${same} up to date`)} ${added ? status.info(`${added} added`) + " " : ""}${drifted ? status.warning(`${drifted} drifted${opts.force ? " (overwritten)" : ""}`) : ""}`);
|
|
48
|
-
console.log(c.darkGray("\n Mission state (framing, architecture, ADRs, governance) is never touched by update
|
|
48
|
+
console.log(c.darkGray("\n Mission state (framing, architecture, ADRs, governance) is never touched by update."));
|
|
49
|
+
// Transmission surface: name the next gesture.
|
|
50
|
+
console.log(section("Next"));
|
|
51
|
+
console.log(` Re-run ${c.primary("runward check")} to re-verify the gate against the refreshed rules and workflows.`);
|
|
52
|
+
console.log();
|
|
49
53
|
}
|
package/dist/lib/tools.js
CHANGED
|
@@ -46,11 +46,16 @@ const skillBody = (s) => [
|
|
|
46
46
|
"This skill helps you *apply* the rules; it does not enforce them. `runward check --strict` is the sole authority and verifies the manifest deterministically. A rule surfaced here but not accounted for still fails the gate.",
|
|
47
47
|
"",
|
|
48
48
|
].join("\n");
|
|
49
|
+
/** A YAML-safe double-quoted scalar. The description embeds the `when` trigger, which carries
|
|
50
|
+
* colons (and apostrophes) — left bare, a spec-conformant YAML parser (PyYAML safe_load,
|
|
51
|
+
* js-yaml) rejects the frontmatter, even though today's lenient line-based harness readers
|
|
52
|
+
* tolerate it. Double quotes take colons and apostrophes without escaping. */
|
|
53
|
+
const yamlStr = (v) => `"${v.replace(/\\/g, "\\\\").replace(/"/g, '\\"')}"`;
|
|
49
54
|
/** SKILL.md open-format: name + description (the relevance trigger) + body. */
|
|
50
55
|
const skillMd = (s) => [
|
|
51
56
|
"---",
|
|
52
57
|
`name: runward-${s.phase}`,
|
|
53
|
-
`description: Runward ${s.label} craft rules. Use when ${s.when}
|
|
58
|
+
`description: ${yamlStr(`Runward ${s.label} craft rules. Use when ${s.when}.`)}`,
|
|
54
59
|
"---",
|
|
55
60
|
"",
|
|
56
61
|
skillBody(s),
|
|
@@ -110,7 +115,7 @@ export const TOOL_PROFILES = [
|
|
|
110
115
|
label: "Continue.dev (.continue/rules/runward-*)",
|
|
111
116
|
files: (root) => PHASE_SKILLS.map((s) => ({
|
|
112
117
|
path: join(root, ".continue", "rules", `runward-${s.phase}.md`),
|
|
113
|
-
content: ["---", `name: Runward ${s.label} craft`, `description: Use when ${s.when}
|
|
118
|
+
content: ["---", `name: ${yamlStr(`Runward ${s.label} craft`)}`, `description: ${yamlStr(`Use when ${s.when}.`)}`, "alwaysApply: false", "---", "", skillBody(s)].join("\n"),
|
|
114
119
|
})),
|
|
115
120
|
},
|
|
116
121
|
{
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "runward",
|
|
3
|
-
"version": "0.14.
|
|
3
|
+
"version": "0.14.2",
|
|
4
4
|
"description": "After the spec: ship and run. A delivery framework for agentic systems — floor first, evolution on evidence, governance from day zero, handover with proof.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"agentic",
|
|
@@ -49,6 +49,7 @@
|
|
|
49
49
|
"@types/node": "^22.0.0",
|
|
50
50
|
"ajv": "^8.20.0",
|
|
51
51
|
"ajv-formats": "^3.0.1",
|
|
52
|
+
"js-yaml": "^5.2.1",
|
|
52
53
|
"typescript": "^5.5.0"
|
|
53
54
|
}
|
|
54
55
|
}
|