shapeup-sdlc 1.7.0 → 3.0.1
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/.claude/settings.local.example.json +5 -5
- package/.claude-plugin/plugin.json +1 -1
- package/AGENTS.md +17 -3
- package/README.md +124 -103
- package/SECURITY.md +37 -30
- package/bin/init.mjs +77 -47
- package/bin/lib/grant.mjs +145 -0
- package/commands/build.md +7 -6
- package/commands/ship.md +29 -16
- package/commands/wire.md +1 -1
- package/hooks/dispatch-receipt.mjs +195 -0
- package/hooks/gate-intake.mjs +3 -3
- package/hooks/gate-zerowork.mjs +25 -24
- package/hooks/hooks.json +9 -48
- package/hooks/lib/decision.mjs +19 -8
- package/hooks/safety-spine.mjs +3 -3
- package/hooks/sandbox-guard.mjs +84 -40
- package/{skills/tech-lead/scripts/compile-order.mjs → kernel/compile.mjs} +283 -41
- package/{skills/tech-lead/scripts/gate-answers.mjs → kernel/gate.mjs} +58 -14
- package/kernel/harness.mjs +134 -0
- package/{skills/tech-lead/scripts/fit-check.mjs → kernel/init/fit.mjs} +15 -12
- package/{skills/tech-lead/scripts/init-run.mjs → kernel/init/run.mjs} +152 -31
- package/{skills/tech-lead/scripts → kernel}/lib/argv.mjs +52 -31
- package/{skills/tech-lead/scripts/lib/contract-md.mjs → kernel/lib/contract.mjs} +251 -7
- package/kernel/lib/paths.mjs +491 -0
- package/kernel/probe/concurrency.mjs +510 -0
- package/{skills/tech-lead/scripts/aegis-digest.mjs → kernel/probe/digest.mjs} +9 -10
- package/kernel/probe/eval.mjs +77 -0
- package/kernel/probe/leg.mjs +125 -0
- package/{skills/tech-lead/scripts/resume-state.mjs → kernel/probe/resume.mjs} +204 -63
- package/{skills/tech-lead/scripts → kernel/probe}/stats.mjs +14 -9
- package/kernel/probe/t0.mjs +66 -0
- package/{skills/ba-pitch-analyzer/scripts/board-derive.mjs → kernel/reduce/board.mjs} +99 -23
- package/kernel/reduce/graph.mjs +437 -0
- package/{skills/tech-lead/scripts/hill-derive.mjs → kernel/reduce/hill.mjs} +28 -9
- package/kernel/reduce/ingest.mjs +633 -0
- package/{hooks/slop-cleaner.mjs → kernel/reduce/leftovers.mjs} +40 -57
- package/{skills/tech-lead/scripts/ship-report.mjs → kernel/reduce/ship.mjs} +61 -13
- package/{skills/tech-lead/scripts/run-snapshot.mjs → kernel/reduce/snapshot.mjs} +21 -15
- package/{skills/spec-evaluator/scripts/verdict-ledger.mjs → kernel/reduce/verdict.mjs} +13 -7
- package/kernel/report/export.mjs +321 -0
- package/kernel/report/facts.mjs +209 -0
- package/{skills/tech-lead/scripts/budget-check.mjs → kernel/verify/budget.mjs} +15 -12
- package/kernel/verify/dispatch.mjs +114 -0
- package/{skills/tech-lead/scripts/validate-envelope.mjs → kernel/verify/envelope.mjs} +20 -15
- package/{skills/tech-lead/scripts/lib → kernel/verify}/ratchet-tree.mjs +36 -14
- package/kernel/verify/skills.mjs +125 -0
- package/kernel/verify/spec.mjs +559 -0
- package/{skills/tech-lead/scripts/t0-verify.mjs → kernel/verify/t0.mjs} +134 -24
- package/{skills/tech-lead/scripts/trace-lint.mjs → kernel/verify/trace.mjs} +26 -11
- package/oracles/http-oracle.mjs +1 -1
- package/oracles/process-oracle.mjs +1 -1
- package/oracles/snapshot-oracle.mjs +1 -1
- package/oracles/test-oracle.mjs +1 -1
- package/package.json +11 -9
- package/skills/ba-pitch-analyzer/SKILL.md +5 -5
- package/skills/ba-pitch-analyzer/assets/templates/_index.tmpl.md +1 -1
- package/skills/ba-pitch-analyzer/assets/templates/api-feasibility.tmpl.md +12 -7
- package/skills/ba-pitch-analyzer/assets/templates/contracts/third-party-api.contract.tmpl.md +6 -3
- package/skills/ba-pitch-analyzer/assets/templates/cross-context/migration-plan.tmpl.md +5 -4
- package/skills/ba-pitch-analyzer/assets/templates/cross-context/team-handoff.tmpl.md +23 -13
- package/skills/ba-pitch-analyzer/assets/templates/scope-summary.tmpl.md +17 -12
- package/skills/ba-pitch-analyzer/assets/templates/synthesis.tmpl.md +17 -38
- package/skills/ba-pitch-analyzer/assets/templates/task.tmpl.md +3 -0
- package/skills/ba-pitch-analyzer/references/contract-patterns.md +8 -4
- package/skills/ba-pitch-analyzer/references/doc-schemas.md +2 -0
- package/skills/ba-pitch-analyzer/references/task-generation.md +2 -2
- package/skills/qa-edge-hunter/SKILL.md +7 -3
- package/skills/scope-architect/SKILL.md +40 -6
- package/skills/solution-architect/SKILL.md +19 -4
- package/skills/spec-evaluator/SKILL.md +12 -2
- package/skills/task-executor/SKILL.md +7 -6
- package/skills/tech-lead/SKILL.md +50 -38
- package/skills/tech-lead/references/gates.md +71 -20
- package/skills/tech-lead/references/protocol.md +832 -0
- package/skills/tech-lead/schemas/domain.schema.json +341 -66
- package/skills/tech-lead/schemas/work-order.schema.json +11 -2
- package/skills/tech-lead/schemas/work-result.schema.json +1 -1
- package/skills/tech-lead/workflows/shapeup-run.js +1327 -750
- package/hooks/anti-rationalization.mjs +0 -238
- package/hooks/compact-snapshot.mjs +0 -47
- package/hooks/gate-deadline.mjs +0 -147
- package/hooks/gate-l2.mjs +0 -161
- package/hooks/session-rehydrate.mjs +0 -108
- package/skills/ba-pitch-analyzer/scripts/spec-lint.mjs +0 -239
- package/skills/spec-evaluator/README.md +0 -93
- package/skills/tech-lead/README.md +0 -71
- package/skills/tech-lead/references/delegation.md +0 -261
- package/skills/tech-lead/references/hard-rules.md +0 -34
- package/skills/tech-lead/references/invocation.md +0 -45
- package/skills/tech-lead/references/ledger-schema.md +0 -213
- package/skills/tech-lead/references/round-protocol.md +0 -234
- package/skills/tech-lead/references/state-model.md +0 -66
- package/skills/tech-lead/scripts/ingest-result.mjs +0 -258
- package/skills/tech-lead/scripts/lib/is-main.mjs +0 -81
- package/skills/tech-lead/scripts/lib/paths.mjs +0 -280
- package/skills/tech-lead/scripts/run-workflow.mjs +0 -381
- package/skills/translator/README.md +0 -66
|
@@ -5,10 +5,9 @@
|
|
|
5
5
|
|
|
6
6
|
import { readFileSync, writeFileSync, existsSync, readdirSync, mkdirSync } from "node:fs";
|
|
7
7
|
import { resolve, join } from "node:path";
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import { readAllContracts, SCOPE_CONTRACT } from "./lib/contract-md.mjs";
|
|
8
|
+
import { runArgs } from "../lib/argv.mjs";
|
|
9
|
+
import { scopesDir, hillDir, verdictsDir, evaluationDir, discoveryLedger } from "../lib/paths.mjs";
|
|
10
|
+
import { readAllContracts, SCOPE_CONTRACT } from "../lib/contract.mjs";
|
|
12
11
|
|
|
13
12
|
/**
|
|
14
13
|
* Derive and write the hill phase for all scopes mechanically based on T0, T1, and ledger facts.
|
|
@@ -64,8 +63,21 @@ export function deriveHill(cwd, slug) {
|
|
|
64
63
|
if (!t0Facts[b.scope_id]) t0Facts[b.scope_id] = { hasGreen: false, seesawGreen: false };
|
|
65
64
|
if (b.overall === "green") {
|
|
66
65
|
t0Facts[b.scope_id].hasGreen = true;
|
|
67
|
-
//
|
|
68
|
-
|
|
66
|
+
// Read the REAL seesaw result off the verdict artifact (`t0.mjs`'s `writeArtifact()`
|
|
67
|
+
// already persists the full `{ran, pass, scopes_checked, failing}` object), rather than
|
|
68
|
+
// inferring it from a false `regression` flag. That inference was vacuously true on every
|
|
69
|
+
// green T0 whether or not a seesaw check ever ran: nothing in this codebase currently
|
|
70
|
+
// passes `--seesaw-registry` to `verify t0`, so `seesaw.ran` is always `false` today and
|
|
71
|
+
// `regression` is always `false` too — "not asked" was being read as "clean," letting a
|
|
72
|
+
// scope reach FINISHED on a regression check that had never executed.
|
|
73
|
+
//
|
|
74
|
+
// Betting Table decision (Phase 3.5 / S4): wiring the seesaw registry for real is a
|
|
75
|
+
// genuine feature with a real running cost (re-running every finished scope's fixtures
|
|
76
|
+
// on every later attempt) and is out of proportion to a certification-gap fix. Deferred,
|
|
77
|
+
// not silently dropped — a scope with no registry wired simply cannot reach FINISHED via
|
|
78
|
+
// this path today, which is the honest state of the system: this check was never really
|
|
79
|
+
// gating FINISHED before either.
|
|
80
|
+
if (b.seesaw?.ran && b.seesaw?.pass) {
|
|
69
81
|
t0Facts[b.scope_id].seesawGreen = true;
|
|
70
82
|
}
|
|
71
83
|
}
|
|
@@ -119,14 +131,21 @@ export function deriveHill(cwd, slug) {
|
|
|
119
131
|
}
|
|
120
132
|
|
|
121
133
|
export const ARGV_SPEC = {
|
|
122
|
-
usage: "
|
|
134
|
+
usage: "harness.mjs reduce hill --slug <slug> [--cwd <dir>]",
|
|
123
135
|
_: { arity: 0, max: 0, name: "(no positional operands)" },
|
|
124
136
|
slug: { type: "str", required: true },
|
|
125
137
|
cwd: { type: "path" },
|
|
126
138
|
};
|
|
127
139
|
|
|
128
|
-
|
|
129
|
-
|
|
140
|
+
/**
|
|
141
|
+
* Derive each scope's hill phase from its T0 and evaluation artifacts.
|
|
142
|
+
*
|
|
143
|
+
* @param {string[]} rawArgv - The subcommand's own arguments (harness.mjs strips the verb words).
|
|
144
|
+
* @returns {(Promise<void>|void)} Settles when the subcommand has written its output; most paths
|
|
145
|
+
* call `process.exit()` with the subcommand's documented code rather than returning.
|
|
146
|
+
*/
|
|
147
|
+
export async function cli(rawArgv) {
|
|
148
|
+
const args = runArgs(ARGV_SPEC, rawArgv);
|
|
130
149
|
const cwd = resolve(args.cwd || process.cwd());
|
|
131
150
|
const report = deriveHill(cwd, args.slug);
|
|
132
151
|
console.log(JSON.stringify(report, null, 2));
|