state-hub/scripts
tegwick 00c6e7a6ae CUST-WP-0074-T02: C-39/C-40/C-41 and task-block depends_on in C-20
consistency_check.py:
- C-20 now indexes each ```task block's depends_on (workplan ids and
  task ids) as workplan_dependencies rows with from_task_id set,
  description "<task> depends_on <target>". Targets may live in other
  repos: resolved by file mapping first, ADR-007 derived uuid second;
  unresolvable targets stay a non-fixable C-20 as before. Frontmatter
  edges are unchanged (keyed with from_task_id None).
- C-39 task-wait-unqualified (WARN, not fixable): wait task with neither
  task-block depends_on nor needs_human: true. Skipped in closed
  workplans.
- C-40 task-wait-blocker-satisfied (WARN, not fixable): every depends_on
  target terminal (tasks done/cancel, workplans finished/archived), or
  decision_id resolved in the hub. A target or decision the hub cannot
  resolve is skipped and withholds the warning; decision_id resolves via
  a uuid, the repo's state_hub_decision_id writeback, or the derived id.
- C-41 task-wait-qualifier-drift (WARN, fixable): needs_human,
  blocking_reason, decision_id file -> hub via PATCH /tasks/{id}, only
  for blocks that carry at least one of the keys so hub-set flags on
  silent blocks are left alone. The same fields ride along on the C-10
  status PATCH for wait tasks and on the C-06/C-11 task creates. When
  needs_human is set and the block has no intervention_note, the
  blocking_reason stands in (TaskCreate/Update require the note).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

Assistant: claude-code
Assistant-Model: sonnet
Assistant-Process: 237582@bnt-lap001
Assistant-Session: f2b3d9f1-8fb9-4b9c-bc2b-837ec5dfc826
2026-09-28 22:39:18 +02:00
..
project_rules STATE-WP-0093-T08: reader-aware mark-read and notice ack in the instruction templates; first standing notice live. 2026-09-22 00:46:00 +02:00
backfill_codex_token_events.py Fixed and improved token tracking 2026-05-23 13:59:05 +02:00
benchmark_summary_cache.py feat(summary): revision-gated cache with stale-while-revalidate (STATE-WP-0066) 2026-06-22 16:27:32 +02:00
bootstrap-env.sh Prepare State Hub retirement baseline 2026-08-09 16:19:53 +02:00
capture_legacy_meter_evidence.py fix(legacy-meter): capture evidence over 7 days, not an 8-hour band 2026-08-20 01:12:37 +02:00
capture_sbom_tools.py fix(api): normalize trailing slashes — no slash on param routes 2026-04-26 15:13:01 +02:00
check_doi.py fix(api): normalize trailing slashes — no slash on param routes 2026-04-26 15:13:01 +02:00
cleanup_stale_tasks.py STATE-WP-0070: identity headers, archive 0069, phase-2 workplan 2026-07-09 00:39:09 +02:00
codex-state-hub-mcp.sh Prepare State Hub retirement baseline 2026-08-09 16:19:53 +02:00
compare_consistency_sweep_parallel.py finish(STATE-WP-0064): cut over scheduler and split sweep errors from failures 2026-06-22 01:20:59 +02:00
complete_statehub_bootstrap.py Extend complete_statehub_bootstrap for five Forgejo-migrated repos 2026-07-08 15:14:48 +02:00
configure-codex.sh Prepare State Hub retirement baseline 2026-08-09 16:19:53 +02:00
consistency_check.py CUST-WP-0074-T02: C-39/C-40/C-41 and task-block depends_on in C-20 2026-09-28 22:39:18 +02:00
dev_hub_up.sh feat(dev-hub): custodian dev up and files-first local hub (CUST-WP-0054-T07) 2026-07-08 11:42:49 +02:00
ensure_gitignore_claude_rules.py Add gitignore-claude template and wire into registration flows 2026-07-08 15:06:18 +02:00
gitea_inventory.py feat(CUST-WP-0014): repo sync automation & Gitea inventory 2026-03-16 01:41:16 +01:00
ingest_capabilities.py feat(capability-requests): add cross-domain capability catalog and request routing 2026-03-19 21:07:50 +01:00
ingest_sbom.py fix(api): normalize trailing slashes — no slash on param routes 2026-04-26 15:13:01 +02:00
ingest_tpsc.py feat(tpsc): Third-Party Services Catalog (CUST-WP-0023) 2026-03-20 00:15:26 +01:00
install_hooks.sh chore: add local consistency sync cli 2026-07-02 00:15:16 +02:00
mcp_hub_profile.sh feat(dev-hub): custodian dev up and files-first local hub (CUST-WP-0054-T07) 2026-07-08 11:42:49 +02:00
mcp_registration.py Rename MCP server identifier from state-hub to dev-hub 2026-06-22 20:46:14 +02:00
migrate_mcp_config.py Rename MCP server identifier from state-hub to dev-hub 2026-06-22 20:46:14 +02:00
normalize_attached_repo_workplans.py Fix workplan frontmatter join and prefix inference (STATE-WP-0067) 2026-06-22 23:16:15 +02:00
patch_mcp_cwd.py Rename MCP server identifier from state-hub to dev-hub 2026-06-22 20:46:14 +02:00
project_claude_md.template feat(register): modular @-import CLAUDE.md structure (ops-bridge pattern) 2026-03-16 18:35:02 +01:00
promote_intake.py Promote intakes with flavor and copy residual origin. 2026-09-14 15:51:06 +02:00
propagate_credential_routing.py Add shared credential-routing template and propagation tooling 2026-06-18 22:48:43 +02:00
pull_image.py Add state-hub v0.1 — local-first state service for the Custodian 2026-02-24 17:47:49 +01:00
push-seal.md Load limiting safeguards 2026-05-06 04:04:53 +02:00
quality_assessment.py feat: DoX assessment recording and soft visibility (STATE-WP-0077) 2026-07-22 21:18:40 +02:00
quality_debt.py feat: DoX assessment recording and soft visibility (STATE-WP-0077) 2026-07-22 21:18:40 +02:00
recently_on_scope.py Implement RecentlyOnScope domain digest 2026-05-22 13:45:53 +02:00
register-mcp.sh Rename MCP server identifier from state-hub to dev-hub 2026-06-22 20:46:14 +02:00
register_from_classification.py feat: persist repository rename identity 2026-08-28 22:08:21 +02:00
register_project.sh Add gitignore-claude template and wire into registration flows 2026-07-08 15:06:18 +02:00
release_headroom_preflight.py Add a read-only headroom preflight before State Hub promotion. 2026-09-14 10:13:48 +02:00
repo_sync.py feat(consistency): T04 push seal — closed-loop writeback for automated commits 2026-04-21 01:43:40 +02:00
seed.py feat(api): CUST-WP-0018 — API hardening & code quality 2026-03-18 02:17:04 +01:00
seed_wp0012_suggestions.py Finish CUST-WP-0011 and implement STATE-WP-0061 suggestion backlog. 2026-07-06 10:52:49 +02:00
smoke_dashboard_load.sh Optimize dashboard overview loading 2026-06-06 00:42:00 +02:00
spine_migration_data.py feat(classification-spine): implement STATE-WP-0065 repo-anchored model 2026-06-22 13:52:13 +02:00
spine_migration_dry_run.py feat(classification-spine): implement STATE-WP-0065 repo-anchored model 2026-06-22 13:52:13 +02:00
sync_classification_allowed.py feat(deploy): ship the canon classification vocabulary with the release 2026-08-24 23:46:05 +02:00
task_token_hook.py Fixed and improved token tracking 2026-05-23 13:59:05 +02:00
token_reconcile.py Fixed and improved token tracking 2026-05-23 13:59:05 +02:00
update_agent_instruction_files.py Add gitignore-claude template and wire into registration flows 2026-07-08 15:06:18 +02:00
validate_repo_adr.py fix(project-rules): qualify ad-hoc record identifiers 2026-08-23 14:45:26 +02:00
verify_image_pin.py fix(deploy): pin main-470ece8, and check pins against real builds 2026-08-28 00:08:31 +02:00
verify_preflight_signing_runtime.py fix: require signature invalidation in live rotation acceptance 2026-09-05 18:30:49 +02:00