mark393295827/graph-engineering
Use when a workflow has explicit data dependencies, independently executable branches, typed joins, or node-local recovery needs that justify a bounded static dependency graph.
npx skills add https://github.com/Mark393295827/third-brain-v7-skills --skill graph-engineering
<skill_contract>
<input>A dependency-heavy objective with candidate nodes, data schemas, owners, effects, verifiers, joins, budgets, and durable state paths.</input>
<output>A validated static DAG contract with typed edges, explicit joins, node-local recovery, and graph-level receipts.</output>
<done>Static invariants and terminal acceptance checks pass with fresh node, join, budget, permission, and state evidence.</done>
<non_goals>Temporal loop design, worker-team command, runtime-kernel implementation, dynamic graphs, or universal parallelism.</non_goals>
Use Graph Engineering for dependency width. Use loop-engineering for repeated
execution through time, agent-teams-command for process ownership and IPC,
and harness-engineering for scheduler, permission, lease, and observability
infrastructure. A graph node may contain a bounded Loop or Agent Team.
Provide: objective/non-goals, candidate nodes, real data dependencies, payload
schemas, owners and write territories, join semantics, node/terminal verifiers,
effects and permissions, artifact/state paths, budgets, stop conditions, and
recovery. Load references/graph-contract.md for the full schema and boundary;
start from references/diamond-graph-example.json.
<intake>
Run the admission gate before drawing a graph:
load. Require measurable payback or stronger independent evaluation.
cheaper to review serially.
bounded subgraph. Put repetition inside a loop node; reject graph cycles
and dynamic expansion.
</intake>
<unknowns_gate>
Return NEEDS_INPUT when objective, graph owner, dependency direction, payload
schema, writer, verifier, permission boundary, budget, join, or recovery is
missing and cannot be discovered safely. Probe candidate independence with a
small dry run. Do not invent an edge merely because two steps are adjacent.
</unknowns_gate>
<execute>
scripts/validate_graph_contract.py <contract.json> --strict.
verifier, timeout, attempt/tool caps, effect class, idempotency, and
compensation.
Schema-bearing edges must match both endpoint contracts.
worktrees; the integration owner controls shared schemas and final writes.
all, reduce,first-success, quorum, barrier-verifier, or human-gate; name the
exact input set and verifier.
READY nodes whose dependencies are verified. Persist everytransition and edge payload reference before releasing successors.
diagnosis. Preserve verified branches; never replay the whole graph merely
for convenience.
any external, shared, destructive, published, credentialed, or financial
effect. In strict contracts, name the external node ID in
approval_required, feed it a typed approval receipt directly from a
human-gate, and list each exact write target as allowed and not denied.
node success alone cannot certify graph success.
</execute>
<evaluate>
Check static integrity: known endpoints, compatible schemas, reachability,
acyclicity, single writers, complete joins, finite budgets, and compensated
effects. Check runtime integrity: deterministic readiness, duplicate-delivery
idempotency, checkpoint replay, permission denial without mutation,
smallest-unit recovery, terminal evidence, and cleanup. Use an independent
reviewer for consequential graph behavior.
</evaluate>
<retry_policy>
max_attempts comes from each node and never exceeds the graph cap. Retry only
after changing diagnosis, input, owner, tool, or strategy. Stop on a repeated
signature, incompatible edge, permission denial, invalid checkpoint, exhausted
review budget, or NO_PROGRESS. Whole-graph retry is forbidden in strict V7.1.
</retry_policy>
<state_contract>
Persist `{run_id, graph_id, status, attempt, budget, evidence, unknowns,
last_error, next_action}` plus contract/implementation hashes, node states,
edge payload locators, join decisions, writer leases, approvals, checkpoints,
compensations, terminal receipts, and cleanup. Use append-only events and an
atomic current checkpoint; chat history is not graph state.
</state_contract>
NEEDS_INPUT: a mandatory graph contract or authority field is unresolved.BLOCKED_DEPENDENCY: keep affected nodes WAITING; run only independentready nodes.
BLOCKED_PERMISSION: deny the effect, preserve state, and request approval.VERIFY_FAILED: reject the node/join artifact and recover the smallest unit.NO_PROGRESS: the same failure repeats after a changed attempt.max_attempts: 2 by default and always finite.
BUDGET_STOP: stop scheduling, checkpoint, compensate active effects, andreturn a partial graph receipt.
Return status, result (terminal decision and accepted artifacts), evidence
(validator, node, join, terminal, budget, approval, and cleanup receipts),
unknowns, and next_action (stop, retry node, compensate, approval, or
handoff).
report.md: strict validation fails the single-writerinvariant; isolate worker artifacts and let one reduce node own the report.
retry only the failed node within cap, and do not release the join until its
declared mode and verifier pass.
</skill_contract>
Take mark393295827/graph-engineering from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.