Skip to content

Compliance audit — 2026-10-16 #1343

Open

Description

@don-petry

Compliance Audit — 2026-10-16

This umbrella issue tracks all findings from the automated compliance audit run on 2026-10-16.
Findings are grouped by remediation category. Address each category together to avoid duplicate agent PRs.

Total findings: 67 across 13 repositories


Remediation Work Breakdown

Repository Settings (8 finding(s))

Remediation: apply-repo-settings.sh
Affected repos: software-factory, software-factory-canary

Repo Check Severity
software-factory allow_auto_merge warning
software-factory delete_branch_on_merge warning
software-factory has_wiki warning
software-factory-canary allow_auto_merge warning
software-factory-canary delete_branch_on_merge warning
software-factory-canary has_wiki warning
software-factory-canary has_discussions error
software-factory-canary missing-codeowners error

Push Protection & Secret Scanning (3 finding(s))

Remediation: apply-repo-settings.sh (security_and_analysis) + per-repo ci.yml and .gitignore
Affected repos: .github-private, software-factory-canary

Repo Check Severity
.github-private open_secret_alerts error
software-factory-canary secret_scan_ci_job_present error
software-factory-canary gitignore_baseline error

Repository Rulesets (15 finding(s))

Remediation: apply-rulesets.sh
Affected repos: .github-private, broodly, google-app-scripts, markets, software-factory, software-factory-canary

Repo Check Severity
software-factory missing-pr-quality error
software-factory missing-code-quality error
software-factory ruleset-bypass-orgadmin-main error
software-factory ruleset-bypass-dependabot-main error
software-factory legacy-ruleset-main error
.github-private ruleset-drift-code-quality-strict_required_status_checks_policy error
broodly ruleset-drift-pr-quality-require_code_owner_review error
broodly ruleset-drift-pr-quality-dismiss_stale_reviews_on_push error
broodly ruleset-drift-pr-quality-require_last_push_approval error
markets ruleset-bypass-orgadmin-code-quality error
markets ruleset-bypass-dependabot-code-quality error
google-app-scripts ruleset-drift-pr-quality-dismiss_stale_reviews_on_push error
google-app-scripts ruleset-drift-pr-quality-require_last_push_approval error
software-factory-canary missing-pr-quality error
software-factory-canary missing-code-quality error

Workflows (32 finding(s))

Remediation: per-repo workflow additions
Affected repos: .github-private, ContentTwin, TalkTerm, bmad-bgreat-suite, broodminder-data, empower-personal-dashboard, google-app-scripts, incubator, repo-template, software-factory, software-factory-canary

Repo Check Severity
software-factory missing-dev-lead.yml error
software-factory missing-dependabot-automerge.yml error
software-factory missing-dependency-audit.yml error
software-factory missing-agent-shield.yml error
software-factory missing-pr-review-mention.yml error
software-factory missing-feature-ideation.yml error
software-factory missing-pr-auto-review.yml error
software-factory missing-initiative-driver.yml error
.github-private non-stub-agent-shield.yml error
empower-personal-dashboard stub-surface-drift-persona-mention.yml-on error
empower-personal-dashboard verbatim-stub-drift-initiative-driver.yml error
broodminder-data stub-surface-drift-persona-mention.yml-on error
broodminder-data verbatim-stub-drift-initiative-driver.yml error
incubator stub-surface-drift-persona-mention.yml-on error
incubator verbatim-stub-drift-initiative-driver.yml error
google-app-scripts verbatim-stub-drift-initiative-driver.yml error
ContentTwin stub-surface-drift-agent-shield.yml-on error
ContentTwin verbatim-stub-drift-initiative-driver.yml error
repo-template stub-surface-drift-persona-mention.yml-on error
repo-template verbatim-stub-drift-initiative-driver.yml error
TalkTerm verbatim-stub-drift-initiative-driver.yml error
bmad-bgreat-suite verbatim-stub-drift-initiative-driver.yml error
software-factory-canary missing-ci.yml error
software-factory-canary missing-sonarcloud.yml error
software-factory-canary missing-dev-lead.yml error
software-factory-canary missing-dependabot-automerge.yml error
software-factory-canary missing-dependency-audit.yml error
software-factory-canary missing-agent-shield.yml error
software-factory-canary missing-pr-review-mention.yml error
software-factory-canary missing-feature-ideation.yml error
software-factory-canary missing-pr-auto-review.yml error
software-factory-canary missing-initiative-driver.yml error

Dependabot Configuration (2 finding(s))

Remediation: per-repo .github/dependabot.yml
Affected repos: software-factory, software-factory-canary

Repo Check Severity
software-factory missing-config error
software-factory-canary missing-config error

Agent Standards (CLAUDE.md / AGENTS.md / copilot-setup-steps.yml) (7 finding(s))

Remediation: per-repo doc and workflow additions
Affected repos: .github-private, software-factory, software-factory-canary

Repo Check Severity
software-factory missing-copilot-setup-steps warning
software-factory missing-copilot-instructions error
.github-private agents-md-missing-org-ref error
software-factory-canary missing-claude-md error
software-factory-canary missing-agents-md error
software-factory-canary missing-copilot-setup-steps warning
software-factory-canary missing-copilot-instructions error

Generated by the weekly compliance audit on 2026-10-16 17:37 UTC.
Address each remediation category as a single coordinated PR to avoid duplicate agent work.

Activity

  1. don-petry commented on Oct 16, 2026

    @don-petry
    ContributorAuthor

    Dev-Lead Implementation Plan

    Issue: #1343 — Compliance audit — 2026-10-16

    Scope

    Triage only. All 67 findings are real drift in other repos, and none of them come from a defect in combsmith/.github's audit or deploy tooling. That means no source change in this repo is warranted. The precedent is #1237, which changed this repo only to fix the audit tooling itself.

    Triage (checked against the live repos and the previous audit #1265)

    Group Finding(s) Verdict Remediation (outside this repo)
    New repos software-factory (created 2026-10-11) and software-factory-canary (created 2026-10-11, "throwaway") 49 of the 57 new findings: settings, rulesets, missing stubs, dependabot, CLAUDE.md/AGENTS.md/copilot Real. These repos were never bootstrapped. Run scripts/bootstrap-new-repo.sh (repo settings, rulesets, labels, ring), then the standards deploy sweep (standards-deploy.yml) for the stubs. Whether the throwaway canary should be excluded from the audit is a policy call for a maintainer. compliance-audit.sh has no repo-exclusion mechanism today.
    verbatim-stub-drift-initiative-driver.yml (9 repos) Deployed stubs still use inline -f target_repo=${{ github.repository }} and (TalkTerm, bmad-bgreat-suite) predate the rate-limit gate Real. The template moved target_repo to an env var (zizmor template-injection) and the fleet hasn't been re-synced yet. Standards deploy sweep (deploy-standard-workflows.sh).
    stub-surface-drift-persona-mention.yml-on (4 repos) Deployed stubs lack the pull_request: [opened, ready_for_review, reopened] trigger the template now carries (#1165) Real. Rollout lag. Standards deploy sweep. No with: forward is involved, so the channel-pin guardrail (#1052) doesn't apply.
    .github-private non-stub-agent-shield.yml Pins agent-shield/v2-stable. .github-private is ring0 for agent-shield, so the expected pin is agent-shield/v2-ring0. Real under the F5 rule (#861): a wrong-tier v-form is drift. Human PR. agent-shield.yml is an immutable file (standards/workflow-exemptions.json, requires_human_review).
    ContentTwin stub-surface-drift-agent-shield.yml-on Missing merge_group: trigger Real. Same immutable file. Human PR re-syncing standards/workflows/agent-shield.yml.
    Ruleset drift and bypass (.github-private, broodly, markets, google-app-scripts) Carried over from #1265 Real apply-rulesets.sh / fix-ruleset-bypass.sh with org-admin credentials.
    .github-private open_secret_alerts New Real Needs a human to triage the secret-scanning alerts (rotate or revoke, then close). Agents can't do this.
    .github-private agents-md-missing-org-ref Carried over Real PR in .github-private.

    Implementation Checklist

    Tests to Write

    • None. There's no behaviour change in this repo, so the TDD exception applies.

    Test Command

    bash .dev-lead/scripts/dev-lead-lint.sh (lint-only verification of an unchanged tree)

  2. added
    dev-leadFor dev-lead agent pickup
    and removed
    dev-leadFor dev-lead agent pickup
    on Oct 21, 2026
  3. don-petry commented on Oct 21, 2026

    @don-petry
    ContributorAuthor

    Dev-Lead: Progress (in progress — not yet durable)

    Provisional. Nothing is pushed yet. Treat these notes as intent, not delivered results.

    Plan Execution (intended)

    • I re-checked the 2026-10-16 triage plan against main (43ec2a1) and the live repos on 2026-10-21. Its conclusion still holds: every finding is downstream drift, and no file in combsmith/.github needs to change.
    • Spot checks done again:
    • software-factory-canary was created 2026-10-11 and describes itself as a "Throwaway repo... Nothing here is depended on". compliance-audit.sh still has no way to exclude a repo, so it gets audited like any other. Excluding it (or archiving it) is a maintainer decision.

    Remediation still needed (outside this repo)

    • software-factory and software-factory-canary: run scripts/bootstrap-new-repo.sh, then the standards deploy sweep.
    • initiative-driver and persona-mention stub drift: standards deploy sweep (deploy-standard-workflows.sh).
    • agent-shield.yml in .github-private and ContentTwin: human PR. This file is immutable and needs human review.
    • Ruleset drift and bypass: apply-rulesets.sh / fix-ruleset-bypass.sh with org-admin credentials.
    • .github-private open_secret_alerts: a human has to triage these and rotate the secrets.

    Files touched (this workspace, not yet pushed)

    • None.

    Notes

    I skipped TDD because nothing in this repo changes behaviour. dev-lead-lint.sh ran clean on the unchanged tree.

  4. added
    dev-leadFor dev-lead agent pickup
    and removed
    dev-leadFor dev-lead agent pickup
    on Oct 22, 2026
  5. don-petry commented on Oct 22, 2026

    @don-petry
    ContributorAuthor

    Dev-Lead: Progress (in progress — not yet durable)

    Provisional. Nothing is pushed yet. Treat these notes as intent, not delivered results.

    Plan Execution (intended)

    • Re-run on 2026-10-22. main is still at 43ec2a1, the same commit as the 2026-10-21 re-check, so the earlier triage still applies: every finding is downstream drift or needs a human or org-admin action. No file in combsmith/.github needs to change for this issue.

    New since the last note

    Files touched (this workspace, not yet pushed)

    • None.

    Notes

    I skipped TDD because nothing in this repo changes behaviour. dev-lead-lint.sh ran clean on the unchanged tree.

  6. added
    dev-leadFor dev-lead agent pickup
    and removed
    dev-leadFor dev-lead agent pickup
    on Oct 22, 2026
  7. don-petry commented on Oct 22, 2026

    @don-petry
    ContributorAuthor

    Dev-Lead: Progress (in progress — not yet durable)

    Provisional. Nothing is pushed yet. Treat these notes as intent, not delivered results.

    Plan Execution (intended)

    Files touched (this workspace, not yet pushed)

    • None.

    Notes

    I skipped TDD because nothing in this repo changes behaviour. dev-lead-lint.sh ran clean on the unchanged tree. What's still needed outside this repo is unchanged from the 2026-10-21 note: the deploy sweep for the stub drift, a human PR for agent-shield.yml, apply-rulesets.sh/fix-ruleset-bypass.sh run with org-admin credentials, and triage of the .github-private secret alerts.

  8. added
    dev-leadFor dev-lead agent pickup
    and removed
    dev-leadFor dev-lead agent pickup
    on Oct 22, 2026
  9. 58 remaining items

  10. don-petry commented on Oct 28, 2026

    @don-petry
    ContributorAuthor

    Dev-Lead Implementation Plan + Progress (in progress — not yet durable)

    Provisional. Nothing will be pushed from this run.

    Scope

    Re-checked on 2026-10-28. Nothing has changed since the 2026-10-27 check. main is still at 1ea9ee1, and no file in combsmith/.github needs to change for this issue.

    Implementation Checklist / Tests

    • None. There is no behaviour change in this repo, so I skipped TDD.

    Test Command

    bash .dev-lead/scripts/dev-lead-lint.sh passes on the unchanged tree.

    Maintainer actions still outstanding (unchanged)

    1. Exclude combsmith/software-factory from the compliance audit, the scorecard and the fleet monitor #1352
    2. Merge chore: sync 3 org-standard workflow stub(s) from combsmith/.github TalkTerm#551
    3. Run scripts/apply-rulesets.sh / fix-ruleset-bypass.sh with an org-admin token for broodly, markets and google-app-scripts
    4. Open a per-repo PR in .github-private (thin-stub agent-shield.yml, AGENTS.md org reference, code-quality ruleset), and triage its open secret-scanning alerts

    Suggestion: pause dev-lead re-dispatch on this umbrella until #1352 lands. Further runs will keep reaching the same no-op result.

  11. added
    dev-leadFor dev-lead agent pickup
    and removed
    dev-leadFor dev-lead agent pickup
    on Oct 28, 2026
  12. don-petry commented on Oct 28, 2026

    @don-petry
    ContributorAuthor

    Dev-Lead: implementation deferred — automation PR queue is full

    No pull request was opened for issue #1343. The org-wide
    open-automation-PR queue is currently at its signed-off cap (see
    standards/pr-limits.json in combsmith/.github).

    This issue stays labeled dev-lead and will be re-attempted automatically once
    the queue drains — no action is required.

  13. added
    dev-leadFor dev-lead agent pickup
    and removed
    dev-leadFor dev-lead agent pickup
    on Oct 28, 2026
  14. don-petry commented on Oct 28, 2026

    @don-petry
    ContributorAuthor

    Dev-Lead Implementation Plan + Progress (in progress — not yet durable)

    Provisional. Nothing will be pushed from this run.

    Scope

    I re-checked on 2026-10-28 (second run today) and the result is the same: no change in combsmith/.github is needed for this issue. main is at 548b9e9. The only new commit is a dependency bump, which has nothing to do with these findings.

    Implementation Checklist / Tests

    • None. There is no behaviour change in this repo, so I skipped TDD.

    Test Command

    bash .dev-lead/scripts/dev-lead-lint.sh passes on the unchanged tree.

    Maintainer actions still outstanding

    These are unchanged from the earlier comment: land #1352, merge TalkTerm#551, run the ruleset scripts with an org-admin token, and remediate .github-private per repo.

    Recommendation: remove the dev-lead label from this umbrella until #1352 lands. Every re-dispatch comes back with the same no-op result.

  15. added
    dev-leadFor dev-lead agent pickup
    and removed
    dev-leadFor dev-lead agent pickup
    on Oct 28, 2026
  16. don-petry commented on Oct 28, 2026

    @don-petry
    ContributorAuthor

    Dev-Lead Plan + Progress (in progress, not yet durable)

    Provisional. This run will push nothing.

    Scope

    I re-checked on 2026-10-28 (third run) and nothing has changed: this issue needs no change in combsmith/.github. main is at acd8988, a mention-router security fix (#1413) that has nothing to do with these findings.

    Implementation Checklist / Tests

    • None. There is no behaviour change in this repo, so I skipped TDD.

    Notes

    bash .dev-lead/scripts/dev-lead-lint.sh runs clean on the unchanged tree (local check only).

    Recommendation (repeated): remove the dev-lead label from this umbrella until #1352 lands. Every re-dispatch reaches the same no-op result.

  17. added
    dev-leadFor dev-lead agent pickup
    and removed
    dev-leadFor dev-lead agent pickup
    on Oct 29, 2026
  18. don-petry commented on Oct 29, 2026

    @don-petry
    ContributorAuthor

    Dev-Lead Implementation Plan

    Issue: #1343 — Compliance audit — 2026-10-16

    Triage

    Of the 67 findings, 43 are on software-factory (19) and software-factory-canary (24). Both repos are outside the org standard by the Maintainer's recorded decision. They are already on NOT_SERVED_REPOS in deploy-standard-workflows.sh (#1334), and #1352 asks for the audit to exclude them. That PR noted the audit "does not read this list". So these 43 findings are not remediable in those repos. The fix that belongs in this repo is to make the audit honour the same list.

    The other 24 findings need no source change here. They need work in other repos or an org-admin token:

    • Rulesets (.github-private, broodly, markets, google-app-scripts): scripts/apply-rulesets.sh --repo combsmith/<repo> with an admin token. standards/rulesets/*.json is already correct.
    • Secret alert (.github-private open_secret_alerts): a person has to triage it in that repo.
    • Workflows: the verbatim-stub-drift-initiative-driver.yml (8 repos) and stub-surface-drift-* (5) findings are what the standards-deploy sweep re-syncs. .github-private non-stub-agent-shield.yml needs a per-repo PR.
    • Agent standards (.github-private agents-md-missing-org-ref): a per-repo doc edit.

    Implementation Checklist

    • scripts/lib/not-served-repos.sh (new): one shared source of NOT_SERVED_REPOS and is_not_served_repo
    • scripts/deploy-standard-workflows.sh: source the lib instead of defining the list inline (no change in behaviour)
    • scripts/compliance-audit.sh: source the lib and drop not-served repos from the org listing before the audit loop and the issue-management loop. No findings, no issues and no label provisioning for them.
    • standards/workflow-exemptions.json / docs: note the exclusion where the audit's scope is described (only if such a place exists)

    Tests to Write

    • test/scripts/lib/not-served-repos.bats: the list, case-insensitive matching, ordinary repos still served
    • test/scripts/compliance-audit/not-served-repos.bats: main with a stubbed org listing audits served repos and skips not-served ones
    • Existing test/scripts/deploy-standard-workflows/not-served-repos.bats keeps passing

    Test Command

    npx bats test/scripts/compliance-audit test/scripts/deploy-standard-workflows test/scripts/lib + bash .dev-lead/scripts/dev-lead-lint.sh

    Scope note: this covers the compliance-audit part of #1352 only. Scorecard and fleet monitor stay out of scope.

  19. don-petry commented on Oct 29, 2026

    @don-petry
    ContributorAuthor

    Dev-Lead: Implementation Complete — PR #1426

    The implementation for issue #1343 is durable: commits are pushed and a pull request is open. This record is backed by verifiable artifacts you can confirm in one click.

    Review happens on the PR. Acceptance criteria and test results are evidenced by the PR's diff and CI checks — not asserted here. If a later stage fails, this claim is retracted in place.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    compliance-auditAutomated compliance audit findingdev-leadFor dev-lead agent pickup

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions