{
  "attention_items": [
    "Add a daily job to look for actions etc. that have unmerged minor updates that are applicable to release branches. Update them and create a patch release.",
    "Break up the `doxchange` repository as a separate undertaking.",
    "Build a daily PR scan across the organizations to detect failures that may be automatically remediated with the Copilot CLI, then have Copilot propose fixes as pull requests. Run it as a cron job on the current host, with the required supporting scripts and automation.",
    "Write and publish a blog post on `blytkerchan.github.io` announcing the move of `build-paper` to `vln-devsecops/actions-build-paper`, so any unexpected users have a clear pointer to the new action location.",
    "Update the READMEs for the public actions so their documented `uses:` locations, badges, and repository links point at the new `vln-devsecops` homes.",
    "Add a reusable workflow for the auto-versioning path so repositories can call a more stable shared workflow instead of each depending directly on the more fragile autoversion action wiring.",
    "Repos without live API enrichment in this snapshot: vln-devsecops/github-runners, vln-devsecops/utils-system-cleanup, vln-devsecops/terraform-modules, VlinderSoftware/doxchange, vln-polaris/terraform-aws-coppice ...",
    "Repo manifest entries awaiting reconfirmation: 22"
  ],
  "generated_at": "2026-05-01T00:39:02Z",
  "module_status_counts": {
    "deferred": 1,
    "extracted": 6
  },
  "modules": [
    {
      "complete_tests": [
        "static_checks_complete",
        "terraform_test_complete",
        "integration_test_complete",
        "examples_complete",
        "policy_checks_complete"
      ],
      "name": "deployment_bucket",
      "notes": [
        "Extract as a standalone shared module.",
        "Source repo is docxchange; shared module should not carry the app name.",
        "Appears self-contained enough for the first extraction pass.",
        "Extracted into provider-qualified paths under terraform-modules.",
        "Provider-backed coverage is now exercised and passing via tests/aws/deployment_bucket/run.sh in Terraform Integration on `main`.",
        "Successful full-suite confirmations include workflow runs 25145127358 and 25151325943 on commit `7e66bd8`."
      ],
      "provider": "aws",
      "source_repo": "VlinderSoftware/doxchange",
      "status": "extracted",
      "target_path": "modules/aws/deployment_bucket"
    },
    {
      "complete_tests": [
        "static_checks_complete",
        "terraform_test_complete",
        "integration_test_complete",
        "examples_complete",
        "policy_checks_complete"
      ],
      "name": "dynamodb",
      "notes": [
        "Extract as a standalone shared module.",
        "Source repo is docxchange; shared module should not carry the app name.",
        "Appears self-contained enough for the first extraction pass.",
        "Extracted into provider-qualified paths under terraform-modules.",
        "Provider-backed coverage is now exercised and passing via tests/aws/dynamodb/run.sh in Terraform Integration on `main`.",
        "Successful full-suite confirmations include workflow runs 25145127358 and 25151325943 on commit `7e66bd8`."
      ],
      "provider": "aws",
      "source_repo": "VlinderSoftware/doxchange",
      "status": "extracted",
      "target_path": "modules/aws/dynamodb"
    },
    {
      "complete_tests": [
        "static_checks_complete",
        "terraform_test_complete",
        "integration_test_complete",
        "examples_complete",
        "policy_checks_complete"
      ],
      "name": "lambda",
      "notes": [
        "Extracted into provider-qualified paths under terraform-modules.",
        "The shared module preserves docxchange-compatible archive naming by default while moving the app-shaped pieces behind optional inputs.",
        "Optional secrets, backend-user secret access, extra S3 access, and Lambda@Edge trust were carried forward as explicit extensions because they matter to the closest-to-production docxchange usage.",
        "The old `dist_path` input remains source-local and is not part of the shared contract.",
        "Coverage includes terraform test contract checks, an executable example, and a provider-backed docxchange compatibility fixture under tests/aws/lambda/docxchange_compat.",
        "PR policy checks now run via TFLint and Trivy, and scheduled/manual Checkov coverage is in place in terraform-modules at 2cf63de.",
        "The provider-backed compatibility fixture under tests/aws/lambda/docxchange_compat/run.sh is now exercised as part of the live integration baseline.",
        "Successful full-suite confirmations include workflow runs 25145127358 and 25151325943 on commit `7e66bd8`."
      ],
      "provider": "aws",
      "source_repo": "VlinderSoftware/doxchange",
      "status": "extracted",
      "target_path": "modules/aws/lambda"
    },
    {
      "complete_tests": [
        "static_checks_complete",
        "terraform_test_complete",
        "integration_test_complete",
        "examples_complete",
        "policy_checks_complete"
      ],
      "name": "lambda",
      "notes": [
        "Extracted into provider-qualified paths under terraform-modules.",
        "This source remained the cleaner structural base for the shared module.",
        "The extracted contract keeps explicit source object key support, configurable runtime, memory, publish behavior, and function URL authorization.",
        "Docxchange-specific responsibilities were only pulled in where they could be made clearly optional without changing the shared base shape.",
        "PR policy checks now run via TFLint and Trivy, and scheduled/manual Checkov coverage is in place in terraform-modules at 2cf63de.",
        "Shared-module integration coverage is now satisfied by the exercised provider-backed compatibility fixture in Terraform Integration on `main`.",
        "Successful full-suite confirmations include workflow runs 25145127358 and 25151325943 on commit `7e66bd8`."
      ],
      "provider": "aws",
      "source_repo": "vln-polaris/terraform-aws-coppice",
      "status": "extracted",
      "target_path": "modules/aws/lambda"
    },
    {
      "complete_tests": [
        "static_checks_complete",
        "terraform_test_complete",
        "integration_test_complete",
        "examples_complete",
        "policy_checks_complete"
      ],
      "name": "mail",
      "notes": [
        "Extracted as a self-contained SES and Route53 mail module.",
        "Covers SES domain identity, DKIM, MAIL FROM, DMARC, MX, and configuration set resources.",
        "Extraction normalized the hard-coded feedback region into an optional input.",
        "Extraction normalized the DMARC report URI and policy into optional inputs.",
        "Provider-backed coverage is now exercised and passing via tests/aws/mail/run.sh in Terraform Integration on `main`.",
        "Successful full-suite confirmations include workflow runs 25145127358 and 25151325943 on commit `7e66bd8`."
      ],
      "provider": "aws",
      "source_repo": "VlinderSoftware/doxchange",
      "status": "extracted",
      "target_path": "modules/aws/mail"
    },
    {
      "complete_tests": [],
      "name": "rxmail",
      "notes": [
        "Keep deferred for now.",
        "This is not just inbound SES storage; it also creates and activates a receipt rule set, manages per-domain S3 buckets, creates IAM users and access keys for mailbox access, and creates separate DMARC-report users and credentials.",
        "{'Smallest decomposition before any later extraction': 'split SES inbound wiring and rule-set activation, inbound message storage, DMARC-report storage, and credential issuance/mailbox access into separate concerns instead of extracting one combined module.'}",
        "Keep receipt-rule activation and credential issuance app-owned until there is a stable shared contract; the only conservative future extraction seeds are the storage concerns after the naming, PGP, and receipt-rule ARN assumptions are removed from their interfaces.",
        "{'The current interface is still operationally opinionated': 'domain-prefix fan-out, required PGP material for encrypted IAM access keys, region shortcode naming, and us-east-1-specific SES receipt-rule source ARN assumptions.'}"
      ],
      "provider": "aws",
      "source_repo": "VlinderSoftware/doxchange",
      "status": "deferred",
      "target_path": "modules/aws/rxmail"
    },
    {
      "complete_tests": [
        "static_checks_complete",
        "terraform_test_complete",
        "examples_complete",
        "policy_checks_complete"
      ],
      "name": "static_site",
      "notes": [
        "Extracted from the applied-paranoia.com S3 plus CloudFront plus Route53 static-site pattern.",
        "The shared module keeps the private S3 origin, CloudFront OAC, pretty-URL rewrite, and SPA fallback behavior reusable.",
        "Optional lightweight basic auth is exposed for low-sensitivity internal sites, but the default remains no auth plus an unguessable hostname.",
        "A provider-backed integration suite now exists under tests/aws/static_site, but it still needs an executed confirmation before coverage should be treated as complete."
      ],
      "provider": "aws",
      "source_repo": "blytkerchan/applied-paranoia.com",
      "status": "extracted",
      "target_path": "modules/aws/static_site"
    }
  ],
  "operations_runs": [
    {
      "conclusion": null,
      "created_at": "2026-05-01T00:38:32Z",
      "event": "workflow_dispatch",
      "name": "cd_publish_org_dashboard",
      "status": "in_progress",
      "updated_at": "2026-05-01T00:38:44Z",
      "url": "https://github.com/vln-devsecops/operations/actions/runs/25196503790"
    },
    {
      "conclusion": "failure",
      "created_at": "2026-05-01T00:36:13Z",
      "event": "workflow_dispatch",
      "name": "cd_publish_org_dashboard",
      "status": "completed",
      "updated_at": "2026-05-01T00:36:57Z",
      "url": "https://github.com/vln-devsecops/operations/actions/runs/25196438625"
    },
    {
      "conclusion": "success",
      "created_at": "2026-05-01T00:36:01Z",
      "event": "push",
      "name": "ci_validate_yaml",
      "status": "completed",
      "updated_at": "2026-05-01T00:36:10Z",
      "url": "https://github.com/vln-devsecops/operations/actions/runs/25196433090"
    },
    {
      "conclusion": "success",
      "created_at": "2026-05-01T00:36:01Z",
      "event": "push",
      "name": "ci_lint_markdown",
      "status": "completed",
      "updated_at": "2026-05-01T00:36:13Z",
      "url": "https://github.com/vln-devsecops/operations/actions/runs/25196433088"
    },
    {
      "conclusion": "success",
      "created_at": "2026-04-30T21:25:59Z",
      "event": "push",
      "name": "ci_validate_yaml",
      "status": "completed",
      "updated_at": "2026-04-30T21:26:10Z",
      "url": "https://github.com/vln-devsecops/operations/actions/runs/25190127746"
    },
    {
      "conclusion": "success",
      "created_at": "2026-04-30T21:25:58Z",
      "event": "workflow_dispatch",
      "name": "cd_publish_org_dashboard",
      "status": "completed",
      "updated_at": "2026-04-30T21:26:44Z",
      "url": "https://github.com/vln-devsecops/operations/actions/runs/25190126595"
    },
    {
      "conclusion": "success",
      "created_at": "2026-04-30T21:24:38Z",
      "event": "push",
      "name": "ci_validate_yaml",
      "status": "completed",
      "updated_at": "2026-04-30T21:24:48Z",
      "url": "https://github.com/vln-devsecops/operations/actions/runs/25190073666"
    },
    {
      "conclusion": "success",
      "created_at": "2026-04-30T21:24:37Z",
      "event": "workflow_dispatch",
      "name": "cd_publish_org_dashboard",
      "status": "completed",
      "updated_at": "2026-04-30T21:25:18Z",
      "url": "https://github.com/vln-devsecops/operations/actions/runs/25190073000"
    },
    {
      "conclusion": "success",
      "created_at": "2026-04-30T21:23:22Z",
      "event": "push",
      "name": "ci_validate_yaml",
      "status": "completed",
      "updated_at": "2026-04-30T21:23:38Z",
      "url": "https://github.com/vln-devsecops/operations/actions/runs/25190022031"
    },
    {
      "conclusion": "success",
      "created_at": "2026-04-30T21:23:21Z",
      "event": "workflow_dispatch",
      "name": "cd_publish_org_dashboard",
      "status": "completed",
      "updated_at": "2026-04-30T21:24:02Z",
      "url": "https://github.com/vln-devsecops/operations/actions/runs/25190021329"
    }
  ],
  "repos": [
    {
      "archived": false,
      "category": "org-profile",
      "compliance": {
        "details": [],
        "label": "unknown",
        "status": "unknown"
      },
      "default_branch": "main",
      "live_access": "live",
      "live_errors": [],
      "local_path": ".github",
      "maturity": "main",
      "name": "vln-devsecops/.github",
      "notes": [
        "org profile repository for the public-facing organization README and shared org metadata"
      ],
      "open_issues_count": 0,
      "owner": "vln-devsecops",
      "pushed_at": "2026-04-28T01:25:27Z",
      "role": "target",
      "tags": {
        "display": "none",
        "latest_patch": null,
        "moving_major": null,
        "moving_minor": null
      },
      "updated_at": "2026-04-28T01:25:31Z",
      "url": "https://github.com/vln-devsecops/.github",
      "user_confirmed_correct": true,
      "visibility": "public",
      "workflow": {
        "health": "unknown",
        "label": "no runs",
        "latest": null,
        "recent_failures": 0
      }
    },
    {
      "archived": false,
      "category": "workspace",
      "compliance": {
        "details": [
          "dependabot",
          "ci",
          "auto-merge"
        ],
        "label": "baseline",
        "status": "baseline"
      },
      "default_branch": "dev",
      "live_access": "live",
      "live_errors": [],
      "local_path": ".",
      "maturity": "dev",
      "name": "vln-devsecops/operations",
      "notes": [
        "central devsecops workspace",
        "tracks the broader org migration/extraction plan and the org-profile repository",
        "now includes scaffold/repository-compliance as the copy-forward baseline for bringing future repos up to the shared compliance standard"
      ],
      "open_issues_count": 0,
      "owner": "vln-devsecops",
      "pushed_at": "2026-05-01T00:35:59Z",
      "role": "target",
      "tags": {
        "display": "none",
        "latest_patch": null,
        "moving_major": null,
        "moving_minor": null
      },
      "updated_at": "2026-05-01T00:36:03Z",
      "url": "https://github.com/vln-devsecops/operations",
      "user_confirmed_correct": false,
      "visibility": "private",
      "workflow": {
        "health": "pending",
        "label": "in_progress / n/a",
        "latest": {
          "conclusion": null,
          "created_at": "2026-05-01T00:38:32Z",
          "event": "workflow_dispatch",
          "name": "cd_publish_org_dashboard",
          "status": "in_progress",
          "updated_at": "2026-05-01T00:38:44Z",
          "url": "https://github.com/vln-devsecops/operations/actions/runs/25196503790"
        },
        "recent_failures": 1
      }
    },
    {
      "archived": false,
      "category": "devsecops",
      "compliance": {
        "details": [],
        "label": "unknown",
        "status": "unknown"
      },
      "default_branch": "main",
      "live_access": "manifest-only",
      "live_errors": [
        "gh: Not Found (HTTP 404)",
        "gh: Not Found (HTTP 404)",
        "gh: Not Found (HTTP 404)"
      ],
      "local_path": null,
      "maturity": "main",
      "name": "vln-devsecops/github-runners",
      "notes": [
        "inactive shared runner infrastructure",
        "transferred from VlinderSoftware/devsecops-gha-runner",
        "old location now redirects to the new repo",
        "contains terraform, packer, and runner management scripts"
      ],
      "open_issues_count": null,
      "owner": "vln-devsecops",
      "pushed_at": null,
      "role": "migrated",
      "tags": {
        "display": "none",
        "latest_patch": null,
        "moving_major": null,
        "moving_minor": null
      },
      "updated_at": null,
      "url": "https://github.com/vln-devsecops/github-runners",
      "user_confirmed_correct": false,
      "visibility": "private",
      "workflow": {
        "health": "unknown",
        "label": "unknown",
        "latest": null,
        "recent_failures": null
      }
    },
    {
      "archived": false,
      "category": "devsecops",
      "compliance": {
        "details": [],
        "label": "unknown",
        "status": "unknown"
      },
      "default_branch": "main",
      "live_access": "manifest-only",
      "live_errors": [
        "gh: Not Found (HTTP 404)",
        "gh: Not Found (HTTP 404)",
        "gh: Not Found (HTTP 404)"
      ],
      "local_path": null,
      "maturity": "main",
      "name": "vln-devsecops/utils-system-cleanup",
      "notes": [
        "transferred from VlinderSoftware/devsecops-utils-system-cleanup",
        "old location now redirects to the new repo",
        "repo metadata updated to reflect the final repo name and location",
        "linked into this workspace as utils/system-cleanup",
        "typescript cleanup utilities with scripts and tests"
      ],
      "open_issues_count": null,
      "owner": "vln-devsecops",
      "pushed_at": null,
      "role": "migrated",
      "tags": {
        "display": "none",
        "latest_patch": null,
        "moving_major": null,
        "moving_minor": null
      },
      "updated_at": null,
      "url": "https://github.com/vln-devsecops/utils-system-cleanup",
      "user_confirmed_correct": false,
      "visibility": "private",
      "workflow": {
        "health": "unknown",
        "label": "unknown",
        "latest": null,
        "recent_failures": null
      }
    },
    {
      "archived": false,
      "category": "github-action",
      "compliance": {
        "details": [],
        "label": "unknown",
        "status": "unknown"
      },
      "default_branch": "dev",
      "live_access": "live",
      "live_errors": [],
      "local_path": null,
      "maturity": "dev",
      "name": "vln-devsecops/actions-msvc",
      "notes": [
        "transferred directly from blytkerchan/devsecops-setup-msvc",
        "old location now redirects to the new repo",
        "remains a fork of ilammy/msvc-dev-cmd in the same fork network",
        "published action with existing v1 tag line",
        "{'known internal consumer': 'VlinderSoftware/cpp-jose'}",
        "update any owned workflow uses explicitly; GitHub Actions references should not rely on redirects"
      ],
      "open_issues_count": 0,
      "owner": "vln-devsecops",
      "pushed_at": "2026-04-28T14:21:11Z",
      "role": "migrated",
      "tags": {
        "display": "v1.0.2 / v1.0 / v1",
        "latest_patch": "v1.0.2",
        "moving_major": "v1",
        "moving_minor": "v1.0"
      },
      "updated_at": "2026-04-28T14:29:07Z",
      "url": "https://github.com/vln-devsecops/actions-msvc",
      "user_confirmed_correct": false,
      "visibility": "public",
      "workflow": {
        "health": "green",
        "label": "completed / success",
        "latest": {
          "conclusion": "success",
          "created_at": "2026-04-30T08:32:11Z",
          "event": "schedule",
          "name": "msvc-dev-cmd",
          "status": "completed",
          "updated_at": "2026-04-30T08:33:34Z",
          "url": "https://github.com/vln-devsecops/actions-msvc/actions/runs/25155610871"
        },
        "recent_failures": 2
      }
    },
    {
      "archived": false,
      "category": "github-action",
      "compliance": {
        "details": [],
        "label": "unknown",
        "status": "unknown"
      },
      "default_branch": "dev",
      "live_access": "live",
      "live_errors": [],
      "local_path": null,
      "maturity": "dev",
      "name": "vln-devsecops/actions-build-paper",
      "notes": [
        "transferred directly from blytkerchan/build-paper",
        "old location now redirects to the new repo",
        "published composite action with existing v1 tag line",
        "builds notebooks into PDF and GitHub Pages artifacts",
        "{'known internal consumer': 'VlinderSoftware/paper-event-superschema'}",
        "update any owned workflow uses explicitly; GitHub Actions references should not rely on redirects"
      ],
      "open_issues_count": 0,
      "owner": "vln-devsecops",
      "pushed_at": "2026-04-28T01:40:22Z",
      "role": "migrated",
      "tags": {
        "display": "v1.1.1 / v1.1 / v1",
        "latest_patch": "v1.1.1",
        "moving_major": "v1",
        "moving_minor": "v1.1"
      },
      "updated_at": "2026-04-28T01:40:26Z",
      "url": "https://github.com/vln-devsecops/actions-build-paper",
      "user_confirmed_correct": true,
      "visibility": "public",
      "workflow": {
        "health": "green",
        "label": "completed / success",
        "latest": {
          "conclusion": "success",
          "created_at": "2026-04-28T01:40:25Z",
          "event": "push",
          "name": "ci_validate_action",
          "status": "completed",
          "updated_at": "2026-04-28T01:41:09Z",
          "url": "https://github.com/vln-devsecops/actions-build-paper/actions/runs/25029212476"
        },
        "recent_failures": 0
      }
    },
    {
      "archived": false,
      "category": "github-action",
      "compliance": {
        "details": [],
        "label": "unknown",
        "status": "unknown"
      },
      "default_branch": "main",
      "live_access": "live",
      "live_errors": [],
      "local_path": null,
      "maturity": "main",
      "name": "vln-devsecops/actions-generate-licenses",
      "notes": [
        "transferred directly from VlinderSoftware/generate-licenses",
        "old location now redirects to the new repo",
        "public action used by docxchange to generate licenses.html",
        "{'known internal consumer': 'VlinderSoftware/doxchange'}",
        "update any owned workflow uses explicitly; GitHub Actions references should not rely on redirects"
      ],
      "open_issues_count": 0,
      "owner": "vln-devsecops",
      "pushed_at": "2026-04-28T14:27:59Z",
      "role": "migrated",
      "tags": {
        "display": "v1.2.9 / v1.2 / v1",
        "latest_patch": "v1.2.9",
        "moving_major": "v1",
        "moving_minor": "v1.2"
      },
      "updated_at": "2026-04-28T14:41:18Z",
      "url": "https://github.com/vln-devsecops/actions-generate-licenses",
      "user_confirmed_correct": false,
      "visibility": "public",
      "workflow": {
        "health": "green",
        "label": "completed / success",
        "latest": {
          "conclusion": "success",
          "created_at": "2026-04-28T14:28:04Z",
          "event": "push",
          "name": "Rebuild Distribution",
          "status": "completed",
          "updated_at": "2026-04-28T14:28:33Z",
          "url": "https://github.com/vln-devsecops/actions-generate-licenses/actions/runs/25058829139"
        },
        "recent_failures": 2
      }
    },
    {
      "archived": false,
      "category": "github-action",
      "compliance": {
        "details": [],
        "label": "unknown",
        "status": "unknown"
      },
      "default_branch": "main",
      "live_access": "live",
      "live_errors": [],
      "local_path": null,
      "maturity": "main",
      "name": "vln-devsecops/actions-validate-coverage",
      "notes": [
        "transferred directly from VlinderSoftware/validate-coverage",
        "old location now redirects to the new repo",
        "public coverage validation action",
        "known internal consumers updated across VlinderSoftware repos",
        "update any owned workflow uses explicitly; GitHub Actions references should not rely on redirects"
      ],
      "open_issues_count": 1,
      "owner": "vln-devsecops",
      "pushed_at": "2026-04-28T01:44:48Z",
      "role": "migrated",
      "tags": {
        "display": "v1.0.17 / v1.0 / v1",
        "latest_patch": "v1.0.17",
        "moving_major": "v1",
        "moving_minor": "v1.0"
      },
      "updated_at": "2026-04-28T01:44:51Z",
      "url": "https://github.com/vln-devsecops/actions-validate-coverage",
      "user_confirmed_correct": false,
      "visibility": "public",
      "workflow": {
        "health": "neutral",
        "label": "completed / skipped",
        "latest": {
          "conclusion": "skipped",
          "created_at": "2026-04-28T01:44:50Z",
          "event": "push",
          "name": "Auto-release for Dependabot Updates",
          "status": "completed",
          "updated_at": "2026-04-28T01:44:51Z",
          "url": "https://github.com/vln-devsecops/actions-validate-coverage/actions/runs/25029342759"
        },
        "recent_failures": 0
      }
    },
    {
      "archived": false,
      "category": "github-action",
      "compliance": {
        "details": [],
        "label": "unknown",
        "status": "unknown"
      },
      "default_branch": "main",
      "live_access": "live",
      "live_errors": [],
      "local_path": null,
      "maturity": "main",
      "name": "vln-devsecops/actions-autoversion",
      "notes": [
        "transferred directly from VlinderSoftware/autoversion",
        "old location now redirects to the new repo",
        "public action for repository version automation",
        "{'known internal consumer': 'vln-devsecops/actions-generate-licenses'}",
        "update any owned workflow uses explicitly; GitHub Actions references should not rely on redirects"
      ],
      "open_issues_count": 2,
      "owner": "vln-devsecops",
      "pushed_at": "2026-04-29T11:16:58Z",
      "role": "migrated",
      "tags": {
        "display": "v1.1.2 / v1.1 / v1",
        "latest_patch": "v1.1.2",
        "moving_major": "v1",
        "moving_minor": "v1.1"
      },
      "updated_at": "2026-04-29T11:16:15Z",
      "url": "https://github.com/vln-devsecops/actions-autoversion",
      "user_confirmed_correct": false,
      "visibility": "public",
      "workflow": {
        "health": "green",
        "label": "completed / success",
        "latest": {
          "conclusion": "success",
          "created_at": "2026-04-29T11:16:56Z",
          "event": "push",
          "name": "Test Autoversion Action",
          "status": "completed",
          "updated_at": "2026-04-29T11:17:11Z",
          "url": "https://github.com/vln-devsecops/actions-autoversion/actions/runs/25105765076"
        },
        "recent_failures": 1
      }
    },
    {
      "archived": false,
      "category": "infrastructure",
      "compliance": {
        "details": [],
        "label": "unknown",
        "status": "unknown"
      },
      "default_branch": "main",
      "live_access": "manifest-only",
      "live_errors": [
        "gh: Not Found (HTTP 404)",
        "gh: Not Found (HTTP 404)",
        "gh: Not Found (HTTP 404)"
      ],
      "local_path": null,
      "maturity": "main",
      "name": "vln-devsecops/terraform-modules",
      "notes": [
        "intended home for extracted reusable Terraform modules and infra patterns",
        "extracted modules currently include modules/aws/deployment_bucket, modules/aws/dynamodb, modules/aws/mail, and modules/aws/lambda",
        "modules/aws/lambda was published on main on the v0.4 line; the current immutable patch tag is v0.4.2 and the moving tag is v0.4",
        "the shared lambda module uses the coppice shape as the base while preserving docxchange-compatible archive naming by default",
        "lambda coverage now includes terraform test contract checks, an executable example, and a provider-backed docxchange compatibility fixture under tests/aws/lambda/docxchange_compat"
      ],
      "open_issues_count": null,
      "owner": "vln-devsecops",
      "pushed_at": null,
      "role": "target",
      "tags": {
        "display": "none",
        "latest_patch": null,
        "moving_major": null,
        "moving_minor": null
      },
      "updated_at": null,
      "url": "https://github.com/vln-devsecops/terraform-modules",
      "user_confirmed_correct": false,
      "visibility": "private",
      "workflow": {
        "health": "unknown",
        "label": "unknown",
        "latest": null,
        "recent_failures": null
      }
    },
    {
      "archived": false,
      "category": "application",
      "compliance": {
        "details": [],
        "label": "unknown",
        "status": "unknown"
      },
      "default_branch": "dev",
      "live_access": "manifest-only",
      "live_errors": [
        "gh: Not Found (HTTP 404)",
        "gh: Not Found (HTTP 404)",
        "gh: Not Found (HTTP 404)"
      ],
      "local_path": null,
      "maturity": "dev",
      "name": "VlinderSoftware/doxchange",
      "notes": [
        "project-owned infra structure is the precedent for app-specific infra boundaries",
        "infra directory contains reusable terraform modules and automation worth extracting",
        "reusable workflows may also be candidates for extraction",
        "review .github/actions/build-lambda and .github/actions/build-node for possible extraction if they are reusable beyond docxchange"
      ],
      "open_issues_count": null,
      "owner": "VlinderSoftware",
      "pushed_at": null,
      "role": "extract-shared-parts",
      "tags": {
        "display": "none",
        "latest_patch": null,
        "moving_major": null,
        "moving_minor": null
      },
      "updated_at": null,
      "url": "https://github.com/VlinderSoftware/doxchange",
      "user_confirmed_correct": false,
      "visibility": "private",
      "workflow": {
        "health": "unknown",
        "label": "unknown",
        "latest": null,
        "recent_failures": null
      }
    },
    {
      "archived": false,
      "category": "infrastructure",
      "compliance": {
        "details": [],
        "label": "unknown",
        "status": "unknown"
      },
      "default_branch": "dev",
      "live_access": "manifest-only",
      "live_errors": [
        "gh: Not Found (HTTP 404)",
        "gh: Not Found (HTTP 404)",
        "gh: Not Found (HTTP 404)"
      ],
      "local_path": null,
      "maturity": "dev",
      "name": "vln-polaris/terraform-aws-coppice",
      "notes": [
        "active application infrastructure",
        "requires separate analysis to isolate reusable modules and patterns",
        "app-specific infrastructure should remain with the project"
      ],
      "open_issues_count": null,
      "owner": "vln-polaris",
      "pushed_at": null,
      "role": "extract-shared-parts",
      "tags": {
        "display": "none",
        "latest_patch": null,
        "moving_major": null,
        "moving_minor": null
      },
      "updated_at": null,
      "url": "https://github.com/vln-polaris/terraform-aws-coppice",
      "user_confirmed_correct": false,
      "visibility": "private",
      "workflow": {
        "health": "unknown",
        "label": "unknown",
        "latest": null,
        "recent_failures": null
      }
    },
    {
      "archived": false,
      "category": "automation",
      "compliance": {
        "details": [],
        "label": "unknown",
        "status": "unknown"
      },
      "default_branch": "dev",
      "live_access": "manifest-only",
      "live_errors": [
        "gh: Not Found (HTTP 404)",
        "gh: Not Found (HTTP 404)",
        "gh: Not Found (HTTP 404)"
      ],
      "local_path": null,
      "maturity": "dev",
      "name": "vln-devsecops/automation-books",
      "notes": [
        "initialized on dev with lightweight compliance workflows",
        "intended home for shared book build and editorial automation",
        "currently includes a first shared make/book-build.mk include extracted from common pandoc book build patterns"
      ],
      "open_issues_count": null,
      "owner": "vln-devsecops",
      "pushed_at": null,
      "role": "target",
      "tags": {
        "display": "none",
        "latest_patch": null,
        "moving_major": null,
        "moving_minor": null
      },
      "updated_at": null,
      "url": "https://github.com/vln-devsecops/automation-books",
      "user_confirmed_correct": false,
      "visibility": "private",
      "workflow": {
        "health": "unknown",
        "label": "unknown",
        "latest": null,
        "recent_failures": null
      }
    },
    {
      "archived": false,
      "category": "books",
      "compliance": {
        "details": [],
        "label": "unknown",
        "status": "unknown"
      },
      "default_branch": "dev",
      "live_access": "manifest-only",
      "live_errors": [
        "gh: Not Found (HTTP 404)",
        "gh: Not Found (HTTP 404)",
        "gh: Not Found (HTTP 404)"
      ],
      "local_path": null,
      "maturity": "dev",
      "name": "blytkerchan/workspace-books",
      "notes": [
        "umbrella workspace for book writing",
        "useful for finding cross-book automation patterns",
        "now consumes vln-devsecops/automation-books as a dev-branch submodule and workspace folder",
        "includes a sourceable bootstrap script that syncs submodules and checks the local/devcontainer book toolchain",
        "workspace devcontainer now runs the same bootstrap flow automatically after container creation"
      ],
      "open_issues_count": null,
      "owner": "blytkerchan",
      "pushed_at": null,
      "role": "inventory-reference",
      "tags": {
        "display": "none",
        "latest_patch": null,
        "moving_major": null,
        "moving_minor": null
      },
      "updated_at": null,
      "url": "https://github.com/blytkerchan/workspace-books",
      "user_confirmed_correct": false,
      "visibility": "private",
      "workflow": {
        "health": "unknown",
        "label": "unknown",
        "latest": null,
        "recent_failures": null
      }
    },
    {
      "archived": false,
      "category": "books",
      "compliance": {
        "details": [],
        "label": "unknown",
        "status": "unknown"
      },
      "default_branch": "main",
      "live_access": "manifest-only",
      "live_errors": [
        "gh: Not Found (HTTP 404)",
        "gh: Not Found (HTTP 404)",
        "gh: Not Found (HTTP 404)"
      ],
      "local_path": null,
      "maturity": "main",
      "name": "blytkerchan/book-apoptotic-cascade",
      "notes": [],
      "open_issues_count": null,
      "owner": "blytkerchan",
      "pushed_at": null,
      "role": "extract-shared-parts",
      "tags": {
        "display": "none",
        "latest_patch": null,
        "moving_major": null,
        "moving_minor": null
      },
      "updated_at": null,
      "url": "https://github.com/blytkerchan/book-apoptotic-cascade",
      "user_confirmed_correct": false,
      "visibility": "private",
      "workflow": {
        "health": "unknown",
        "label": "unknown",
        "latest": null,
        "recent_failures": null
      }
    },
    {
      "archived": false,
      "category": "books",
      "compliance": {
        "details": [],
        "label": "unknown",
        "status": "unknown"
      },
      "default_branch": "main",
      "live_access": "manifest-only",
      "live_errors": [
        "gh: Not Found (HTTP 404)",
        "gh: Not Found (HTTP 404)",
        "gh: Not Found (HTTP 404)"
      ],
      "local_path": null,
      "maturity": "main",
      "name": "blytkerchan/book-observer",
      "notes": [],
      "open_issues_count": null,
      "owner": "blytkerchan",
      "pushed_at": null,
      "role": "extract-shared-parts",
      "tags": {
        "display": "none",
        "latest_patch": null,
        "moving_major": null,
        "moving_minor": null
      },
      "updated_at": null,
      "url": "https://github.com/blytkerchan/book-observer",
      "user_confirmed_correct": false,
      "visibility": "private",
      "workflow": {
        "health": "unknown",
        "label": "unknown",
        "latest": null,
        "recent_failures": null
      }
    },
    {
      "archived": false,
      "category": "books",
      "compliance": {
        "details": [],
        "label": "unknown",
        "status": "unknown"
      },
      "default_branch": "main",
      "live_access": "manifest-only",
      "live_errors": [
        "gh: Not Found (HTTP 404)",
        "gh: Not Found (HTTP 404)",
        "gh: Not Found (HTTP 404)"
      ],
      "local_path": null,
      "maturity": "main",
      "name": "blytkerchan/book-cpp4theselftaught",
      "notes": [],
      "open_issues_count": null,
      "owner": "blytkerchan",
      "pushed_at": null,
      "role": "extract-shared-parts",
      "tags": {
        "display": "none",
        "latest_patch": null,
        "moving_major": null,
        "moving_minor": null
      },
      "updated_at": null,
      "url": "https://github.com/blytkerchan/book-cpp4theselftaught",
      "user_confirmed_correct": false,
      "visibility": "private",
      "workflow": {
        "health": "unknown",
        "label": "unknown",
        "latest": null,
        "recent_failures": null
      }
    },
    {
      "archived": false,
      "category": "books",
      "compliance": {
        "details": [],
        "label": "unknown",
        "status": "unknown"
      },
      "default_branch": "main",
      "live_access": "manifest-only",
      "live_errors": [
        "gh: Not Found (HTTP 404)",
        "gh: Not Found (HTTP 404)",
        "gh: Not Found (HTTP 404)"
      ],
      "local_path": null,
      "maturity": "main",
      "name": "blytkerchan/book-security4theselftaught",
      "notes": [
        "older tex-based book structure",
        "less obviously aligned with the newer pandoc automation stack"
      ],
      "open_issues_count": null,
      "owner": "blytkerchan",
      "pushed_at": null,
      "role": "inventory-reference",
      "tags": {
        "display": "none",
        "latest_patch": null,
        "moving_major": null,
        "moving_minor": null
      },
      "updated_at": null,
      "url": "https://github.com/blytkerchan/book-security4theselftaught",
      "user_confirmed_correct": false,
      "visibility": "private",
      "workflow": {
        "health": "unknown",
        "label": "unknown",
        "latest": null,
        "recent_failures": null
      }
    },
    {
      "archived": false,
      "category": "books",
      "compliance": {
        "details": [],
        "label": "unknown",
        "status": "unknown"
      },
      "default_branch": "master",
      "live_access": "manifest-only",
      "live_errors": [
        "gh: Not Found (HTTP 404)",
        "gh: Not Found (HTTP 404)",
        "gh: Not Found (HTTP 404)"
      ],
      "local_path": null,
      "maturity": "master",
      "name": "blytkerchan/book-git4theselftaught",
      "notes": [
        "older tex-based book structure",
        "useful as a legacy contrast to the newer automation-heavy books"
      ],
      "open_issues_count": null,
      "owner": "blytkerchan",
      "pushed_at": null,
      "role": "inventory-reference",
      "tags": {
        "display": "none",
        "latest_patch": null,
        "moving_major": null,
        "moving_minor": null
      },
      "updated_at": null,
      "url": "https://github.com/blytkerchan/book-git4theselftaught",
      "user_confirmed_correct": false,
      "visibility": "private",
      "workflow": {
        "health": "unknown",
        "label": "unknown",
        "latest": null,
        "recent_failures": null
      }
    },
    {
      "archived": false,
      "category": "website-blog",
      "compliance": {
        "details": [],
        "label": "unknown",
        "status": "unknown"
      },
      "default_branch": "dev",
      "live_access": "live",
      "live_errors": [],
      "local_path": null,
      "maturity": "dev",
      "name": "blytkerchan/applied-paranoia.com",
      "notes": [
        "current deploy automation is AWS-specific and should not be treated as the default abstraction for future Azure or GCP sites"
      ],
      "open_issues_count": 0,
      "owner": "blytkerchan",
      "pushed_at": "2026-04-28T01:25:28Z",
      "role": "extract-shared-parts",
      "tags": {
        "display": "v20210827-1",
        "latest_patch": "v20210827-1",
        "moving_major": null,
        "moving_minor": null
      },
      "updated_at": "2026-04-28T01:25:32Z",
      "url": "https://github.com/blytkerchan/applied-paranoia.com",
      "user_confirmed_correct": false,
      "visibility": "public",
      "workflow": {
        "health": "green",
        "label": "completed / success",
        "latest": {
          "conclusion": "success",
          "created_at": "2026-04-28T01:25:31Z",
          "event": "push",
          "name": "Deploy",
          "status": "completed",
          "updated_at": "2026-04-28T01:26:49Z",
          "url": "https://github.com/blytkerchan/applied-paranoia.com/actions/runs/25028770178"
        },
        "recent_failures": 1
      }
    },
    {
      "archived": false,
      "category": "website",
      "compliance": {
        "details": [],
        "label": "unknown",
        "status": "unknown"
      },
      "default_branch": "master",
      "live_access": "manifest-only",
      "live_errors": [
        "gh: Not Found (HTTP 404)",
        "gh: Not Found (HTTP 404)",
        "gh: Not Found (HTTP 404)"
      ],
      "local_path": null,
      "maturity": "master",
      "name": "VlinderSoftware/vlinder.ca",
      "notes": [
        "current deployment extraction candidate is AWS-specific; future Azure or GCP patterns may belong in separate or more generalized automation"
      ],
      "open_issues_count": null,
      "owner": "VlinderSoftware",
      "pushed_at": null,
      "role": "extract-shared-parts",
      "tags": {
        "display": "none",
        "latest_patch": null,
        "moving_major": null,
        "moving_minor": null
      },
      "updated_at": null,
      "url": "https://github.com/VlinderSoftware/vlinder.ca",
      "user_confirmed_correct": false,
      "visibility": "private",
      "workflow": {
        "health": "unknown",
        "label": "unknown",
        "latest": null,
        "recent_failures": null
      }
    },
    {
      "archived": false,
      "category": "website-blog",
      "compliance": {
        "details": [],
        "label": "unknown",
        "status": "unknown"
      },
      "default_branch": "master",
      "live_access": "live",
      "live_errors": [],
      "local_path": null,
      "maturity": "master",
      "name": "blytkerchan/blytkerchan.github.io",
      "notes": [],
      "open_issues_count": 1,
      "owner": "blytkerchan",
      "pushed_at": "2026-04-28T01:25:29Z",
      "role": "extract-shared-parts",
      "tags": {
        "display": "none",
        "latest_patch": null,
        "moving_major": null,
        "moving_minor": null
      },
      "updated_at": "2026-04-28T01:25:33Z",
      "url": "https://github.com/blytkerchan/blytkerchan.github.io",
      "user_confirmed_correct": false,
      "visibility": "public",
      "workflow": {
        "health": "green",
        "label": "completed / success",
        "latest": {
          "conclusion": "success",
          "created_at": "2026-04-28T01:25:31Z",
          "event": "dynamic",
          "name": "pages build and deployment",
          "status": "completed",
          "updated_at": "2026-04-28T01:26:44Z",
          "url": "https://github.com/blytkerchan/blytkerchan.github.io/actions/runs/25028770125"
        },
        "recent_failures": 3
      }
    },
    {
      "archived": false,
      "category": "website-tool",
      "compliance": {
        "details": [],
        "label": "unknown",
        "status": "unknown"
      },
      "default_branch": "dev",
      "live_access": "manifest-only",
      "live_errors": [
        "gh: Not Found (HTTP 404)",
        "gh: Not Found (HTTP 404)",
        "gh: Not Found (HTTP 404)"
      ],
      "local_path": null,
      "maturity": "dev",
      "name": "blytkerchan/blog-copy-editor",
      "notes": [],
      "open_issues_count": null,
      "owner": "blytkerchan",
      "pushed_at": null,
      "role": "extract-shared-parts",
      "tags": {
        "display": "none",
        "latest_patch": null,
        "moving_major": null,
        "moving_minor": null
      },
      "updated_at": null,
      "url": "https://github.com/blytkerchan/blog-copy-editor",
      "user_confirmed_correct": false,
      "visibility": "private",
      "workflow": {
        "health": "unknown",
        "label": "unknown",
        "latest": null,
        "recent_failures": null
      }
    },
    {
      "archived": false,
      "category": "website-app",
      "compliance": {
        "details": [],
        "label": "unknown",
        "status": "unknown"
      },
      "default_branch": "main",
      "live_access": "live",
      "live_errors": [],
      "local_path": null,
      "maturity": "main",
      "name": "blytkerchan/arxiv-digest",
      "notes": [],
      "open_issues_count": 1,
      "owner": "blytkerchan",
      "pushed_at": "2026-04-15T15:47:40Z",
      "role": "extract-shared-parts",
      "tags": {
        "display": "none",
        "latest_patch": null,
        "moving_major": null,
        "moving_minor": null
      },
      "updated_at": "2026-04-12T13:56:11Z",
      "url": "https://github.com/blytkerchan/arxiv-digest",
      "user_confirmed_correct": false,
      "visibility": "public",
      "workflow": {
        "health": "green",
        "label": "completed / success",
        "latest": {
          "conclusion": "success",
          "created_at": "2026-04-29T15:47:30Z",
          "event": "dynamic",
          "name": "npm_and_yarn in / for wrangler - Update #1341895405",
          "status": "completed",
          "updated_at": "2026-04-29T15:48:42Z",
          "url": "https://github.com/blytkerchan/arxiv-digest/actions/runs/25118993841"
        },
        "recent_failures": 0
      }
    }
  ],
  "source_repo": "vln-devsecops/operations",
  "summary": {
    "attention_item_count": 8,
    "category_counts": {
      "application": 1,
      "automation": 1,
      "books": 6,
      "devsecops": 2,
      "github-action": 5,
      "infrastructure": 2,
      "org-profile": 1,
      "website": 1,
      "website-app": 1,
      "website-blog": 2,
      "website-tool": 1,
      "workspace": 1
    },
    "module_count": 7,
    "owner_count": 4,
    "owner_counts": {
      "VlinderSoftware": 2,
      "blytkerchan": 10,
      "vln-devsecops": 11,
      "vln-polaris": 1
    },
    "private_repo_count": 15,
    "public_repo_count": 9,
    "repo_count": 24,
    "role_counts": {
      "extract-shared-parts": 10,
      "inventory-reference": 3,
      "migrated": 7,
      "target": 4
    },
    "unconfirmed_repo_count": 22,
    "workflow_failing_count": 0,
    "workflow_green_count": 7,
    "workflow_pending_count": 1,
    "workflow_unknown_count": 15
  }
}
