Skill Steward DX_FAQ

June 15, 2026 Β· View on GitHub

How to work in this repo and install Skill Steward meta-skills elsewhere. Walk locations in order or jump by emoji.

🧭 Router

Ecology disposition fast path

For ordinary repo work, do not start with a maturity ladder or an evidence packet. Start with the repository ecology surface that owns the friction.

  1. Name the original user goal and acceptance check.
  2. Identify the repo's primary artifact and native validation gate.
  3. Name the bold outcome, proof, minimal controls, deleted or compressed surface, and hot-path residue.
  4. Choose one disposition: orient, compress, validate, tutor_pain, promote_tool, leave_native, or stop.
  5. Make the smallest safe change only when that disposition calls for it, including in another allowed repo when that owner is the right place.
  6. Rerun the same native gate or blocked Steward route.
  7. For product repos, name the product impact check: source-owned behavior/API/UI/visual/performance/release/workflow delta, or explicit product-native proof. Green Steward artifacts alone are stewardship support, not product acceleration.
  8. Leave the hot path: better map, shorter doc, native check, schema, test, FAQ row, action candidate, deleted stale surface, or current-ledger update.
  9. Create evidence only for a claim, blocker, real run, durable behavior change, or concrete decision. Repeated deterministic drift should become a check/tool.

ADR 0024 keeps loop-pain extraction in these existing surfaces: owner, native gate, disposition, rerun route, hot path, and non-claims.

North Star impact check

Use this when a durable change might move the repo's center, not for every patch. Mechanisms may evolve quickly; mission changes must leave an explicit trail.

north_star_impactMeaningRoute
noneLocal change; no charter or stewardship meaning.Use native gate.
appliesUses the current North Star value paths.Proceed through the boldest useful path.
clarifiesExplains an existing boundary without changing it.Update FAQ, skill wording, docs map, or check.
sub_starAdds a local sub-North Star for a product, repo, or subdomain.Declare parent/child boundary and what it cannot override.
amendsChanges what Skill Steward owns, refuses, or optimizes for.Stop and write an ADR plus a North Star diff.
conflictsPulls work toward a different center, such as repair-first or evidence-first.Stop, reject, or intentionally propose an ADR.

Before a structural update, answer: what user/product pain triggered this; which North Star value path it serves; whether it is a mechanism or a new center; whether it changes ownership or refusal boundaries; where the ADR is if it does; and what check prevents the mechanism becoming the mission if it does not.

CHARTER / scope        β†’ NORTH_STAR.mdx
REPO QUALITY CONTRACT β†’ repo-quality-contracts.mdx
WHY / ADRs             β†’ DESIGN_FAQ.mdx, decisions/
HOW contribute         β†’ this file, ../AGENTS.md, ../CONTRIBUTING.md
PLAN HYGIENE (any format) β†’ start_here/executable-plans.mdx
DOCS SITE              β†’ https://docs.page/arenukvern/skill_steward Β· ../docs.json + docs/
DOCS CI                β†’ pnpm run docs:check  (@docs.page/cli)
INSTALL for users      β†’ npx skills add arenukvern/skill_steward
UPDATE installed       β†’ this file (Updating installed skills)
ANALYZE steward_cli    β†’ pnpm run steward:analyze  (xsoulspace_lints; CI on PR)
VALIDATE before PR     β†’ pnpm run validate  (skill structure; CI also runs analyze/test/eval/list)
CITE / EVAL SKILLS     β†’ skill-source-citations, skill-eval-improve
EVAL CI (T1 behavior-critical)       β†’ pnpm run eval Β· evals/cases/*.yaml Β· ADR 0011
STEWARD CLI              β†’ ../packages/steward_cli/README.md  (ADR 0007)
HONEST CLAIM ROUTING    β†’ this file (Honest claim routing) Β· evidence/current-dogfood-status Β· evidence/first-adopter-golden-path (reference)
EVIDENCE ROUTING       β†’ core/evidence-artifacts.mdx Β· core/evidence-ladder.mdx Β· ADR 0023
RELEASE / CHANGELOG    β†’ this file (Release desk) Β· ADR 0009 Β· ADR 0010 Β· skill release-changelog-harness
PLUGINS (hooks)        β†’ ../plugins/README.md  (not via npx skills)

πŸ“¦ Distribution stack

Use the smallest distribution surface that matches the job.

Steward CLI jobs and stability tiers

The steward CLI is bounded by stewardship ownership, not by pretending the command surface is tiny. Use the jobs below as the reader model; individual commands stay callable for CI, maintainers, and backward-compatible scripts.

JobCommandsBoundary
Adoptadopt, install, update, uninstall, mapCreate or refresh repo-local Steward surfaces
Inspectdoctor, list, schema, actions, action, probeRead facts and declared contracts
Provevalidate, eval, evidence, benchmark, claim, blockedCheck exact claims without flattening proof levels
Repairaction-candidate, unknown-case, diagnoseReviewable routing toward future fixes; no unreviewed mutation
Compressecology, dogfood, protocol, bundle, brand-check, mcpRead-only routing, descriptor checks, or experimental harness support

Command stability tiers:

TierCommandsMeaning
Corevalidate, list, doctor, schema, actions, action, probeStable reader/checker surface for adopters and CI
Adoptionadopt, evidence, benchmark, claim, blockedClaim and adoption workflow surface; proof ceilings stay explicit
Experimentalecology, protocol, dogfood, diagnose, mcp, bundle, brand-check, action-candidate, unknown-case, observeUseful but still learning from dogfood and repeated cases
Maintainer/distributioneval, install, update, uninstall, mapStable for Skill Steward maintenance and pinned skill layers; not a product proof surface

Validation is split by failure owner:

CommandOwner question
steward validate skillsAre installable skill directories structurally valid?
steward validate registryDoes skills.sh.json match the skill directories?
steward validate repo-contractAre steward.yaml, plan hygiene, custom validators, and plugin manifests valid?
steward validate evidenceAre committed adoption-run records valid?
steward validate / steward validate allRun every lane for CI and release confidence.

Command surface evolution

Use Evolutionary simplicity for CLI growth. Split commands when ownership, proof, effects, cadence, or audience diverge. Compress commands when user intent, CI flow, or navigation converges and grouped child truths stay inspectable.

For steward validate, the correct shape is both: split skills, registry, repo-contract, and evidence by failure owner; keep bare steward validate as the compressed all route for CI and ordinary adopters.

Treat split/compress/promote/demote/delete/stay-native as movement rules for the CLI shape. Treat orient/compress/validate/tutor/promote/leave/stop as ecology dispositions for the next action.

NeedUseBoundary
Install/update portable skills for a human or agentnpx skills add/updatePublic skill distribution and local/global agent paths
Discover public skillsskills.shCatalog only; not a repo harness contract
Give a repo deterministic agent structuresteward install/update with skills.jsonRepo-local registration, copy/symlink layout, commit pinning; not a public package manager
Validate stewardship protocol artifactssteward protocol validateShape check only; status vocabulary lives in ADR 0021
Check an over-strong stewardship or adoption claimsteward claim checkNegative gate only: not_rejected means not rejected by the gate, not accepted
Validate a JSON artifact against a Steward schemasteward schema validatePortable shape check; not semantic proof beyond the schema
Keep dogfood JSON routes alignedsteward schema check-outputs, steward schema driftPart of the machine-readable contract path; not maturity proof by itself
Gather repo ecology inventorysteward ecology snapshot --jsonRead-only facts for a Repository Ecology Review; not an adoption or maturity verdict
Route repo ecology dispositionssteward ecology route --jsonComposes snapshot facts into orient/compress/validate/tutor/promote/leave/stop suggestions; not repair automation
Compose current dogfood routesteward dogfood status --jsonCurrent ledger plus ecology facts; not maturity, H2/H5, or steward status
Audit public dogfood proofdocs/evidence/current-dogfood-reproducibility.mdxPublic/auditable subset with durable anchors; not the current-status source
Start a minimal current-status ledgersteward evidence init --minimalCreates one claim/status ledger; not an evidence archive, benchmark, or readiness claim
Turn blocked JSON into next actionssteward blocked explainArtifact routing for blocked evidence; does not repair or prove
Validate Skill Steward skillspnpm run validate, steward validate skills, steward validate all, pnpm run evalSplit validation ownership and T1 behavior-critical routing cases
Adopt general repo stewardshiprepo-quality-system-lifecycle + repo-quality-contracts.mdxCharter, docs lattice, type-native gates, evidence, safety, maturity proof
Prove a repo-local harness contractsteward doctor/actions/probe/benchmarkRuntime dogfood evidence; separate from skill evals
Generate plugin/rule descriptorssteward bundleValidated wiring artifacts; host install remains explicit

🧱 Stewardship pillars

Harness work is one part of engineering stewardship. Use the narrowest pillar that matches the job.

PillarUseSkill / surface
Repo quality contractsType-native gates, evidence, action safety, maturity proofrepo-quality-system-lifecycle, repo-quality-contracts.mdx
GovernanceCharter, ADRs, FAQs, ethics, plan hygienerepository-governance-lifecycle
KnowledgeSource provenance and docs traceabilityskill-source-citations
Skill lifecycleAuthoring and auditing installable skillsskill-authoring-lifecycle
Quality gatesT1 behavior-critical static skill evals and bounded improvement loopsskill-eval-improve, pnpm run eval
Local harness adoptionsteward.yaml, typed actions, quick probes, benchmark smoke loopsmcp-harness-repo-maintainer
Cross-repo harness engineeringProducer/consumer generalization and sibling dogfoodharness-engineering-lifecycle
Release legibilityChangelog, versioning, release artifactsrelease-changelog-harness
Review and handoffMoE critique and agent handoffmixture-of-experts, multi-agent-handoff
Strategic alignmentVision vs implementation fit, usage evidence, future-fit analysisvision-alignment-foresight
PackagingAgent-specific plugin and skill distributionplugin-marketplace-setup, steward bundle

πŸ“¦ Repo setup (maintainers)

GitHub product name: Skill Steward (Arenukvern/skill_steward). Clone it anywhere. Docs use <skill-steward-checkout> for a maintainer-local clone; public consumer commands should use arenukvern/skill_steward, not a private workspace path.

cd <skill-steward-checkout>
pnpm install          # packageManager: pnpm@9 (see package.json)
pnpm run steward:analyze
pnpm run validate

Maintainer local override from a clone

# Project scope (example: <cli_tool_repo>)
cd <workspace>/<cli_tool_repo>
make agent-skills
# or install from the cloned local copy while iterating before release:
npx skills add <skill-steward-checkout> --skill mcp-harness-repo-maintainer -a cursor -y

Honest claim routing

Start with the reader question: what can I honestly claim right now? Use this route for a repo that does not yet know whether it needs a harness. It proves the stewardship baseline first and reserves typed actions for a separate decision.

Expected first result:

StepProof
steward adoptskills.json, steward.yaml, and AGENTS.md exist. stewardship.harness.enabled is false by default, with valid empty actions: {} and probes: {}. The generated AGENTS.md includes the north_star_impact habit so structural drift is explicit in adopter repos too.
steward mapThe repo archetype, task runner, docs pointers, and recommended skills are visible.
repo-quality-system-lifecycleAgents get the broad S0/S1 baseline workflow before action-contract work.

Use the harness flag only when the repo is ready to declare typed actions, probes, and benchmark evidence from the start. The smoke scenario is generated only when the repo has a durable git remote and resolved HEAD commit; otherwise add the scenario after those facts exist.

Canonical commands and interpretation: First adopter golden path. It is a reference fixture, not current adopter proof; current dogfood/adopter truth lives in Current dogfood status. A passing smoke benchmark proves only H2 contract discovery and safe first observation. A durability_blocked result is useful blocked evidence when it points to dirty or untracked contract inputs, but it is not H2 proof and not H4 fresh-agent workflow proof. Steward status vocabulary is intentionally centralized in ADR 0021; adoption and maturity vocabulary lives in NORTH_STAR.

Dogfood state routing

When working inside an adopter repo, classify the current claim before adding new doctrine:

StateSignalNext artifact
fresh_baselinesteward doctor --json shows valid config with no typed action proof yetRun steward actions list --json; add harness only if typed actions are needed.
harness_proofdoctor, actions list, action inspect, probe, and strict benchmark return result: "pass"Record compact evidence and avoid broader maturity claims.
protocol_artifact_onlysteward protocol validate returns valid: trueKeep status at stewardship_protocol; do not claim repo steward proof.
blocked_invalid_configdoctor or probe reports invalid configRepair steward.yaml schema/archetype or create an unknown-case artifact if the schema is missing a real repo shape.
durability_blockedStrict benchmark blocks on dirty or untracked contract inputsPipe the fresh benchmark JSON to steward blocked explain --stdin --json, track or commit the contract inputs, then rerun the same benchmark before claiming proof.
runtime_proof_blockedCLI/runtime setup cannot produce the target app, VM URI, semantic node, or redacted assertionPipe the fresh runtime block to steward blocked explain --stdin --json, then repair the launch path or capture an unknown-case artifact with commands, logs excerpt, redaction policy, and the exact rerun target.
machine_contract_driftschema check-outputs or schema drift fails on a JSON route used by the dogfood pathFix the schema/model/output mismatch before relying on that JSON for benchmark or claim evidence.

Ecology disposition rule: if the blocker is invalid config, dirty declared inputs, schema/output drift, blocked payload routing, stale navigation, or a broken native launch path, choose the boldest useful path before adding another artifact. Often that means updating the owner and rerunning the same gate; sometimes it means leaving the work native, converting deterministic drift to a check, deleting stale navigation, or stopping a tool path that has become the work. After two learning loops on the same friction, extract the lesson into ADR/FAQ/skill/check/current ledger or stop; do not create a third loop just to feel surer.

Repository ecology review

Use a Repository Ecology Review when the question is what should be compressed, changed, merged, removed, updated, created, retired, or moved into checks. This is broader than dogfood: it may inspect plans, specs, docs, skills, schemas, tools, evidence, and validation surfaces without running a benchmark.

Use repo-quality-system-lifecycle for judgment and disposition. Use steward ecology snapshot --json only to reduce tedious inventory gathering:

steward ecology snapshot --json
steward ecology route --json

The snapshot is read-only. It can report observed config, action/probe declarations, benchmark summaries, git dirty state, active plan candidates, and evidence pointers, but it does not execute actions, repair drift, or award maturity. The route command composes those facts into the North Star value paths: orient, compress, validate, tutor pain, promote tools, leave native, or stop.

Benchmark summaries in the snapshot are persisted history from .steward/benchmark-summaries/. The snapshot labels them as persisted_history and includes commit/freshness hints; may_be_stale: true means the summary is a routing clue, not current proof. Pipe fresh blocked JSON to steward blocked explain --stdin --json; use --output .steward/benchmark-summaries/<scenario>.json only when a fresh benchmark result should replace persisted history or feed a future snapshot.

Evidence artifact desk

Use evidence only when it protects a claim, preserves a blocked state, records a real run, or changes future behavior. Use Evidence ladder for the proof level and Evidence artifacts for artifact status, type, and retention.

QuestionRoute
Did we choose a durable policy or trade-off?Write or update an ADR.
Did a real run prove or block an exact claim or guide a concrete decision?Create or update an evidence artifact with status/type metadata.
Is this the current weakest true status?Update a current ledger and link historical evidence as provenance.
Is this a reusable prompt, fixture, or shape?Move it to a skill/reference/template; mark evidence template only while transitional.
Is this repeated deterministic drift?Move it to a check, schema, validator, test, CLI diagnostic, or harness probe.
Is this only an implemented checklist or stale plan?Extract useful truth, then remove it.

New durable evidence should include the lightweight envelope from ADR 0023: status, evidence_type, date, scope, claim_tested, proof_level, result, limitations, non_claims, next_disposition, and current_status_pointer.

New stewardship surface must pass the anti-bureaucracy gate: it should reduce future uncertainty, automate repeated judgment, prevent a demonstrated failure, enable an honest claim, or delete/compress an older surface. If it mainly adds another thing to maintain, route to compress, leave_native, or stop.

For a new or unique repo, start with the manual habit before adding machinery:

  1. Put the claim/evidence router in AGENTS.md.
  2. Name the native validation command or truthful blocked state.
  3. Create docs/evidence/current-status.mdx only when a current readiness, adoption, or blocker claim needs a durable pointer.
  4. Add steward.yaml, probes, or benchmarks only when typed actions and machine-readable proof reduce repeated work.

The CLI helper for step 3 is intentionally small:

steward evidence init --minimal

It creates one current ledger and no evidence archive.

Schema and output drift checks

Use schema checks when a JSON artifact or CLI payload becomes part of the dogfood path:

steward schema validate --schema self-model --file .steward/self-model.json --json
steward schema validate --schema mode-event --file .steward/events.jsonl --json
steward schema check-outputs --json
steward schema emit --schema self-model --source checked-in --json
steward schema drift --json

schema validate is a portable shape check for repo artifacts. schema check-outputs runs core read-only payload builders and validates their JSON against repo schemas. schema emit exposes checked-in or generated typed-model schemas for inspection. schema drift fails when generated contract model fields, required fields, or mutually declared enums drift from checked-in schemas. These checks keep the cold-start/dogfood route honest when it depends on machine-readable fields; passing them is not proof of maturity by itself.

Stewardship protocol validation

Use the protocol validator when a repo records steward mode events or self-model artifacts:

steward protocol validate --mode-events .steward/events.jsonl --self-model .steward/self-model.json --json

This proves protocol artifact shape only. It rejects unknown schema fields, invalid mode/status combinations, and forbidden private-material markers. It does not prove repo steward status, H4/H5 behavior, consciousness, final authority, or production agent behavior.

Stewardship claim negative gates

Use the claim gate before writing a status claim stronger than the available evidence:

steward claim check --claim proven_repo_steward --evidence docs/evidence/<file>.mdx --json

Claim checks are negative gates. They do not award a score, accept a claim, or prove steward status; they only report whether the claim was rejected by the gate. Machine-readable output uses result: "rejected" or result: "not_rejected"; not_rejected means not rejected by the negative gate, and accepted remains false.

SkillRole
repository-governance-lifecycleCharter, AGENTS map, ADRs, FAQs, plan hygiene
repo-quality-system-lifecycleGeneral stewardship baseline, repo archetype, native gates, evidence path
mcp-harness-repo-maintainerLocal harness contract adoption and first proof loop
harness-engineering-lifecycleCross-repo generalization after the local contract exists
skill-authoring-lifecycleAuthor and audit skills/
plugin-marketplace-setupSkill/plugin distribution across Cursor, Claude Code, Codex, Zed, and Open Plugin

Local harness naming

Do not collapse repo folder, public product name, CLI command, MCP prefix, and package prefix into one field. Product repos may use product branding; orchestration-heavy apps may use a local steward name.

RepoLocal harness nameFirst proof intent
ecslyecslyProduct-branded powerhouse; first proof is a bounded observe/preflight action.
mcp_flutterflutter-mcp-toolkitToolkit-branded contract surface; first proof is tool-prefix or expected-surface verification.
agentkit / IntentCallintentcallAdapter contract; first proof is dependency/version/plan-hygiene validation.
flutter_harnessflutter-harnessCLI-only visual harness; first proof is local agent doctor/preflight.
vitamins_quiz_botshippic-stewardLocal steward control plane; first proof is redacted inspect output before deeper citation judging.

Maintainer-local integration roadmap desk

This is maintainer-local context, not general consumer adoption guidance. When a roadmap crosses sibling repositories, record dependency order before claiming a repo is green. A local contract can pass while a downstream consumer is still blocked by an unpublished package or stale override.

Current status: Current dogfood status.

Historical dated note: Maintainer-local integration roadmap β€” 2026-06-08. Keep it for provenance only; do not use it as an active current-note link.

πŸ“¦ Install Skill Steward (consumers)

ActorCommand surfaceUse when
Agent skill consumernpx skills add arenukvern/skill_stewardInstalling portable stewardship skills.
Repo adopter or CI runnerinstall.sh, then steward <command>Installing the optional steward CLI for repo validation/adoption without Dart.
Maintainer changing this checkoutpnpm run validate or cd packages/steward_cli && dart run :steward validateProving source changes against the current checkout.
# All meta-skills
npx skills add arenukvern/skill_steward

# One skill
npx skills add arenukvern/skill_steward --skill repository-governance-lifecycle

# Cursor + Claude + Codex + Zed, project scope, non-interactive
npx skills add arenukvern/skill_steward -a cursor -a claude-code -a codex -a zed -y

# Global (every project)
npx skills add arenukvern/skill_steward -g

# List without installing (from repo path)
npx skills add . --list

Maintainer local override while iterating before publishing:

npx skills add <skill-steward-checkout> -a cursor -a claude-code -a codex -a zed -y
npx skills add <skill-steward-checkout> -g -y

Install steward CLI (Global Binary)

For zero-dependency installation of the steward CLI tool without requiring a clone or Dart SDK:

The CLI installer is a trust boundary: it downloads a released binary, verifies that binary against the release checksums.txt, installs schemas beside it, and can put steward in ~/.local/bin by default. It does not prove third-party skill sources are safe. By default it prints PATH setup instructions; pass --update-path only when you want it to edit your shell startup file.

curl -fsSL https://raw.githubusercontent.com/Arenukvern/skill_steward/main/install.sh | bash
# Pinned version, when a rollout needs an exact release:
curl -fsSL https://raw.githubusercontent.com/Arenukvern/skill_steward/vX.Y.Z/install.sh | bash -s -- --version vX.Y.Z

steward install/update intentionally manages repo-local skills.json registration and agent folder layout; trust-boundary behavior is documented in portable Steward invocation. Local path and file:// sources require --allow-local-source because they are maintainer-only development paths. Use npx skills for broad public skill install/update and skills.sh discovery.

Note: Hooks/plugins are not installed by npx skills on Cursorβ€”see ../plugins/README.md and ADR 0004.

πŸ”„ Updating installed skills

After Skill Steward merges to main, consumers refresh installed SKILL.md files with vercel-labs/skills (npx skills). While iterating locally, reinstall from <skill-steward-checkout> so project/global skills reflect the local checkout. Installed paths depend on agent (e.g. .agents/skills/, .cursor/skills/, ~/.codex/skills/); see AGENTS.md.

# List what is installed (project)
npx skills list

# List global installs
npx skills list -g

# Update all installed skills (project; non-interactive)
npx skills update -y

# Update global installs only
npx skills update -g -y

# Update project installs only
npx skills update -p -y

# Update one skill by directory name (from `skills list`)
npx skills update repository-governance-lifecycle -y
npx skills update skill-authoring-lifecycle -y

Re-add from GitHub (same as install; overwrites/refreshes from arenukvern/skill_steward):

# All meta-skills
npx skills add arenukvern/skill_steward -y

# One skill
npx skills add arenukvern/skill_steward --skill repository-governance-lifecycle -y

# Target agents, project scope
npx skills add arenukvern/skill_steward -a cursor -a claude-code -a codex -a zed -y

# Same from a maintainer local clone
npx skills add <skill-steward-checkout> -a cursor -a claude-code -a codex -a zed -y

# Global reinstall
npx skills add arenukvern/skill_steward -g -y

# Global reinstall from maintainer local clone
npx skills add <skill-steward-checkout> -g -y

When to use which

GoalCommand
Routine sync after upstream changesnpx skills update -y
Only global skillsnpx skills update -g -y
One skill you use heavilynpx skills update <skill-name> -y
Force full marketplace refreshnpx skills add arenukvern/skill_steward -y
Pin to a branch or local clonenpx skills add <path-or-url> --skill <name> -y
Refresh global skills from local clonenpx skills add <skill-steward-checkout> -g -y

Not covered by npx skills: Cursor hook plugins β€” ../plugins/README.md.

πŸ—οΈ Add a skill (maintainers)

# 1. Copy template
cp -r templates/skill skills/my-skill-name

# 2. Edit skills/my-skill-name/SKILL.md (name == directory name)

# 3. Validate from the repo root
pnpm run validate

# 4. Register
#    - skills.sh.json (current repo schema)
#    - README.md skill table
#    - optional DESIGN_FAQ Q&A if repo-level why changed

Authoring skill: use installed skill-authoring-lifecycle or read ../skills/skill-authoring-lifecycle/SKILL.md.

βœ… Validate desk

pnpm run validate                   # canonical repo-root validation
pnpm run validate:json              # machine-readable report
pnpm run eval                       # T1 behavior-critical rule-based skill cases (ADR 0011)
pnpm run list                       # skill names + descriptions

# Dart meta CLI (primary)
cd packages/steward_cli && dart pub get
dart analyze --fatal-infos
dart run :steward validate
dart run :steward list

Optional Cursor hook: ../plugins/steward-validate-on-save/README.md.

Fix all error: lines before merge. Warnings (long SKILL.md, missing skills.sh entry) should be addressed or justified in PR.

pnpm run eval is for T1 behavior-critical skill routing and docs-SSOT quality. Runtime dogfood and local harness benchmarks use steward benchmark --scenario <id> --json; do not put product runtime scenarios under skill evals. Benchmark execution is durability-gated: source.steward_contract and any file-backed scenario manifest must be clean and tracked before actions run.

Validation matrix

ChangeRequired validationNotes
Skill text/frontmatterpnpm run validate + pnpm run eval when T1 behavior-criticalUpdate evals/cases/*.yaml when routing changed.
Docs onlypnpm run docs:check + targeted link/readthroughKeep docs as pointers to behavior SSOT.
Steward CLI codepnpm run steward:analyze + relevant Dart tests + pnpm run validateUse GitNexus impact before symbol edits.
Local harness contractsteward doctor/actions/probe/benchmark in the target repoRecord durability_blocked honestly when inputs are dirty.
Release/distributionChangesets check + README/DX install/update commandsKeep npx skills and steward install/update boundaries explicit.

Cold-start proof loop for a local Steward contract:

cd packages/steward_cli
dart run :steward doctor --json
dart run :steward schema check-outputs --json
dart run :steward schema drift --json
dart run :steward actions list --json
dart run :steward action inspect steward.contract.status.quick --json
dart run :steward probe --profile quick --json
dart run :steward benchmark \
  --scenario skill_steward.contract-status-smoke \
  --output .steward/benchmark-summaries/skill-steward-contract-status-smoke.json \
  --strict \
  --json

Interpretation: schema check-outputs / schema drift keep the machine-readable route aligned when the dogfood path depends on JSON, doctor and actions list prove contract discovery, action inspect proves the exact executable boundary, probe proves the safe first observation, and benchmark proves durable execution only when it returns result: "pass". A durability_blocked benchmark is truthful blocked evidence when steward.yaml or the scenario manifest is modified/untracked; track or commit those inputs, then rerun the same command. The built-in contract-status-smoke scenario is first contract evidence, not a claim that full agent navigation, diagnosis, or repair is proven.

Harness/action-contract maturity is staged in North Star. Operational shorthand: H0/H1 means installed and declared, H2 means the cold-start loop above runs or truthfully blocks, H3-H5 require real feedback, fresh-agent workflow proof, and promoted reusable capability.

Daily skill validation (validate/eval) and runtime dogfood (benchmark) are intentionally separate. A repo can pass skill validation while still being only H0/H1 for local harness adoption.

πŸ“‹ Registry shelf

FileUpdate when
skills.sh.jsonNew skill or category change
README.md skill tableNew/removed skill
DESIGN_FAQ.mdxRepo-level why changes
DX_FAQ.mdxContributor how changes
docs/decisions/Architecturally significant decision

πŸ“œ ADR desk

Use repository-governance-lifecycle for ADRs and governance decisions. ADRs live in docs/decisions/; keep durable "why" there and update DESIGN_FAQ.mdx only when the answer becomes standing guidance.

🧭 North Star desk

Edit charter           β†’ NORTH_STAR.mdx
Wire agent map         β†’ ../AGENTS.md (~100 lines max)
docs.page sidebar      β†’ ../docs.json + docs_map.mdx
Close a plan           β†’ merge to ADR/FAQ/code/skill β†’ delete docs/exec-plans/active/* (if used)
Skill                  β†’ repository-governance-lifecycle

πŸš€ Release desk (Changesets)

Skill Steward uses Changesets for repo semver + CHANGELOG.md (skills are not individually versioned). Binary release train enabled β€” compiled AOT binaries (darwin-arm64, linux-x64) and install.sh bootstrapper attached to GitHub Releases by the single Release workflow after the Changesets Version PR merges. See ADR 0014 and binary-release-contract.md.

# PR: describe consumer impact (required when skills/docs/plugins/registry change)
pnpm changeset
# Pick patch | minor | major for "skill-steward", write one imperative sentence

# Maintainer: inspect pending release notes locally
pnpm changeset:status

# CI: Release workflow creates/updates "chore: version packages".
# After that PR merges, the same workflow tags vX.Y.Z, builds assets,
# creates/updates the GitHub Release, uploads checksums, and verifies latest.

# Local preflight checks without mutating git:
bash scripts/tag_release.sh --dry-run
pnpm run release:verify -- --version vX.Y.Z

# Compile and package binaries locally:
./scripts/build_release_artifacts.sh
CI on PR               β†’ .github/workflows/changesets.yml
Local gate             β†’ bash scripts/changeset-check.sh origin/main
Release owner          β†’ .github/workflows/release.yml
Release tag contract   β†’ scripts/tag_release.sh validates versions/changelog, then creates/pushes vX.Y.Z only
Release postflight     β†’ scripts/verify_release.sh verifies latest release, required assets, checksums, and install-doc pins
Skip (maintainer only) β†’ PR title contains [skip changeset]

When to add a changeset: skills/, plugins/, docs/, skills.sh.json, README.md, AGENTS.md, docs.json, CONTRIBUTING.md, scripts/, .github/workflows/.

When to skip: typos, comments-only, or internal refactors with zero consumer impact (use [skip changeset] in PR title).

πŸ—οΈ Harness workshop

Repo stewardship        β†’ skill repo-quality-system-lifecycle
Agent-first harness culture β†’ skill mcp-harness-repo-maintainer
OpenAI principles       β†’ ../skills/mcp-harness-repo-maintainer/references/harness-principles.md
CLI+MCP dual surface    β†’ ../skills/mcp-harness-repo-maintainer/references/cli-mcp-pattern.md (product MCP / platform libs)
Compose Skill Steward skills    β†’ ../skills/mcp-harness-repo-maintainer/references/steward-composition.md

Product example: <cli_tool_repo> doctor, make check-contracts β€” not shipped from Skill Steward.

steward mcp is experimental until it uses production MCP transport and typed action policy. Prefer CLI/validator paths for deterministic gates.

πŸ“š Doc styles desk

NeedSkill / doc
Repo quality contractrepo-quality-system-lifecycle
Harness / CLI / MCP culturemcp-harness-repo-maintainer
Release / changelog toolingrelease-changelog-harness
DESIGN + DX FAQrepository-governance-lifecycle
Repo lattice (router, SSOT)repository-governance-lifecycle
ADR formatrepository-governance-lifecycle
Spec complianceskill-authoring-lifecycle
Agent handoffsmulti-agent-handoff

Article: FAQ-driven development.

πŸ”Œ Plugins corner

plugins/{id}/plugin.yaml   β†’ schema: steward/plugin-manifest/v1; references skill ids in skills/
CURSOR HOOKS           β†’ ../.cursor/hooks.json (steward-validate-on-save; committed)
install hooks elsewhere  β†’ ../plugins/steward-validate-on-save/README.md
template                   β†’ ../templates/plugin/

pnpm run validate checks plugin manifests for schema, referenced skill ids, target surfaces, lifecycle actions, and shipped wiring artifact hashes. steward bundle compiles those manifests into deterministic descriptors under .steward/bundles/; it does not install skills, merge hooks, or mutate agent configuration. Skills remain separately installable with npx skills add ... --skill <id>.

πŸ€– Agent ops

Read first:  AGENTS.md, DESIGN_FAQ.mdx (why), DX_FAQ.mdx (how)
Rules:       ../.cursor/rules/faq_usage.mdc
After edit:  pnpm run validate + update correct FAQ layer
Schemas:     schemas/README.mdx

Do not duplicate SKILL.md bodies in ADRs or FAQsβ€”link to ../skills/{name}/.