{
  "generatedAt": "2026-05-06T16:48:00Z",
  "issueNumber": 379,
  "issueUrl": "https://github.com/HotsumaX/community-sandbox/issues/379",
  "goal": "Execute one bounded metadata update for issue #379 by adding a single execution-ready delta object to the GitHub issue lifecycle artifact and its portal mirror.",
  "executionGrade": true,
  "concreteDeltaRequired": true,
  "targetFiles": [
    "artifacts/strategy/github-issue-lifecycle.json",
    "deployment/portal/artifacts/strategy/github-issue-lifecycle.json"
  ],
  "allowedDirectories": [
    "artifacts/strategy",
    "deployment/portal/artifacts/strategy"
  ],
  "hardConstraints": [
    "GitHub is source of truth",
    "Local commit -> push -> webhook deploy only",
    "No direct Pi edits",
    "No Codex execution in this pass",
    "No new GitHub issue creation",
    "No issue closure",
    "Only modify the listed target files",
    "Keep maxFilesChanged <= 2",
    "Keep maxLinesChanged <= 120"
  ],
  "exactTargetSections": [
    {
      "file": "artifacts/strategy/github-issue-lifecycle.json",
      "jsonPath": "$.proofReadiness.issue379ExecutionDelta",
      "operation": "add-or-replace",
      "expectedValue": {
        "issueNumber": 379,
        "status": "ready-for-execution",
        "targetKey": "proofReadiness.issue379ExecutionDelta",
        "safeDelta": "lifecycle-gate-metadata-only",
        "expectedWorkflowState": "awaiting-operator-codex",
        "expectedExecutionOwner": "operator-codex"
      }
    },
    {
      "file": "deployment/portal/artifacts/strategy/github-issue-lifecycle.json",
      "jsonPath": "$.proofReadiness.issue379ExecutionDelta",
      "operation": "add-or-replace",
      "expectedValue": {
        "issueNumber": 379,
        "status": "ready-for-execution",
        "targetKey": "proofReadiness.issue379ExecutionDelta",
        "safeDelta": "lifecycle-gate-metadata-only",
        "expectedWorkflowState": "awaiting-operator-codex",
        "expectedExecutionOwner": "operator-codex"
      }
    }
  ],
  "successCriteria": [
    "Exactly the two listed lifecycle files are touched.",
    "Both files contain $.proofReadiness.issue379ExecutionDelta with the exact expected object.",
    "Source and portal mirror remain byte-for-byte equivalent after JSON normalization."
  ],
  "verificationCommands": [
    "python3 - <<'PY'\nimport json\nfrom pathlib import Path\nexpected = {'issueNumber': 379, 'status': 'ready-for-execution', 'targetKey': 'proofReadiness.issue379ExecutionDelta', 'safeDelta': 'lifecycle-gate-metadata-only', 'expectedWorkflowState': 'awaiting-operator-codex', 'expectedExecutionOwner': 'operator-codex'}\nsource = json.loads(Path('artifacts/strategy/github-issue-lifecycle.json').read_text())\nmirror = json.loads(Path('deployment/portal/artifacts/strategy/github-issue-lifecycle.json').read_text())\nassert source['proofReadiness']['issue379ExecutionDelta'] == expected\nassert mirror['proofReadiness']['issue379ExecutionDelta'] == expected\nassert source == mirror\nprint('issue-379-execution-grade-ok')\nPY"
  ],
  "maxFilesChanged": 2,
  "maxLinesChanged": 120,
  "codexExecutionAllowed": false,
  "codexExecutionActuallyRan": false,
  "githubWritePerformed": false
}
