@deftai/directive-runtime 0.126.0-beta.3 → 0.127.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/skills/deft-directive-release/SKILL.md +428 -7
- package/Taskfile.yml +1 -1
- package/dist/contract-entry.js +2 -4
- package/dist/dispatch.js +1 -6
- package/dist/doctor-diagnose.js +10 -7
- package/dist/hook-dispatch.d.ts +1 -1
- package/dist/hook-dispatch.js +1 -1
- package/dist/install-cli/coverage-map.d.ts +1 -5
- package/dist/install-cli/coverage-map.js +28 -22
- package/dist/installer-output-inventory.js +1 -4
- package/dist/lifecycle-cli/coverage-map.js +37 -35
- package/dist/migrate.js +12 -7
- package/dist/removal-steps/index.d.ts +2 -2
- package/dist/removal-steps/steps.js +6 -9
- package/dist/removal-steps/strategies.js +1 -1
- package/dist/setup-wiring.d.ts +4 -0
- package/dist/setup-wiring.js +6 -7
- package/dist/setup.js +12 -14
- package/dist/uninstall.js +1 -1
- package/dist/vbrief-preflight-fixtures.js +1 -1
- package/dist/verify-intent-constraint.d.ts +2 -0
- package/dist/verify-intent-constraint.js +24 -0
- package/dist/verify-observable-scope.d.ts +2 -0
- package/dist/verify-observable-scope.js +24 -0
- package/docs/intent-constraint.md +7 -1
- package/docs/observable-scope.md +6 -0
- package/package.json +1 -1
- package/packs/skills/skills-pack-0.1.json +3 -3
- package/scm/github.md +1 -0
- package/skills/deft-directive-feedback/SKILL.md +9 -20
- package/skills/deft-directive-release/SKILL.md +4 -4
- package/skills/deft-directive-review-cycle/SKILL.md +2 -2
- package/skills/deft-directive-setup/SKILL.md +17 -41
- package/skills/deft-directive-swarm/references/host-cursor.md +18 -1
- package/skills/deft-directive-swarm/references/host-grok-build.md +3 -3
- package/skills/deft-directive-sync/SKILL.md +2 -2
- package/skills/deft-directive-tutorial/SKILL.md +1 -1
- package/tasks/engine.yml +11 -4
- package/templates/agents-entry.md +1 -0
- package/vendor/directive-content/.agents/skills/deft-directive-release/SKILL.md +428 -7
- package/vendor/directive-content/Taskfile.yml +1 -1
- package/vendor/directive-content/docs/intent-constraint.md +7 -1
- package/vendor/directive-content/docs/observable-scope.md +6 -0
- package/vendor/directive-content/packs/skills/skills-pack-0.1.json +3 -3
- package/vendor/directive-content/scm/github.md +1 -0
- package/vendor/directive-content/skills/deft-directive-feedback/SKILL.md +9 -20
- package/vendor/directive-content/skills/deft-directive-release/SKILL.md +4 -4
- package/vendor/directive-content/skills/deft-directive-review-cycle/SKILL.md +2 -2
- package/vendor/directive-content/skills/deft-directive-setup/SKILL.md +17 -41
- package/vendor/directive-content/skills/deft-directive-swarm/references/host-cursor.md +18 -1
- package/vendor/directive-content/skills/deft-directive-swarm/references/host-grok-build.md +3 -3
- package/vendor/directive-content/skills/deft-directive-sync/SKILL.md +2 -2
- package/vendor/directive-content/skills/deft-directive-tutorial/SKILL.md +1 -1
- package/vendor/directive-content/tasks/engine.yml +11 -4
- package/vendor/directive-content/templates/agents-entry.md +1 -0
- package/vendor/directive-core/dist/.tsbuildinfo +1 -1
- package/vendor/directive-core/dist/consumer-check-contract/evaluate.d.ts +3 -2
- package/vendor/directive-core/dist/consumer-check-contract/evaluate.d.ts.map +1 -1
- package/vendor/directive-core/dist/consumer-check-contract/evaluate.js +7 -6
- package/vendor/directive-core/dist/consumer-check-contract/evaluate.js.map +1 -1
- package/vendor/directive-core/dist/content-contracts/skills/greptile-detector.d.ts +6 -0
- package/vendor/directive-core/dist/content-contracts/skills/greptile-detector.d.ts.map +1 -1
- package/vendor/directive-core/dist/content-contracts/skills/greptile-detector.js +97 -3
- package/vendor/directive-core/dist/content-contracts/skills/greptile-detector.js.map +1 -1
- package/vendor/directive-core/dist/coverage-applicability/evaluate.d.ts.map +1 -1
- package/vendor/directive-core/dist/coverage-applicability/evaluate.js +406 -11
- package/vendor/directive-core/dist/coverage-applicability/evaluate.js.map +1 -1
- package/vendor/directive-core/dist/deposit/live-procedure-targets.d.ts.map +1 -1
- package/vendor/directive-core/dist/deposit/live-procedure-targets.js.map +1 -1
- package/vendor/directive-core/dist/deposit/python-free.d.ts +2 -0
- package/vendor/directive-core/dist/deposit/python-free.d.ts.map +1 -1
- package/vendor/directive-core/dist/deposit/python-free.js +5 -1
- package/vendor/directive-core/dist/deposit/python-free.js.map +1 -1
- package/vendor/directive-core/dist/doctor/checks.d.ts.map +1 -1
- package/vendor/directive-core/dist/doctor/checks.js +3 -7
- package/vendor/directive-core/dist/doctor/checks.js.map +1 -1
- package/vendor/directive-core/dist/doctor/main.d.ts.map +1 -1
- package/vendor/directive-core/dist/doctor/main.js +6 -0
- package/vendor/directive-core/dist/doctor/main.js.map +1 -1
- package/vendor/directive-core/dist/doctor/manifest.d.ts.map +1 -1
- package/vendor/directive-core/dist/doctor/manifest.js +3 -2
- package/vendor/directive-core/dist/doctor/manifest.js.map +1 -1
- package/vendor/directive-core/dist/doctor/paths.d.ts.map +1 -1
- package/vendor/directive-core/dist/doctor/paths.js +11 -0
- package/vendor/directive-core/dist/doctor/paths.js.map +1 -1
- package/vendor/directive-core/dist/engine-version.d.ts.map +1 -1
- package/vendor/directive-core/dist/engine-version.js +1 -4
- package/vendor/directive-core/dist/engine-version.js.map +1 -1
- package/vendor/directive-core/dist/hooks/dispatcher.d.ts +2 -0
- package/vendor/directive-core/dist/hooks/dispatcher.d.ts.map +1 -1
- package/vendor/directive-core/dist/hooks/dispatcher.js +5 -1
- package/vendor/directive-core/dist/hooks/dispatcher.js.map +1 -1
- package/vendor/directive-core/dist/init-deposit/agent-hooks.d.ts.map +1 -1
- package/vendor/directive-core/dist/init-deposit/agent-hooks.js.map +1 -1
- package/vendor/directive-core/dist/init-deposit/scaffold.d.ts +4 -0
- package/vendor/directive-core/dist/init-deposit/scaffold.d.ts.map +1 -1
- package/vendor/directive-core/dist/init-deposit/scaffold.js +4 -2
- package/vendor/directive-core/dist/init-deposit/scaffold.js.map +1 -1
- package/vendor/directive-core/dist/install-contract/constants.d.ts.map +1 -1
- package/vendor/directive-core/dist/install-contract/constants.js +9 -1
- package/vendor/directive-core/dist/install-contract/constants.js.map +1 -1
- package/vendor/directive-core/dist/install-contract/data-status.d.ts.map +1 -1
- package/vendor/directive-core/dist/install-contract/data-status.js.map +1 -1
- package/vendor/directive-core/dist/install-contract/index.d.ts +1 -1
- package/vendor/directive-core/dist/install-contract/index.d.ts.map +1 -1
- package/vendor/directive-core/dist/install-contract/index.js.map +1 -1
- package/vendor/directive-core/dist/install-contract/package-meta.d.ts.map +1 -1
- package/vendor/directive-core/dist/install-contract/package-meta.js.map +1 -1
- package/vendor/directive-core/dist/install-health/cheap.d.ts.map +1 -1
- package/vendor/directive-core/dist/install-health/cheap.js +2 -6
- package/vendor/directive-core/dist/install-health/cheap.js.map +1 -1
- package/vendor/directive-core/dist/install-health/in-sync.d.ts.map +1 -1
- package/vendor/directive-core/dist/install-health/in-sync.js.map +1 -1
- package/vendor/directive-core/dist/install-health/index.d.ts +6 -6
- package/vendor/directive-core/dist/install-health/index.d.ts.map +1 -1
- package/vendor/directive-core/dist/install-health/index.js +3 -3
- package/vendor/directive-core/dist/install-health/index.js.map +1 -1
- package/vendor/directive-core/dist/install-health/ownership.d.ts.map +1 -1
- package/vendor/directive-core/dist/install-health/ownership.js +2 -6
- package/vendor/directive-core/dist/install-health/ownership.js.map +1 -1
- package/vendor/directive-core/dist/install-health/readers.d.ts.map +1 -1
- package/vendor/directive-core/dist/install-health/readers.js.map +1 -1
- package/vendor/directive-core/dist/install-health/wiring.d.ts.map +1 -1
- package/vendor/directive-core/dist/install-health/wiring.js +2 -3
- package/vendor/directive-core/dist/install-health/wiring.js.map +1 -1
- package/vendor/directive-core/dist/intent-constraint/evaluate.d.ts +7 -0
- package/vendor/directive-core/dist/intent-constraint/evaluate.d.ts.map +1 -1
- package/vendor/directive-core/dist/intent-constraint/evaluate.js +26 -5
- package/vendor/directive-core/dist/intent-constraint/evaluate.js.map +1 -1
- package/vendor/directive-core/dist/intent-constraint/plan-id-adopter.d.ts +76 -0
- package/vendor/directive-core/dist/intent-constraint/plan-id-adopter.d.ts.map +1 -0
- package/vendor/directive-core/dist/intent-constraint/plan-id-adopter.js +239 -0
- package/vendor/directive-core/dist/intent-constraint/plan-id-adopter.js.map +1 -0
- package/vendor/directive-core/dist/observable-scope/evaluate.d.ts +7 -0
- package/vendor/directive-core/dist/observable-scope/evaluate.d.ts.map +1 -1
- package/vendor/directive-core/dist/observable-scope/evaluate.js +51 -7
- package/vendor/directive-core/dist/observable-scope/evaluate.js.map +1 -1
- package/vendor/directive-core/dist/pr-closing-keywords/main.d.ts +2 -0
- package/vendor/directive-core/dist/pr-closing-keywords/main.d.ts.map +1 -1
- package/vendor/directive-core/dist/pr-closing-keywords/main.js +6 -2
- package/vendor/directive-core/dist/pr-closing-keywords/main.js.map +1 -1
- package/vendor/directive-core/dist/release/cli-drift-report.d.ts +4 -4
- package/vendor/directive-core/dist/release/cli-drift-report.d.ts.map +1 -1
- package/vendor/directive-core/dist/release/cli-drift-report.js +6 -11
- package/vendor/directive-core/dist/release/cli-drift-report.js.map +1 -1
- package/vendor/directive-core/dist/release-e2e/constants.d.ts +4 -3
- package/vendor/directive-core/dist/release-e2e/constants.d.ts.map +1 -1
- package/vendor/directive-core/dist/release-e2e/constants.js +4 -3
- package/vendor/directive-core/dist/release-e2e/constants.js.map +1 -1
- package/vendor/directive-core/dist/release-e2e/greenfield-python-free-smoke.d.ts.map +1 -1
- package/vendor/directive-core/dist/release-e2e/greenfield-python-free-smoke.js +87 -28
- package/vendor/directive-core/dist/release-e2e/greenfield-python-free-smoke.js.map +1 -1
- package/vendor/directive-core/dist/release-e2e/legacy-bridge-leg.d.ts.map +1 -1
- package/vendor/directive-core/dist/release-e2e/legacy-bridge-leg.js +13 -2
- package/vendor/directive-core/dist/release-e2e/legacy-bridge-leg.js.map +1 -1
- package/vendor/directive-core/dist/release-e2e/main.js +1 -1
- package/vendor/directive-core/dist/release-e2e/npm-ops.d.ts +11 -5
- package/vendor/directive-core/dist/release-e2e/npm-ops.d.ts.map +1 -1
- package/vendor/directive-core/dist/release-e2e/npm-ops.js +90 -45
- package/vendor/directive-core/dist/release-e2e/npm-ops.js.map +1 -1
- package/vendor/directive-core/dist/resolution/engine-resolve.d.ts.map +1 -1
- package/vendor/directive-core/dist/resolution/engine-resolve.js.map +1 -1
- package/vendor/directive-core/dist/resolution/pin.d.ts +11 -5
- package/vendor/directive-core/dist/resolution/pin.d.ts.map +1 -1
- package/vendor/directive-core/dist/resolution/pin.js +20 -11
- package/vendor/directive-core/dist/resolution/pin.js.map +1 -1
- package/vendor/directive-core/dist/resolution/plan.d.ts.map +1 -1
- package/vendor/directive-core/dist/resolution/plan.js +5 -3
- package/vendor/directive-core/dist/resolution/plan.js.map +1 -1
- package/vendor/directive-core/dist/review-monitor/bounded-pr-watch-deny.d.ts +54 -3
- package/vendor/directive-core/dist/review-monitor/bounded-pr-watch-deny.d.ts.map +1 -1
- package/vendor/directive-core/dist/review-monitor/bounded-pr-watch-deny.js +142 -0
- package/vendor/directive-core/dist/review-monitor/bounded-pr-watch-deny.js.map +1 -1
- package/vendor/directive-core/dist/session/spawn-occupancy.d.ts +7 -0
- package/vendor/directive-core/dist/session/spawn-occupancy.d.ts.map +1 -1
- package/vendor/directive-core/dist/session/spawn-occupancy.js +28 -0
- package/vendor/directive-core/dist/session/spawn-occupancy.js.map +1 -1
- package/vendor/directive-core/dist/staleness-tickler/run.d.ts.map +1 -1
- package/vendor/directive-core/dist/staleness-tickler/run.js.map +1 -1
- package/vendor/directive-core/dist/swarm/approach1-babysitter.d.ts +19 -6
- package/vendor/directive-core/dist/swarm/approach1-babysitter.d.ts.map +1 -1
- package/vendor/directive-core/dist/swarm/approach1-babysitter.js +69 -9
- package/vendor/directive-core/dist/swarm/approach1-babysitter.js.map +1 -1
- package/vendor/directive-core/dist/swarm/dest-place.d.ts +1 -1
- package/vendor/directive-core/dist/swarm/dest-place.d.ts.map +1 -1
- package/vendor/directive-core/dist/swarm/dest-place.js +1 -1
- package/vendor/directive-core/dist/swarm/dest-place.js.map +1 -1
- package/vendor/directive-core/dist/swarm/worktree-pm-install.d.ts +5 -0
- package/vendor/directive-core/dist/swarm/worktree-pm-install.d.ts.map +1 -1
- package/vendor/directive-core/dist/swarm/worktree-pm-install.js +16 -6
- package/vendor/directive-core/dist/swarm/worktree-pm-install.js.map +1 -1
- package/vendor/directive-core/dist/swarm/worktrees.d.ts.map +1 -1
- package/vendor/directive-core/dist/swarm/worktrees.js.map +1 -1
- package/vendor/directive-core/dist/text/redos-safe.d.ts.map +1 -1
- package/vendor/directive-core/dist/text/redos-safe.js +2 -1
- package/vendor/directive-core/dist/text/redos-safe.js.map +1 -1
- package/vendor/directive-core/dist/triage/evaluate/worktrees.d.ts.map +1 -1
- package/vendor/directive-core/dist/triage/evaluate/worktrees.js +6 -6
- package/vendor/directive-core/dist/triage/evaluate/worktrees.js.map +1 -1
- package/vendor/directive-core/dist/vbrief-validate/conformance.d.ts.map +1 -1
- package/vendor/directive-core/dist/vbrief-validate/conformance.js +5 -0
- package/vendor/directive-core/dist/vbrief-validate/conformance.js.map +1 -1
- package/vendor/directive-core/dist/verify-env/agent-hooks-live-probe.js +1 -1
- package/vendor/directive-core/dist/verify-env/agent-hooks-live-probe.js.map +1 -1
- package/vendor/directive-core/dist/xbrief/paths.d.ts.map +1 -1
- package/vendor/directive-core/dist/xbrief/paths.js +15 -12
- package/vendor/directive-core/dist/xbrief/paths.js.map +1 -1
- package/vendor/directive-core/dist/xbrief-migrate/constants.d.ts +7 -0
- package/vendor/directive-core/dist/xbrief-migrate/constants.d.ts.map +1 -1
- package/vendor/directive-core/dist/xbrief-migrate/constants.js +7 -0
- package/vendor/directive-core/dist/xbrief-migrate/constants.js.map +1 -1
- package/vendor/directive-core/dist/xbrief-migrate/detect.d.ts +9 -1
- package/vendor/directive-core/dist/xbrief-migrate/detect.d.ts.map +1 -1
- package/vendor/directive-core/dist/xbrief-migrate/detect.js +14 -7
- package/vendor/directive-core/dist/xbrief-migrate/detect.js.map +1 -1
- package/vendor/directive-core/dist/xbrief-migrate/migrate-project.d.ts.map +1 -1
- package/vendor/directive-core/dist/xbrief-migrate/migrate-project.js +118 -57
- package/vendor/directive-core/dist/xbrief-migrate/migrate-project.js.map +1 -1
- package/vendor/directive-core/dist/xbrief-migrate/transforms.d.ts.map +1 -1
- package/vendor/directive-core/dist/xbrief-migrate/transforms.js +8 -1
- package/vendor/directive-core/dist/xbrief-migrate/transforms.js.map +1 -1
package/dist/setup.js
CHANGED
|
@@ -10,10 +10,10 @@ import { dirname, join } from "node:path";
|
|
|
10
10
|
import { fileURLToPath } from "node:url";
|
|
11
11
|
import { ContainedWriteError, containedRemove, containedWrite, } from "../vendor/directive-core/dist/fs/contained-write.js";
|
|
12
12
|
import { buildOwnershipRecord, fingerprintContent, ownershipRecordsEqual, readEvidenceGenerationNumber, readOwnershipRecord, writeOwnershipRecord, } from "../vendor/directive-core/dist/install-health/index.js";
|
|
13
|
-
import { CURRENT_DATA_SCHEMA_VERSION, DATA_SCHEMA_MARKER_REL, } from "./migrate.js";
|
|
14
|
-
import { isConvertStrategyFrom, runStrategy, } from "./removal-steps/index.js";
|
|
15
|
-
import { ensureAgentsManagedSection, ensureGitHooks, ensureHostHooks, ensureOpenClawIntegrations, ensureSkillPointers, ensureSlashCommands, ensureTaskfileInclude, listSkillPointerPaths, listVerifiedManagedSlashCommandPaths, RUNTIME_PREFIX, } from "./setup-wiring.js";
|
|
16
13
|
import { assertInventoryCompleteness } from "./installer-output-inventory.js";
|
|
14
|
+
import { CURRENT_DATA_SCHEMA_VERSION, DATA_SCHEMA_MARKER_REL } from "./migrate.js";
|
|
15
|
+
import { isConvertStrategyFrom, runStrategy } from "./removal-steps/index.js";
|
|
16
|
+
import { ensureAgentsManagedSection, ensureGitHooks, ensureHostHooks, ensureOpenClawIntegrations, ensureSkillPointers, ensureSlashCommands, ensureTaskfileInclude, listSkillPointerPaths, listVerifiedManagedSlashCommandPaths, RUNTIME_PREFIX, } from "./setup-wiring.js";
|
|
17
17
|
const SEED_PLACEHOLDER_REL = "xbrief/.directive-seed-placeholder";
|
|
18
18
|
const GEN_REL = ".deft/GENERATION.json";
|
|
19
19
|
const WIRING_READY_DIR_REL = ".deft/directive";
|
|
@@ -174,11 +174,7 @@ function buildOwnershipArtifacts(projectRoot) {
|
|
|
174
174
|
});
|
|
175
175
|
}
|
|
176
176
|
}
|
|
177
|
-
for (const rel of [
|
|
178
|
-
".githooks/pre-commit",
|
|
179
|
-
".githooks/pre-push",
|
|
180
|
-
".githooks/_directive-run.sh",
|
|
181
|
-
]) {
|
|
177
|
+
for (const rel of [".githooks/pre-commit", ".githooks/pre-push", ".githooks/_directive-run.sh"]) {
|
|
182
178
|
const body = readText(join(projectRoot, rel));
|
|
183
179
|
if (body !== null) {
|
|
184
180
|
artifacts.push({
|
|
@@ -311,16 +307,18 @@ export function runSetup(options) {
|
|
|
311
307
|
conflicts.push(taskfile.conflictReason ?? "Taskfile.yml: include conflict");
|
|
312
308
|
}
|
|
313
309
|
// Seeds only on first-time install (AC8.4); repair/upgrade never create them.
|
|
314
|
-
// AC6.2:
|
|
315
|
-
// not
|
|
310
|
+
// AC6.2: leave data-schema current for empty/seeded install. Repair may write a
|
|
311
|
+
// missing marker (not a migration); upgrade still migrates when data is behind.
|
|
316
312
|
if (operation === "install" && conflicts.length === 0) {
|
|
317
313
|
const seed = createSeedPlaceholder(root);
|
|
318
314
|
if (seed !== null)
|
|
319
315
|
created.push(seed);
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
316
|
+
}
|
|
317
|
+
if ((operation === "install" || operation === "repair") &&
|
|
318
|
+
conflicts.length === 0 &&
|
|
319
|
+
!existsSync(join(root, DATA_SCHEMA_MARKER_REL))) {
|
|
320
|
+
writeContained(root, DATA_SCHEMA_MARKER_REL, `${JSON.stringify({ schemaVersion: CURRENT_DATA_SCHEMA_VERSION }, null, 2)}\n`);
|
|
321
|
+
created.push(DATA_SCHEMA_MARKER_REL);
|
|
324
322
|
}
|
|
325
323
|
// AC13.1: never materialize a content copy under .deft/core.
|
|
326
324
|
const desired = buildOwnershipRecord({
|
package/dist/uninstall.js
CHANGED
|
@@ -9,7 +9,7 @@ import { join } from "node:path";
|
|
|
9
9
|
import { containedRemove } from "../vendor/directive-core/dist/fs/contained-write.js";
|
|
10
10
|
import { inspectOwnershipRecord, MANAGED_SECTION_CLOSE, MANAGED_SECTION_OPEN_PREFIX, } from "../vendor/directive-core/dist/install-health/index.js";
|
|
11
11
|
import { pruneEmptyAncestors, removeSoleAuthorHusks } from "./removal-steps/steps.js";
|
|
12
|
-
import { HOOK_BIN_COMMAND, RUNTIME_PREFIX, SKILL_POINTER_INVENTORY
|
|
12
|
+
import { HOOK_BIN_COMMAND, RUNTIME_PREFIX, SKILL_POINTER_INVENTORY } from "./setup-wiring.js";
|
|
13
13
|
const SKILL_HOST_ROOTS = [
|
|
14
14
|
".agents/skills",
|
|
15
15
|
".claude/skills",
|
|
@@ -59,7 +59,7 @@ export function buildFixtures(root) {
|
|
|
59
59
|
/** Render a human-readable parity report (exported for unit tests). */
|
|
60
60
|
export function renderReport(result) {
|
|
61
61
|
if (result.ok) {
|
|
62
|
-
return `vbrief_preflight parity: CLEAN -- Python and TS agree on ${result.cases.length}
|
|
62
|
+
return `vbrief_preflight parity: CLEAN -- Python and TS agree on ${result.cases.length} fixtures.`;
|
|
63
63
|
}
|
|
64
64
|
const lines = ["vbrief_preflight parity: DIVERGENCE"];
|
|
65
65
|
for (const c of result.cases.filter((x) => !x.ok)) {
|
|
@@ -46,6 +46,28 @@ export function parseArgs(argv) {
|
|
|
46
46
|
else if (arg?.startsWith("--plan-id=")) {
|
|
47
47
|
parsed.planId = arg.slice("--plan-id=".length);
|
|
48
48
|
}
|
|
49
|
+
else if (arg === "--pr") {
|
|
50
|
+
const value = argv[i + 1];
|
|
51
|
+
if (value === undefined) {
|
|
52
|
+
return { ...parsed, error: "argument --pr: expected one argument" };
|
|
53
|
+
}
|
|
54
|
+
parsed.pr = value;
|
|
55
|
+
i += 1;
|
|
56
|
+
}
|
|
57
|
+
else if (arg?.startsWith("--pr=")) {
|
|
58
|
+
parsed.pr = arg.slice("--pr=".length);
|
|
59
|
+
}
|
|
60
|
+
else if (arg === "--repo") {
|
|
61
|
+
const value = argv[i + 1];
|
|
62
|
+
if (value === undefined) {
|
|
63
|
+
return { ...parsed, error: "argument --repo: expected one argument" };
|
|
64
|
+
}
|
|
65
|
+
parsed.repo = value;
|
|
66
|
+
i += 1;
|
|
67
|
+
}
|
|
68
|
+
else if (arg?.startsWith("--repo=")) {
|
|
69
|
+
parsed.repo = arg.slice("--repo=".length);
|
|
70
|
+
}
|
|
49
71
|
else if (arg === "--base-ref") {
|
|
50
72
|
return {
|
|
51
73
|
...parsed,
|
|
@@ -71,6 +93,8 @@ export function run(argv) {
|
|
|
71
93
|
staged: args.staged,
|
|
72
94
|
quiet: args.quiet,
|
|
73
95
|
planId: args.planId,
|
|
96
|
+
pr: args.pr,
|
|
97
|
+
repo: args.repo,
|
|
74
98
|
});
|
|
75
99
|
if (result.message.length > 0) {
|
|
76
100
|
if (result.stream === "stdout")
|
|
@@ -46,6 +46,28 @@ export function parseArgs(argv) {
|
|
|
46
46
|
else if (arg?.startsWith("--plan-id=")) {
|
|
47
47
|
parsed.planId = arg.slice("--plan-id=".length);
|
|
48
48
|
}
|
|
49
|
+
else if (arg === "--pr") {
|
|
50
|
+
const value = argv[i + 1];
|
|
51
|
+
if (value === undefined) {
|
|
52
|
+
return { ...parsed, error: "argument --pr: expected one argument" };
|
|
53
|
+
}
|
|
54
|
+
parsed.pr = value;
|
|
55
|
+
i += 1;
|
|
56
|
+
}
|
|
57
|
+
else if (arg?.startsWith("--pr=")) {
|
|
58
|
+
parsed.pr = arg.slice("--pr=".length);
|
|
59
|
+
}
|
|
60
|
+
else if (arg === "--repo") {
|
|
61
|
+
const value = argv[i + 1];
|
|
62
|
+
if (value === undefined) {
|
|
63
|
+
return { ...parsed, error: "argument --repo: expected one argument" };
|
|
64
|
+
}
|
|
65
|
+
parsed.repo = value;
|
|
66
|
+
i += 1;
|
|
67
|
+
}
|
|
68
|
+
else if (arg?.startsWith("--repo=")) {
|
|
69
|
+
parsed.repo = arg.slice("--repo=".length);
|
|
70
|
+
}
|
|
49
71
|
else if (arg === "--base-ref") {
|
|
50
72
|
return {
|
|
51
73
|
...parsed,
|
|
@@ -71,6 +93,8 @@ export function run(argv) {
|
|
|
71
93
|
staged: args.staged,
|
|
72
94
|
quiet: args.quiet,
|
|
73
95
|
planId: args.planId,
|
|
96
|
+
pr: args.pr,
|
|
97
|
+
repo: args.repo,
|
|
74
98
|
});
|
|
75
99
|
if (result.message.length > 0) {
|
|
76
100
|
if (result.stream === "stdout")
|
|
@@ -11,7 +11,13 @@ First ship is a merge-base snapshot of throw/reject/abort sites and new numeric
|
|
|
11
11
|
3. Numeric-const peel is a while-unwrap of `AsExpression` (any asserted type), `SatisfiesExpression`, unary `+`/`-`, `ParenthesizedExpression`, and angle-bracket `TypeAssertion` until `NumericLiteral`. Do not `forEachChild`-harvest `NumericLiteral` (`Number(1024)`, `{ max: 1024 }`). Do not treat a numeric literal anywhere in an if-condition as a hard constraint.
|
|
12
12
|
4. Same-file helper extract of a posted throw plus same-file const is in the snapshot. Cross-file composition is a recorded first-ship miss.
|
|
13
13
|
5. Leftover is skip/filter/return-error that add neither a new numeric-const nor a throw/reject/abort site. Skip plus a new numeric const is not leftover.
|
|
14
|
-
6. Durable authority is still the merge-base JSON under `.deft/intent-constraint/<plan-id>.json` with `humanApproval` (`isHumanApprovalStamp`). Author `plan["x-directive/intentConstraint"]` when `value` / `unit` / `rejectionScope` already exist, before the implementation PR that introduces the facts -- not at record-approved-scope. File-scope can be named at allocation. Throw values usually cannot. Authority read is `git show <merge-base>` only. Same-PR rewrite fails. Multiple merge-base mints require `--plan-id`, `DEFT_ACTIVE_SCOPE`,
|
|
14
|
+
6. Durable authority is still the merge-base JSON under `.deft/intent-constraint/<plan-id>.json` with `humanApproval` (`isHumanApprovalStamp`). Author `plan["x-directive/intentConstraint"]` when `value` / `unit` / `rejectionScope` already exist, before the implementation PR that introduces the facts -- not at record-approved-scope. File-scope can be named at allocation. Throw values usually cannot. Authority read is `git show <merge-base>` only. Same-PR rewrite fails. Multiple merge-base mints require `--plan-id`, `DEFT_ACTIVE_SCOPE`, dest unique running xBRIEF, or demand-site PR `deft-story: N` adoption (#5782). Each mint row covers at most one new numeric-const of that value and at most one new throw/reject/abort site. Do not invent a second snapshot or fill speculative value/unit/rejectionScope so a mint succeeds at park. Chat text is never the evaluate input.
|
|
15
|
+
|
|
16
|
+
### PR deft-story plan-id adoption (#5782)
|
|
17
|
+
|
|
18
|
+
On multi-running or multi-mint tips, when plan-id is unresolved, the gate may adopt the running brief `plan.id` owned by a sole distinct `deft-story: N` mark on the PR body (`GITHUB_PR_NUMBER` or `--pr`, plus `GITHUB_REPOSITORY` / `--repo`). Empty or non-digit PR env is no-PR-context (master push / local check keep dest-unique-running). REST null is config/exit 2. Sole means exactly one distinct issue number after dedupe (duplicate identical lines are sole). Unparseable mark values (including plan-id shaped strings) refuse. Explicit `--plan-id` and a valid `DEFT_ACTIVE_SCOPE` still win.
|
|
19
|
+
|
|
20
|
+
A `deft-story: N` mark asserts #4864 delivery bind (`metadata.productPullRequest` must equal this PR before leftover finalize). Satisfying that bind closes the whole story at cohort finalize (stamp path is mark-independent). Only put the mark on the PR that is the delivery for #N. Adoption is a multi-active tiebreak; it does not alter finalize-cohort bind semantics and is not an override of sole-running.
|
|
15
21
|
7. Collection UX (#5010 / #5574 Prefer-A): classify the condition, not the API name. Expected operational deny → returned-failure / filter (free). Invariant / corruption / impossible-if-healthy → fail-fast throw (or language-equivalent) + attended mint; rewrite solely to clear the gate is forbidden. Attended harness → detect the hard fact and ask the human in the parent chat; on yes the **human** lands the same merge-base record on a real TTY with `mintedVia: in-harness-ask` (attestation is not an agent-shell bypass). Commit that record on the delivery-branch merge base first, then rebase the implementation branch onto it — same-PR working-tree-only records are not authoritative. Unattended / C1 / operator-gone → operational may rewrite or park; invariant requiring a new hard fact must park pending a human mint — do not ask an empty room and do not treat leave-harness TTY `scope:record-intent-constraint` as the primary path. The legacy verb may remain for repair when a human is on a real TTY. Parent-agent auto-approve is out of scope. Agent/CI markers still refuse. Numeric-const and the four `FACT_KINDS` stay on the human decision / park path; a free rewrite introduces none of them. Language-equivalent fail-fast guidance does not imply new panic/assert extraction beyond production TS/JS.
|
|
16
22
|
8. Site ids are compact statement text, not source offsets. Inserting unrelated text above an existing site does not mint a new fact.
|
|
17
23
|
9. P2 (literal acceptance preservation) is not this first ship. The verb is not `semantic-*`.
|
package/docs/observable-scope.md
CHANGED
|
@@ -30,3 +30,9 @@ One remediation: restore the baseline markup structure, or ask in the parent cha
|
|
|
30
30
|
The verb is composed on `task check` (`FRAMEWORK_CHECK_GATES`, `CONSUMER_CHECK_GATES`, and required consumer enforcement). Missing, stale, invalid, or changed provider material fails; there is no generic fallback. Dependency delta versus master is two pure parser packages (`parse5` and `entities`). The JSX path trades a bundled pinned parser for one resolved from the consumer project, recorded per artifact and never compared against the mint. Truncated or incomplete HTML is refused (parse5 onParseError into anomalies). jsdom is not a dependency.
|
|
31
31
|
|
|
32
32
|
Three-state exit: `0` skip, warn-findings, or pass / `1` missing mint or unlisted delta / `2` invalid configuration.
|
|
33
|
+
|
|
34
|
+
### PR deft-story plan-id adoption (#5782)
|
|
35
|
+
|
|
36
|
+
Same demand-site adopter as `verify:intent-constraint`: on multi-running or multi-mint tips with unresolved plan-id, adopt the unique running `plan.id` for a sole distinct `deft-story: N` on the PR body. Explicit `--plan-id` and a valid `DEFT_ACTIVE_SCOPE` win. Empty/non-digit PR env is no-PR-context. When `DEFT_ACTIVE_SCOPE` is set but not a running xBRIEF **and** PR context is present, adoption is suppressed with a named refuse (pass `--plan-id` or clear the pin) — without PR context the tip fall-through is unchanged. REST null is config/exit 2. No YAML planId pre-export.
|
|
37
|
+
|
|
38
|
+
A `deft-story: N` mark asserts #4864 delivery bind and whole-story close at cohort finalize — only use it on the PR that is the delivery for #N. Adoption does not change finalize bind semantics.
|
package/package.json
CHANGED