{
  "schema_version": "1.0",
  "project": "architectonic-skills",
  "updated": "2026-07-22",
  "roadmap_ref": "START_HERE.md",
  "items": [
    {
      "id": "skills-restore-discovery-handoff-001",
      "title": "skills restore discovery handoff 001",
      "status": "done",
      "priority": "P0",
      "owner_role": "tool-builder",
      "acceptance": [
        "A done ticket must restore discovery, review a source/skill, normalize a skill, remove a risk blocker, repair catalog parity, publish/verify an installable surface, or kill unsafe/generic material. Status-only updates are not done."
      ],
      "depends_on": [],
      "evidence": [
        "git-history:operations/board.json#skills-restore-discovery-handoff-001"
      ],
      "sources": [],
      "stop_line": "No publication, package release, external mutation, credential use, private-data ingestion, unsafe endorsement, or unlicensed copying.",
      "extensions": {
        "value_type": "discovery_pipeline_repair",
        "external_action_allowed": false,
        "next_ticket_on_success": null
      }
    },
    {
      "id": "skills-risk-review-mcp-tool-poisoning-001",
      "title": "skills risk review mcp tool poisoning 001",
      "status": "done",
      "priority": "P0",
      "owner_role": "risk-auditor",
      "acceptance": [
        "A done ticket must restore discovery, review a source/skill, normalize a skill, remove a risk blocker, repair catalog parity, publish/verify an installable surface, or kill unsafe/generic material. Status-only updates are not done."
      ],
      "depends_on": [],
      "evidence": [
        "git-history:operations/board.json#skills-risk-review-mcp-tool-poisoning-001"
      ],
      "sources": [],
      "stop_line": "No publication, package release, external mutation, credential use, private-data ingestion, unsafe endorsement, or unlicensed copying.",
      "extensions": {
        "value_type": "risk_blocker_removed",
        "external_action_allowed": false,
        "next_ticket_on_success": null
      }
    },
    {
      "id": "skills-catalog-refresh-after-risk-review-001",
      "title": "skills catalog refresh after risk review 001",
      "status": "done",
      "priority": "P0",
      "owner_role": "cataloger",
      "acceptance": [
        "A done ticket must restore discovery, review a source/skill, normalize a skill, remove a risk blocker, repair catalog parity, publish/verify an installable surface, or kill unsafe/generic material. Status-only updates are not done."
      ],
      "depends_on": [],
      "evidence": [
        "git-history:operations/board.json#skills-catalog-refresh-after-risk-review-001"
      ],
      "sources": [],
      "stop_line": "No publication, package release, external mutation, credential use, private-data ingestion, unsafe endorsement, or unlicensed copying.",
      "extensions": {
        "value_type": "catalog_parity_repair",
        "external_action_allowed": false,
        "next_ticket_on_success": null
      }
    },
    {
      "id": "skills-manual-discovery-fallback-001",
      "title": "skills manual discovery fallback 001",
      "status": "done",
      "priority": "P1",
      "owner_role": "radar",
      "acceptance": [
        "A done ticket must restore discovery, review a source/skill, normalize a skill, remove a risk blocker, repair catalog parity, publish/verify an installable surface, or kill unsafe/generic material. Status-only updates are not done."
      ],
      "depends_on": [],
      "evidence": [
        "git-history:operations/board.json#skills-manual-discovery-fallback-001"
      ],
      "sources": [],
      "stop_line": "No publication, package release, external mutation, credential use, private-data ingestion, unsafe endorsement, or unlicensed copying.",
      "extensions": {
        "value_type": "discovery_candidate_metadata",
        "external_action_allowed": false,
        "next_ticket_on_success": null
      }
    },
    {
      "id": "skills-source-review-batch-001",
      "title": "skills source review batch 001",
      "status": "done",
      "priority": "P1",
      "owner_role": "source-reviewer",
      "acceptance": [
        "A done ticket must restore discovery, review a source/skill, normalize a skill, remove a risk blocker, repair catalog parity, publish/verify an installable surface, or kill unsafe/generic material. Status-only updates are not done."
      ],
      "depends_on": [],
      "evidence": [
        "git-history:operations/board.json#skills-source-review-batch-001"
      ],
      "sources": [],
      "stop_line": "No publication, package release, external mutation, credential use, private-data ingestion, unsafe endorsement, or unlicensed copying.",
      "extensions": {
        "value_type": "source_review",
        "external_action_allowed": false,
        "next_ticket_on_success": null
      }
    },
    {
      "id": "skills-risk-review-openclaw-source-runtime-surfaces-001",
      "title": "skills risk review openclaw source runtime surfaces 001",
      "status": "done",
      "priority": "P0",
      "owner_role": "risk-auditor",
      "acceptance": [
        "A done ticket must restore discovery, review a source/skill, normalize a skill, remove a risk blocker, repair catalog parity, publish/verify an installable surface, or kill unsafe/generic material. Status-only updates are not done."
      ],
      "depends_on": [],
      "evidence": [
        "git-history:operations/board.json#skills-risk-review-openclaw-source-runtime-surfaces-001"
      ],
      "sources": [],
      "stop_line": "No publication, package release, external mutation, credential use, private-data ingestion, unsafe endorsement, or unlicensed copying.",
      "extensions": {
        "value_type": "risk_blocker_removed",
        "external_action_allowed": false,
        "next_ticket_on_success": null
      }
    },
    {
      "id": "skills-normalize-vercel-ai-sdk-profile-001",
      "title": "skills normalize vercel ai sdk profile 001",
      "status": "done",
      "priority": "P1",
      "owner_role": "normalizer",
      "acceptance": [
        "A done ticket must restore discovery, review a source/skill, normalize a skill, remove a risk blocker, repair catalog parity, publish/verify an installable surface, or kill unsafe/generic material. Status-only updates are not done."
      ],
      "depends_on": [],
      "evidence": [
        "git-history:operations/board.json#skills-normalize-vercel-ai-sdk-profile-001"
      ],
      "sources": [],
      "stop_line": "No publication, package release, external mutation, credential use, private-data ingestion, unsafe endorsement, or unlicensed copying.",
      "extensions": {
        "value_type": "normalized_skill_candidate",
        "external_action_allowed": false,
        "next_ticket_on_success": null
      }
    },
    {
      "id": "skills-catalog-refresh-after-normalization-001",
      "title": "skills catalog refresh after normalization 001",
      "status": "done",
      "priority": "P0",
      "owner_role": "cataloger",
      "acceptance": [
        "A done ticket must restore discovery, review a source/skill, normalize a skill, remove a risk blocker, repair catalog parity, publish/verify an installable surface, or kill unsafe/generic material. Status-only updates are not done."
      ],
      "depends_on": [],
      "evidence": [
        "git-history:operations/board.json#skills-catalog-refresh-after-normalization-001"
      ],
      "sources": [],
      "stop_line": "No publication, package release, external mutation, credential use, private-data ingestion, unsafe endorsement, or unlicensed copying.",
      "extensions": {
        "value_type": "catalog_parity_repair",
        "external_action_allowed": false,
        "next_ticket_on_success": null
      }
    },
    {
      "id": "skills-metadata-backfill-batch-001",
      "title": "skills metadata backfill batch 001",
      "status": "done",
      "priority": "P3",
      "owner_role": "critic",
      "acceptance": [
        "A done ticket must restore discovery, review a source/skill, normalize a skill, remove a risk blocker, repair catalog parity, publish/verify an installable surface, or kill unsafe/generic material. Status-only updates are not done."
      ],
      "depends_on": [],
      "evidence": [
        "git-history:operations/board.json#skills-metadata-backfill-batch-001"
      ],
      "sources": [],
      "stop_line": "No publication, package release, external mutation, credential use, private-data ingestion, unsafe endorsement, or unlicensed copying.",
      "extensions": {
        "value_type": "catalog_quality_improvement",
        "external_action_allowed": false,
        "next_ticket_on_success": null
      }
    },
    {
      "id": "skills-risk-review-browser-trace-001",
      "title": "skills risk review browser trace 001",
      "status": "done",
      "priority": "P0",
      "owner_role": "risk-auditor",
      "acceptance": [
        "A done ticket must restore discovery, review a source/skill, normalize a skill, remove a risk blocker, repair catalog parity, publish/verify an installable surface, or kill unsafe/generic material. Status-only updates are not done."
      ],
      "depends_on": [],
      "evidence": [
        "git-history:operations/board.json#skills-risk-review-browser-trace-001"
      ],
      "sources": [],
      "stop_line": "No publication, package release, external mutation, credential use, private-data ingestion, unsafe endorsement, or unlicensed copying.",
      "extensions": {
        "value_type": "risk_blocker_removed",
        "external_action_allowed": false,
        "next_ticket_on_success": null
      }
    },
    {
      "id": "skills-catalog-refresh-after-metadata-backfill-001",
      "title": "skills catalog refresh after metadata backfill 001",
      "status": "done",
      "priority": "P1",
      "owner_role": "cataloger",
      "acceptance": [
        "A done ticket must restore discovery, review a source/skill, normalize a skill, remove a risk blocker, repair catalog parity, publish/verify an installable surface, or kill unsafe/generic material. Status-only updates are not done."
      ],
      "depends_on": [],
      "evidence": [
        "git-history:operations/board.json#skills-catalog-refresh-after-metadata-backfill-001"
      ],
      "sources": [],
      "stop_line": "No publication, package release, external mutation, credential use, private-data ingestion, unsafe endorsement, or unlicensed copying.",
      "extensions": {
        "value_type": "catalog_parity_repair",
        "external_action_allowed": false,
        "next_ticket_on_success": null
      }
    },
    {
      "id": "skills-action-handoff-producer-verification-001",
      "title": "skills action handoff producer verification 001",
      "status": "blocked",
      "priority": "P2",
      "owner_role": "tool-builder",
      "acceptance": [
        "A done ticket must restore discovery, review a source/skill, normalize a skill, remove a risk blocker, repair catalog parity, publish/verify an installable surface, or kill unsafe/generic material. Status-only updates are not done."
      ],
      "depends_on": [],
      "evidence": [],
      "sources": [],
      "stop_line": "No publication, package release, external mutation, credential use, private-data ingestion, unsafe endorsement, or unlicensed copying.",
      "extensions": {
        "value_type": "ci_repair",
        "external_action_allowed": false,
        "next_ticket_on_success": null
      },
      "blocked_reason": "Blocked by the repository risk/review sequence; inspect the named sources and successor item before resuming."
    },
    {
      "id": "skills-metadata-backfill-batch-002",
      "title": "skills metadata backfill batch 002",
      "status": "done",
      "priority": "P3",
      "owner_role": "critic",
      "acceptance": [
        "A done ticket must restore discovery, review a source/skill, normalize a skill, remove a risk blocker, repair catalog parity, publish/verify an installable surface, or kill unsafe/generic material. Status-only updates are not done."
      ],
      "depends_on": [],
      "evidence": [
        "git-history:operations/board.json#skills-metadata-backfill-batch-002"
      ],
      "sources": [],
      "stop_line": "No publication, package release, external mutation, credential use, private-data ingestion, unsafe endorsement, or unlicensed copying.",
      "extensions": {
        "value_type": "catalog_quality_improvement",
        "external_action_allowed": false,
        "next_ticket_on_success": null
      }
    },
    {
      "id": "skills-risk-review-diagnosing-bugs-001",
      "title": "skills risk review diagnosing bugs 001",
      "status": "done",
      "priority": "P0",
      "owner_role": "risk-auditor",
      "acceptance": [
        "A done ticket must restore discovery, review a source/skill, normalize a skill, remove a risk blocker, repair catalog parity, publish/verify an installable surface, or kill unsafe/generic material. Status-only updates are not done."
      ],
      "depends_on": [],
      "evidence": [
        "git-history:operations/board.json#skills-risk-review-diagnosing-bugs-001"
      ],
      "sources": [],
      "stop_line": "No publication, package release, external mutation, credential use, private-data ingestion, unsafe endorsement, or unlicensed copying.",
      "extensions": {
        "value_type": "risk_blocker_removed",
        "external_action_allowed": false,
        "next_ticket_on_success": null
      }
    },
    {
      "id": "skills-catalog-refresh-after-metadata-backfill-002",
      "title": "skills catalog refresh after metadata backfill 002",
      "status": "done",
      "priority": "P1",
      "owner_role": "cataloger",
      "acceptance": [
        "A done ticket must restore discovery, review a source/skill, normalize a skill, remove a risk blocker, repair catalog parity, publish/verify an installable surface, or kill unsafe/generic material. Status-only updates are not done."
      ],
      "depends_on": [],
      "evidence": [
        "git-history:operations/board.json#skills-catalog-refresh-after-metadata-backfill-002"
      ],
      "sources": [],
      "stop_line": "No publication, package release, external mutation, credential use, private-data ingestion, unsafe endorsement, or unlicensed copying.",
      "extensions": {
        "value_type": "catalog_parity_repair",
        "external_action_allowed": false,
        "next_ticket_on_success": null
      }
    },
    {
      "id": "skills-metadata-backfill-batch-003",
      "title": "skills metadata backfill batch 003",
      "status": "done",
      "priority": "P3",
      "owner_role": "critic",
      "acceptance": [
        "A done ticket must restore discovery, review a source/skill, normalize a skill, remove a risk blocker, repair catalog parity, publish/verify an installable surface, or kill unsafe/generic material. Status-only updates are not done."
      ],
      "depends_on": [],
      "evidence": [
        "git-history:operations/board.json#skills-metadata-backfill-batch-003"
      ],
      "sources": [],
      "stop_line": "No publication, package release, external mutation, credential use, private-data ingestion, unsafe endorsement, or unlicensed copying.",
      "extensions": {
        "value_type": "catalog_quality_improvement",
        "external_action_allowed": false,
        "next_ticket_on_success": null
      }
    },
    {
      "id": "skills-risk-review-email-header-and-golang-malware-analysis-001",
      "title": "skills risk review email header and golang malware analysis 001",
      "status": "done",
      "priority": "P0",
      "owner_role": "risk-auditor",
      "acceptance": [
        "A done ticket must restore discovery, review a source/skill, normalize a skill, remove a risk blocker, repair catalog parity, publish/verify an installable surface, or kill unsafe/generic material. Status-only updates are not done."
      ],
      "depends_on": [],
      "evidence": [
        "git-history:operations/board.json#skills-risk-review-email-header-and-golang-malware-analysis-001"
      ],
      "sources": [],
      "stop_line": "No publication, package release, external mutation, credential use, private-data ingestion, unsafe endorsement, or unlicensed copying.",
      "extensions": {
        "value_type": "risk_blocker_removed",
        "external_action_allowed": false,
        "next_ticket_on_success": null
      }
    },
    {
      "id": "skills-catalog-refresh-after-metadata-backfill-003",
      "title": "skills catalog refresh after metadata backfill 003",
      "status": "done",
      "priority": "P1",
      "owner_role": "cataloger",
      "acceptance": [
        "A done ticket must restore discovery, review a source/skill, normalize a skill, remove a risk blocker, repair catalog parity, publish/verify an installable surface, or kill unsafe/generic material. Status-only updates are not done."
      ],
      "depends_on": [],
      "evidence": [
        "git-history:operations/board.json#skills-catalog-refresh-after-metadata-backfill-003"
      ],
      "sources": [],
      "stop_line": "No publication, package release, external mutation, credential use, private-data ingestion, unsafe endorsement, or unlicensed copying.",
      "extensions": {
        "value_type": "catalog_parity_repair",
        "external_action_allowed": false,
        "next_ticket_on_success": null
      }
    },
    {
      "id": "skills-metadata-backfill-batch-004",
      "title": "skills metadata backfill batch 004",
      "status": "blocked",
      "priority": "P3",
      "owner_role": "critic",
      "acceptance": [
        "A done ticket must restore discovery, review a source/skill, normalize a skill, remove a risk blocker, repair catalog parity, publish/verify an installable surface, or kill unsafe/generic material. Status-only updates are not done."
      ],
      "depends_on": [],
      "evidence": [],
      "sources": [],
      "stop_line": "No publication, package release, external mutation, credential use, private-data ingestion, unsafe endorsement, or unlicensed copying.",
      "extensions": {
        "value_type": "catalog_quality_improvement",
        "external_action_allowed": false,
        "next_ticket_on_success": null
      },
      "blocked_reason": "Blocked by the repository risk/review sequence; inspect the named sources and successor item before resuming."
    },
    {
      "id": "skills-risk-review-ct-logs-attack-library-malware-pipeline-001",
      "title": "skills risk review ct logs attack library malware pipeline 001",
      "status": "done",
      "priority": "P0",
      "owner_role": "risk-auditor",
      "acceptance": [
        "A done ticket must restore discovery, review a source/skill, normalize a skill, remove a risk blocker, repair catalog parity, publish/verify an installable surface, or kill unsafe/generic material. Status-only updates are not done."
      ],
      "depends_on": [],
      "evidence": [
        "git-history:operations/board.json#skills-risk-review-ct-logs-attack-library-malware-pipeline-001"
      ],
      "sources": [],
      "stop_line": "No publication, package release, external mutation, credential use, private-data ingestion, unsafe endorsement, or unlicensed copying.",
      "extensions": {
        "value_type": "risk_blocker_removed",
        "external_action_allowed": false,
        "next_ticket_on_success": null
      }
    },
    {
      "id": "skills-catalog-refresh-after-metadata-backfill-004",
      "title": "skills catalog refresh after metadata backfill 004",
      "status": "done",
      "priority": "P1",
      "owner_role": "cataloger",
      "acceptance": [
        "A done ticket must restore discovery, review a source/skill, normalize a skill, remove a risk blocker, repair catalog parity, publish/verify an installable surface, or kill unsafe/generic material. Status-only updates are not done."
      ],
      "depends_on": [],
      "evidence": [
        "git-history:operations/board.json#skills-catalog-refresh-after-metadata-backfill-004"
      ],
      "sources": [],
      "stop_line": "No publication, package release, external mutation, credential use, private-data ingestion, unsafe endorsement, or unlicensed copying.",
      "extensions": {
        "value_type": "catalog_parity_repair",
        "external_action_allowed": false,
        "next_ticket_on_success": null
      }
    },
    {
      "id": "skills-metadata-backfill-batch-005",
      "title": "skills metadata backfill batch 005",
      "status": "blocked",
      "priority": "P3",
      "owner_role": "critic",
      "acceptance": [
        "A done ticket must restore discovery, review a source/skill, normalize a skill, remove a risk blocker, repair catalog parity, publish/verify an installable surface, or kill unsafe/generic material. Status-only updates are not done."
      ],
      "depends_on": [],
      "evidence": [],
      "sources": [],
      "stop_line": "No publication, package release, external mutation, credential use, private-data ingestion, unsafe endorsement, or unlicensed copying.",
      "extensions": {
        "value_type": "catalog_quality_improvement",
        "external_action_allowed": false,
        "next_ticket_on_success": null
      },
      "blocked_reason": "Blocked by the repository risk/review sequence; inspect the named sources and successor item before resuming."
    },
    {
      "id": "skills-risk-review-cloud-siem-sentinel-001",
      "title": "skills risk review cloud siem sentinel 001",
      "status": "done",
      "priority": "P0",
      "owner_role": "risk-auditor",
      "acceptance": [
        "A done ticket must restore discovery, review a source/skill, normalize a skill, remove a risk blocker, repair catalog parity, publish/verify an installable surface, or kill unsafe/generic material. Status-only updates are not done."
      ],
      "depends_on": [],
      "evidence": [
        "git-history:operations/board.json#skills-risk-review-cloud-siem-sentinel-001"
      ],
      "sources": [],
      "stop_line": "No publication, package release, external mutation, credential use, private-data ingestion, unsafe endorsement, or unlicensed copying.",
      "extensions": {
        "value_type": "risk_blocker_removed",
        "external_action_allowed": false,
        "next_ticket_on_success": null
      }
    },
    {
      "id": "skills-catalog-refresh-after-metadata-backfill-005",
      "title": "skills catalog refresh after metadata backfill 005",
      "status": "done",
      "priority": "P1",
      "owner_role": "cataloger",
      "acceptance": [
        "A done ticket must restore discovery, review a source/skill, normalize a skill, remove a risk blocker, repair catalog parity, publish/verify an installable surface, or kill unsafe/generic material. Status-only updates are not done."
      ],
      "depends_on": [],
      "evidence": [
        "git-history:operations/board.json#skills-catalog-refresh-after-metadata-backfill-005"
      ],
      "sources": [],
      "stop_line": "No publication, package release, external mutation, credential use, private-data ingestion, unsafe endorsement, or unlicensed copying.",
      "extensions": {
        "value_type": "catalog_parity_repair",
        "external_action_allowed": false,
        "next_ticket_on_success": null
      }
    },
    {
      "id": "skills-metadata-backfill-batch-006",
      "title": "skills metadata backfill batch 006",
      "status": "blocked",
      "priority": "P3",
      "owner_role": "critic",
      "acceptance": [
        "A done ticket must restore discovery, review a source/skill, normalize a skill, remove a risk blocker, repair catalog parity, publish/verify an installable surface, or kill unsafe/generic material. Status-only updates are not done."
      ],
      "depends_on": [],
      "evidence": [],
      "sources": [],
      "stop_line": "No publication, package release, external mutation, credential use, private-data ingestion, unsafe endorsement, or unlicensed copying.",
      "extensions": {
        "value_type": "catalog_quality_improvement",
        "external_action_allowed": false,
        "next_ticket_on_success": null
      },
      "blocked_reason": "Blocked by the repository risk/review sequence; inspect the named sources and successor item before resuming."
    },
    {
      "id": "skills-risk-review-ioc-defanging-sharing-pipeline-001",
      "title": "skills risk review ioc defanging sharing pipeline 001",
      "status": "done",
      "priority": "P0",
      "owner_role": "risk-auditor",
      "acceptance": [
        "A done ticket must restore discovery, review a source/skill, normalize a skill, remove a risk blocker, repair catalog parity, publish/verify an installable surface, or kill unsafe/generic material. Status-only updates are not done."
      ],
      "depends_on": [],
      "evidence": [
        "git-history:operations/board.json#skills-risk-review-ioc-defanging-sharing-pipeline-001"
      ],
      "sources": [],
      "stop_line": "No publication, package release, external mutation, credential use, private-data ingestion, unsafe endorsement, or unlicensed copying.",
      "extensions": {
        "value_type": "risk_blocker_removed",
        "external_action_allowed": false,
        "next_ticket_on_success": null
      }
    },
    {
      "id": "skills-catalog-refresh-after-metadata-backfill-006",
      "title": "skills catalog refresh after metadata backfill 006",
      "status": "done",
      "priority": "P1",
      "owner_role": "cataloger",
      "acceptance": [
        "A done ticket must restore discovery, review a source/skill, normalize a skill, remove a risk blocker, repair catalog parity, publish/verify an installable surface, or kill unsafe/generic material. Status-only updates are not done."
      ],
      "depends_on": [],
      "evidence": [
        "git-history:operations/board.json#skills-catalog-refresh-after-metadata-backfill-006"
      ],
      "sources": [],
      "stop_line": "No publication, package release, external mutation, credential use, private-data ingestion, unsafe endorsement, or unlicensed copying.",
      "extensions": {
        "value_type": "catalog_parity_repair",
        "external_action_allowed": false,
        "next_ticket_on_success": null
      }
    },
    {
      "id": "skills-metadata-backfill-batch-007",
      "title": "skills metadata backfill batch 007",
      "status": "blocked",
      "priority": "P3",
      "owner_role": "critic",
      "acceptance": [
        "A done ticket must restore discovery, review a source/skill, normalize a skill, remove a risk blocker, repair catalog parity, publish/verify an installable surface, or kill unsafe/generic material. Status-only updates are not done."
      ],
      "depends_on": [],
      "evidence": [],
      "sources": [],
      "stop_line": "No publication, package release, external mutation, credential use, private-data ingestion, unsafe endorsement, or unlicensed copying.",
      "extensions": {
        "value_type": "catalog_quality_improvement",
        "external_action_allowed": false,
        "next_ticket_on_success": null
      },
      "blocked_reason": "Blocked by the repository risk/review sequence; inspect the named sources and successor item before resuming."
    },
    {
      "id": "skills-risk-review-identity-federation-saml-azure-ad-001",
      "title": "skills risk review identity federation saml azure ad 001",
      "status": "done",
      "priority": "P0",
      "owner_role": "risk-auditor",
      "acceptance": [
        "A done ticket must restore discovery, review a source/skill, normalize a skill, remove a risk blocker, repair catalog parity, publish/verify an installable surface, or kill unsafe/generic material. Status-only updates are not done."
      ],
      "depends_on": [],
      "evidence": [
        "git-history:operations/board.json#skills-risk-review-identity-federation-saml-azure-ad-001"
      ],
      "sources": [],
      "stop_line": "No publication, package release, external mutation, credential use, private-data ingestion, unsafe endorsement, or unlicensed copying.",
      "extensions": {
        "value_type": "risk_blocker_removed",
        "external_action_allowed": false,
        "next_ticket_on_success": null
      }
    },
    {
      "id": "skills-catalog-refresh-after-metadata-backfill-007",
      "title": "skills catalog refresh after metadata backfill 007",
      "status": "done",
      "priority": "P1",
      "owner_role": "cataloger",
      "acceptance": [
        "A done ticket must restore discovery, review a source/skill, normalize a skill, remove a risk blocker, repair catalog parity, publish/verify an installable surface, or kill unsafe/generic material. Status-only updates are not done."
      ],
      "depends_on": [],
      "evidence": [
        "git-history:operations/board.json#skills-catalog-refresh-after-metadata-backfill-007"
      ],
      "sources": [],
      "stop_line": "No publication, package release, external mutation, credential use, private-data ingestion, unsafe endorsement, or unlicensed copying.",
      "extensions": {
        "value_type": "catalog_parity_repair",
        "external_action_allowed": false,
        "next_ticket_on_success": null
      }
    },
    {
      "id": "skills-metadata-backfill-batch-008",
      "title": "skills metadata backfill batch 008",
      "status": "blocked",
      "priority": "P3",
      "owner_role": "critic",
      "acceptance": [
        "A done ticket must restore discovery, review a source/skill, normalize a skill, remove a risk blocker, repair catalog parity, publish/verify an installable surface, or kill unsafe/generic material. Status-only updates are not done."
      ],
      "depends_on": [],
      "evidence": [],
      "sources": [],
      "stop_line": "No publication, package release, external mutation, credential use, private-data ingestion, unsafe endorsement, or unlicensed copying.",
      "extensions": {
        "value_type": "risk_gate_created",
        "external_action_allowed": false,
        "next_ticket_on_success": null
      },
      "blocked_reason": "Blocked by the repository risk/review sequence; inspect the named sources and successor item before resuming."
    },
    {
      "id": "skills-risk-review-ir-dashboard-timesketch-001",
      "title": "skills risk review ir dashboard timesketch 001",
      "status": "done",
      "priority": "P0",
      "owner_role": "risk-auditor",
      "acceptance": [
        "A done ticket must restore discovery, review a source/skill, normalize a skill, remove a risk blocker, repair catalog parity, publish/verify an installable surface, or kill unsafe/generic material. Status-only updates are not done."
      ],
      "depends_on": [],
      "evidence": [
        "git-history:operations/board.json#skills-risk-review-ir-dashboard-timesketch-001"
      ],
      "sources": [],
      "stop_line": "No publication, package release, external mutation, credential use, private-data ingestion, unsafe endorsement, or unlicensed copying.",
      "extensions": {
        "value_type": "risk_blocker_removed",
        "external_action_allowed": false,
        "next_ticket_on_success": null
      }
    },
    {
      "id": "skills-catalog-refresh-after-metadata-backfill-008",
      "title": "skills catalog refresh after metadata backfill 008",
      "status": "done",
      "priority": "P1",
      "owner_role": "cataloger",
      "acceptance": [
        "A done ticket must restore discovery, review a source/skill, normalize a skill, remove a risk blocker, repair catalog parity, publish/verify an installable surface, or kill unsafe/generic material. Status-only updates are not done."
      ],
      "depends_on": [],
      "evidence": [
        "git-history:operations/board.json#skills-catalog-refresh-after-metadata-backfill-008"
      ],
      "sources": [],
      "stop_line": "No publication, package release, external mutation, credential use, private-data ingestion, unsafe endorsement, or unlicensed copying.",
      "extensions": {
        "value_type": "catalog_parity_repair",
        "external_action_allowed": false,
        "next_ticket_on_success": null
      }
    },
    {
      "id": "skills-metadata-backfill-batch-009",
      "title": "skills metadata backfill batch 009",
      "status": "blocked",
      "priority": "P3",
      "owner_role": "critic",
      "acceptance": [
        "A done ticket must restore discovery, review a source/skill, normalize a skill, remove a risk blocker, repair catalog parity, publish/verify an installable surface, or kill unsafe/generic material. Status-only updates are not done."
      ],
      "depends_on": [],
      "evidence": [],
      "sources": [],
      "stop_line": "No publication, package release, external mutation, credential use, private-data ingestion, unsafe endorsement, or unlicensed copying.",
      "extensions": {
        "value_type": "risk_gate_created",
        "external_action_allowed": false,
        "next_ticket_on_success": null
      },
      "blocked_reason": "Blocked by the repository risk/review sequence; inspect the named sources and successor item before resuming."
    },
    {
      "id": "skills-risk-review-malware-incident-communication-template-001",
      "title": "skills risk review malware incident communication template 001",
      "status": "done",
      "priority": "P0",
      "owner_role": "risk-auditor",
      "acceptance": [
        "A done ticket must restore discovery, review a source/skill, normalize a skill, remove a risk blocker, repair catalog parity, publish/verify an installable surface, or kill unsafe/generic material. Status-only updates are not done."
      ],
      "depends_on": [],
      "evidence": [
        "git-history:operations/board.json#skills-risk-review-malware-incident-communication-template-001"
      ],
      "sources": [],
      "stop_line": "No publication, package release, external mutation, credential use, private-data ingestion, unsafe endorsement, or unlicensed copying.",
      "extensions": {
        "value_type": "risk_blocker_removed",
        "external_action_allowed": false,
        "next_ticket_on_success": "skills-catalog-refresh-after-metadata-backfill-009"
      }
    },
    {
      "id": "skills-catalog-refresh-after-metadata-backfill-009",
      "title": "skills catalog refresh after metadata backfill 009",
      "status": "done",
      "priority": "P1",
      "owner_role": "cataloger",
      "acceptance": [
        "A done ticket must restore discovery, review a source/skill, normalize a skill, remove a risk blocker, repair catalog parity, publish/verify an installable surface, or kill unsafe/generic material. Status-only updates are not done."
      ],
      "depends_on": [
        "skills-risk-review-malware-incident-communication-template-001"
      ],
      "evidence": [
        "git-history:operations/board.json#skills-catalog-refresh-after-metadata-backfill-009"
      ],
      "sources": [],
      "stop_line": "No publication, package release, external mutation, credential use, private-data ingestion, unsafe endorsement, or unlicensed copying.",
      "extensions": {
        "value_type": "catalog_parity_repair",
        "external_action_allowed": false,
        "next_ticket_on_success": "skills-metadata-backfill-batch-010"
      }
    },
    {
      "id": "skills-metadata-backfill-batch-010",
      "title": "skills metadata backfill batch 010",
      "status": "blocked",
      "priority": "P3",
      "owner_role": "critic",
      "acceptance": [
        "A done ticket must restore discovery, review a source/skill, normalize a skill, remove a risk blocker, repair catalog parity, publish/verify an installable surface, or kill unsafe/generic material. Status-only updates are not done."
      ],
      "depends_on": [
        "skills-catalog-refresh-after-metadata-backfill-009"
      ],
      "evidence": [],
      "sources": [],
      "stop_line": "No publication, package release, external mutation, credential use, private-data ingestion, unsafe endorsement, or unlicensed copying.",
      "extensions": {
        "value_type": "risk_gate_created",
        "external_action_allowed": false,
        "next_ticket_on_success": "skills-risk-review-phishing-reporting-button-workflow-001"
      },
      "blocked_reason": "Blocked by the repository risk/review sequence; inspect the named sources and successor item before resuming."
    },
    {
      "id": "skills-risk-review-phishing-reporting-button-workflow-001",
      "title": "Review and convert or quarantine Building Phishing Reporting Button Workflow before package-facing endorsement, with attention to administrative email-suite configuration, SOAR mailbox monitoring, IOC extraction, external URL/attachment submissions, automated inbox/domain mutation, reporter notification, and private-data surfaces.",
      "status": "done",
      "priority": "P0",
      "owner_role": "risk-auditor",
      "acceptance": [
        "A done ticket must restore discovery, review a source/skill, normalize a skill, remove a risk blocker, repair catalog parity, publish/verify an installable surface, or kill unsafe/generic material. Status-only updates are not done."
      ],
      "depends_on": [
        "skills-metadata-backfill-batch-010"
      ],
      "evidence": [
        "reports/risk/2026-07-09-phishing-reporting-button-workflow-risk-review.md",
        "acceptance_result:{\"passed\":true,\"checked_at\":\"2026-07-09T21:24:26-03:00\"}"
      ],
      "sources": [
        "dist/skills/building-phishing-reporting-button-workflow/SKILL.md",
        "reports/critic/2026-07-09-metadata-backfill-batch-010.md"
      ],
      "stop_line": "No publication, package release, external mutation, credential use, private-data ingestion, unsafe endorsement, or unlicensed copying.",
      "extensions": {
        "value_type": "risk_blocker_removed",
        "external_action_allowed": false,
        "next_ticket_on_success": "skills-catalog-refresh-after-metadata-backfill-010"
      }
    },
    {
      "id": "skills-catalog-refresh-after-metadata-backfill-010",
      "title": "Verify catalog/install-manifest parity after phishing reporting button workflow risk review and record package-facing catalog state without publishing.",
      "status": "done",
      "priority": "P1",
      "owner_role": "cataloger",
      "acceptance": [
        "catalog reflects or reports pending parity for Building Phishing Reporting Button Workflow as security-defensive high requires_review",
        "install manifest remains coherent",
        "no npm publish attempted"
      ],
      "depends_on": [
        "skills-risk-review-phishing-reporting-button-workflow-001"
      ],
      "evidence": [
        "reports/catalog/2026-07-09-metadata-backfill-010-catalog-parity.md",
        "acceptance_result:{\"passed\":true,\"checked_at\":\"2026-07-09T22:19:08-03:00\",\"evidence\":\"Catalog surfaces show 1183 skills, security-defensive 72, high-risk 28, unspecified 704; Building Phishing Reporting Button Workflow is package-facing as security-defensive/high/requires_review true; install manifest points to dist/skills and catalog files; no package publication occurred.\"}"
      ],
      "sources": [
        "dist/catalog.json",
        "dist/catalog.md",
        "dist/install-manifest.json",
        "dist/skills/building-phishing-reporting-button-workflow/SKILL.md",
        "reports/risk/2026-07-09-phishing-reporting-button-workflow-risk-review.md"
      ],
      "stop_line": "No publication, package release, external mutation, credential use, private-data ingestion, unsafe endorsement, or unlicensed copying.",
      "extensions": {
        "value_type": "catalog_parity_repair",
        "external_action_allowed": false,
        "next_ticket_on_success": "skills-metadata-backfill-batch-011"
      },
      "completed_at": "2026-07-09T22:19:08-03:00"
    },
    {
      "id": "skills-metadata-backfill-batch-011",
      "title": "Continue bounded metadata backlog cleanup from the next uncategorized or unspecified-risk package-facing skill; stop immediately and open a risk-review ticket if high-risk executable, credential, SSRF, offensive, account, browser, external-mutation, private-data, or publication-sensitive surfaces are encountered.",
      "status": "done",
      "priority": "P3",
      "owner_role": "critic",
      "acceptance": [
        "inspect the next bounded metadata backlog candidate directly from the repository",
        "backfill only safe metadata or stop before unsafe package endorsement",
        "open a concrete risk-review ticket if unsafe surfaces are found",
        "do not publish or perform external connector actions"
      ],
      "depends_on": [
        "skills-catalog-refresh-after-metadata-backfill-010"
      ],
      "evidence": [
        "reports/critic/2026-07-22-classification-override-batch-011.md",
        "operations/action-runs/skills-catalog-repair/latest.json",
        "commit:2e86e51",
        "workflow_run:29952399864 conclusion=success"
      ],
      "sources": [
        "dist/catalog.json",
        "dist/catalog.md",
        "dist/install-manifest.json",
        "dist/skills/"
      ],
      "stop_line": "No publication, package release, external mutation, credential use, private-data ingestion, unsafe endorsement, or unlicensed copying.",
      "extensions": {
        "value_type": "catalog_quality_improvement",
        "external_action_allowed": false,
        "next_ticket_on_success": "skills-source-review-remotion-hyperframes-001"
      },
      "completed_at": "2026-07-22T19:52:00Z"
    },
    {
      "id": "skills-source-review-remotion-hyperframes-001",
      "title": "Review the Remotion and HyperFrames source cluster against existing media and motion skills before any package promotion.",
      "status": "done",
      "priority": "P1",
      "owner_role": "reviewer",
      "acceptance": [
        "record exact source revisions, provenance, and license boundaries",
        "compare candidates with existing media, video, motion, and HyperFrames entries before creating or promoting any slug",
        "preserve imported bodies and distinguish reference, candidate, conditional, superseded, and reviewed lifecycle decisions",
        "run package and catalog validation without publishing"
      ],
      "depends_on": [
        "skills-metadata-backfill-batch-011"
      ],
      "evidence": [
        "reports/source-review/2026-07-22-programmatic-video-consolidation.md",
        "operations/action-runs/programmatic-video-consolidation/latest.json",
        "commit:001efb0"
      ],
      "sources": [
        "operations/source-watchlist.json",
        "sources/candidates/2026-07-22-curated-sources.md",
        "reports/source-review/2026-07-22-design-skill-consolidation.md",
        "dist/catalog.json"
      ],
      "stop_line": "No publication, package release, external mutation, credential use, private-data ingestion, unsafe endorsement, unlicensed copying, or candidate promotion without review evidence.",
      "extensions": {
        "value_type": "source_review_and_deduplication",
        "external_action_allowed": false,
        "next_ticket_on_success": "skills-source-review-openseo-marketing-001"
      },
      "completed_at": "2026-07-22T20:45:00Z"
    },
    {
      "id": "skills-source-review-openseo-marketing-001",
      "title": "Review OpenSEO and marketing/SEO overlap before adding or promoting package-facing skills.",
      "status": "done",
      "priority": "P1",
      "owner_role": "reviewer",
      "acceptance": [
        "record exact source revisions, provenance, license, and external-service boundaries",
        "compare the source cluster with existing SEO, marketing, browser, analytics, and publishing entries before creating any slug",
        "separate research, audit, implementation, external mutation, credential use, and publication authority",
        "run package and catalog validation without publishing or invoking external services"
      ],
      "depends_on": [
        "skills-source-review-remotion-hyperframes-001"
      ],
      "evidence": [
        "reports/source-review/2026-07-22-seo-skill-consolidation.md",
        "operations/action-runs/seo-skill-consolidation/latest.json",
        "commit:5eb7796"
      ],
      "sources": [
        "operations/source-watchlist.json",
        "sources/candidates/2026-07-22-curated-sources.md",
        "reports/source-review/2026-07-22-programmatic-video-consolidation.md",
        "dist/catalog.json"
      ],
      "stop_line": "No publication, external account mutation, credential use, private-data ingestion, browser automation, remote installer, unsafe endorsement, or unlicensed copying.",
      "extensions": {
        "value_type": "source_review_and_deduplication",
        "external_action_allowed": false,
        "next_ticket_on_success": "skills-evaluate-seo-fixtures-001"
      },
      "completed_at": "2026-07-22T21:15:00Z"
    },
    {
      "id": "skills-evaluate-seo-fixtures-001",
      "title": "Evaluate the local SEO skills against provider-neutral fixtures before any core promotion.",
      "status": "done",
      "priority": "P1",
      "owner_role": "tests",
      "acceptance": [
        "exercise project context, keyword opportunity, page mapping, competitive research, link prospecting, and AI visibility procedures on deterministic local fixtures",
        "verify observed first-party facts, provider estimates, unknowns, and freshness are never collapsed into one evidence class",
        "verify authenticated data, saved keyword state, crawling, contact collection, outreach, page mutation, and publication remain separately gated",
        "record comparative utility and token cost without using live accounts or external services"
      ],
      "depends_on": [
        "skills-source-review-openseo-marketing-001"
      ],
      "evidence": [
        "tests/fixtures/seo/contract-evaluation.json",
        "scripts/evaluate_seo_skills.py",
        "reports/evaluation/2026-07-22-seo-fixture-evaluation.json",
        "reports/evaluation/2026-07-22-seo-fixture-evaluation.md",
        "commit:d3843d0"
      ],
      "sources": [
        "reports/source-review/2026-07-22-seo-skill-consolidation.md",
        "skills/seo-project-context.md",
        "skills/seo-keyword-opportunity-research.md",
        "skills/seo-keyword-page-mapping.md",
        "skills/seo-competitive-research.md",
        "skills/seo-link-prospecting.md",
        "skills/ai-search-visibility-audit.md"
      ],
      "stop_line": "Local fixtures only. No authenticated account, paid credit, live crawl, contact collection, outreach, page mutation, report publication, or core promotion.",
      "extensions": {
        "value_type": "comparative_utility_evaluation",
        "external_action_allowed": false,
        "next_ticket_on_success": "skills-source-review-code-intelligence-001",
        "acceptance_result": {
          "passed": true,
          "checked_at": "2026-07-22T21:25:00Z",
          "evaluation_kind": "deterministic_contract_fixture_not_model_benchmark",
          "case_count": 6,
          "live_services_used": false,
          "promotion_decision": "hold_for_controlled_model_and_repository_evaluation"
        },
        "comparison_scope": "generic_fixture_output_vs_skill_guided_fixture_output",
        "token_measurement": "ceil_utf8_characters_divided_by_4"
      },
      "completed_at": "2026-07-22T21:25:00Z"
    },
    {
      "id": "skills-source-review-code-intelligence-001",
      "title": "Review code-intelligence graph sources and consolidate derived-map procedures.",
      "summary": "Review pinned code-intelligence sources; distinguish deterministic parser facts from heuristic, semantic, and LLM-generated relationships; and define bounded structural-map and change-impact procedures only where they are distinct from the existing architecture and graph-projection core.",
      "status": "done",
      "priority": "P1",
      "owner_role": "reviewer",
      "acceptance": [
        "record exact source revisions and licenses for all reviewed repositories",
        "record that the original Understand Anything bookmark now resolves to the current Egonex-AI repository",
        "do not execute installers, binaries, MCP servers, hooks, watchers, dashboards, model calls, or repository indexing",
        "keep generated graph and onboarding artifacts derived rather than canonical",
        "verify consequential impact claims against source, configuration, history, tests, or runtime evidence",
        "review overlapping package entries before adding local procedures",
        "record lifecycle and installation decisions without rewriting imported package bodies",
        "leave utility evaluation as a separate next item"
      ],
      "depends_on": [
        "skills-evaluate-seo-fixtures-001"
      ],
      "evidence": [
        "sources/reviewed/2026-07-22-code-intelligence-cluster.md",
        "skills/codebase-structural-map.md",
        "skills/change-impact-review.md",
        "operations/catalog-decisions/code-intelligence.json",
        "reports/source-review/2026-07-22-code-intelligence-consolidation.md",
        "operations/action-runs/code-intelligence-consolidation/latest.json",
        "commit:3274bed"
      ],
      "sources": [
        "https://github.com/tirth8205/code-review-graph",
        "https://github.com/DeusData/codebase-memory-mcp",
        "https://github.com/Egonex-AI/Understand-Anything"
      ],
      "stop_line": "Source review only. No installers, binaries, MCP servers, hooks, watchers, dashboards, model calls, repository indexing or writes, core promotion, or external mutation. Generated graphs remain noncanonical derived views.",
      "extensions": {
        "value_type": "source_review_and_normalization",
        "external_action_allowed": false,
        "expected_artifacts": [
          "sources/reviewed/2026-07-22-code-intelligence-cluster.md",
          "skills/codebase-structural-map.md",
          "skills/change-impact-review.md",
          "operations/catalog-decisions/code-intelligence.json",
          "reports/source-review/2026-07-22-code-intelligence-consolidation.md"
        ],
        "next_ticket_on_success": "skills-evaluate-code-intelligence-fixtures-001",
        "runtime_installation_deferred_to_workframe": true,
        "promotion_to_core_allowed": false,
        "graph_outputs_remain_derived": true,
        "acceptance_result": {
          "passed": true,
          "checked_at": "2026-07-22T21:40:00Z",
          "sources_reviewed": 3,
          "licenses_reviewed": 3,
          "first_party_skills_added": 2,
          "catalog_decisions_added": 3,
          "external_runtimes_executed": false,
          "repository_source_indexed": false,
          "promotion_to_core": false
        }
      },
      "completed_at": "2026-07-22T21:40:00Z"
    },
    {
      "id": "skills-evaluate-code-intelligence-fixtures-001",
      "title": "Evaluate code-intelligence procedures on deterministic local fixtures.",
      "summary": "Compare ordinary source-search review with graph-assisted procedures on synthetic repository evidence while preserving freshness, source-verification, privacy, worktree, mutation, and publication boundaries.",
      "status": "done",
      "priority": "P1",
      "owner_role": "tests",
      "acceptance": [
        "use synthetic local fixtures and no live repository indexing",
        "do not execute installers, binaries, MCP servers, model providers, hooks, watchers, dashboards, or CI comments",
        "compare ordinary source-search review with graph-assisted review on the same fixture evidence",
        "prove that stale, excluded, heuristic, semantic, and LLM-generated graph evidence cannot become a finding without source verification",
        "exercise dynamic import, configuration-driven routing, generated-code, and worktree-boundary cases",
        "verify secrets, private memory, caches, dependencies, generated outputs, and unrelated repositories remain excluded",
        "record score and transparent token or context-cost estimates",
        "leave core promotion blocked pending controlled model and real-repository evaluation"
      ],
      "depends_on": [
        "skills-source-review-code-intelligence-001"
      ],
      "evidence": [
        "tests/fixtures/code-intelligence/contract-evaluation.json",
        "scripts/evaluate_code_intelligence_skills.py",
        "reports/evaluation/2026-07-22-code-intelligence-fixture-evaluation.json",
        "reports/evaluation/2026-07-22-code-intelligence-fixture-evaluation.md",
        "commit:3b96f24"
      ],
      "sources": [
        "skills/codebase-structural-map.md",
        "skills/change-impact-review.md",
        "sources/reviewed/2026-07-22-code-intelligence-cluster.md"
      ],
      "stop_line": "Synthetic local fixtures only. No live repository indexing, installers, binaries, MCP servers, model providers, hooks, watchers, dashboards, CI comments, repository mutation, publication, or core promotion.",
      "extensions": {
        "value_type": "utility_evaluation",
        "external_action_allowed": false,
        "next_ticket_on_success": "skills-source-review-memory-cluster-001",
        "promotion_to_core_allowed": false,
        "acceptance_result": {
          "passed": true,
          "checked_at": "2026-07-22T22:10:00Z",
          "evaluation_kind": "deterministic_contract_fixture_not_model_benchmark",
          "case_count": 6,
          "maximum_score": 67,
          "baseline_score": 0,
          "guided_score": 67,
          "score_delta": 67,
          "baseline_estimated_tokens": 187,
          "guided_estimated_tokens": 596,
          "token_delta": 409,
          "token_estimation_method": "ceil_utf8_bytes_divided_by_4",
          "live_repository_indexed": false,
          "external_runtimes_executed": false,
          "repository_mutated": false,
          "promotion_decision": "hold_for_controlled_model_and_real_repository_evaluation"
        },
        "comparison_scope": "generic_fixture_output_vs_skill_guided_fixture_output"
      },
      "completed_at": "2026-07-22T22:10:00Z"
    },
    {
      "id": "skills-source-review-memory-cluster-001",
      "title": "Review local and project memory sources and consolidate lifecycle procedures.",
      "summary": "Review Supermemory Local, ProjectMem, and Cognee against the existing knowledge-lifecycle, source-first-wiki, second-brain, graph-projection, and agent-handoff core before adding any first-party memory procedure.",
      "status": "ready",
      "priority": "P1",
      "owner_role": "reviewer",
      "acceptance": [
        "resolve the exact current repository or primary source for every reviewed system and record revision and license",
        "do not install or execute memory servers, databases, MCP tools, embeddings, model calls, connectors, watchers, or background jobs",
        "distinguish memory from canonical knowledge and record which store is authoritative for each artifact",
        "define consent, privacy, retention, export, deletion, encryption, tenant, credential, and model-provider boundaries",
        "treat inferred entities, graph edges, summaries, and embeddings as derived evidence rather than canonical truth",
        "review overlapping package memory skills and lifecycle guidance before adding local procedures",
        "record lifecycle and installation decisions without rewriting imported package bodies",
        "leave utility evaluation and core promotion as separate later items"
      ],
      "depends_on": [
        "skills-evaluate-code-intelligence-fixtures-001"
      ],
      "evidence": [],
      "sources": [
        "https://supermemory.ai/changelog/local/",
        "https://github.com/riponcm/projectmem",
        "https://github.com/topoteretes/cognee"
      ],
      "stop_line": "Source review only. No memory server, database, MCP tool, embedding, model call, connector, watcher, background job, credential use, private-data ingestion, external mutation, runtime installation, or core promotion.",
      "extensions": {
        "value_type": "source_review_and_normalization",
        "external_action_allowed": false,
        "expected_artifacts": [
          "sources/reviewed/2026-07-22-memory-runtime-cluster.md",
          "reports/source-review/2026-07-22-memory-skill-consolidation.md"
        ],
        "next_ticket_on_success": "skills-evaluate-memory-fixtures-001",
        "runtime_installation_deferred_to_workframe": true,
        "promotion_to_core_allowed": false
      }
    }
  ],
  "extensions": {
    "purpose": "Force skills heartbeats to produce reviewed, installable, discoverable skill value instead of unbounded catalog/status churn.",
    "selection_rule": "Consume the highest-priority dependency-clear ready item allowed by operations/gates.md. If none is eligible, stop cleanly."
  }
}
