From f030290b857f1d5d92fa7704f4a21855d674eaf0 Mon Sep 17 00:00:00 2001 From: cryptoxdog Date: Wed, 29 Jul 2026 00:36:51 +0000 Subject: [PATCH] feat(governance): deploy advisory defaults v3.1 --- .github/ISSUE_TEMPLATE/1-bug.yml | 59 +-- .github/ISSUE_TEMPLATE/2-feature.yml | 57 +-- .github/ISSUE_TEMPLATE/3-task.yml | 15 +- .github/ISSUE_TEMPLATE/config.yml | 3 + .github/pull_request_template.md | 5 + .github/workflows/governance-issue.yml | 3 +- .github/workflows/governance-pr.yml | 11 +- .github/workflows/governance-report.yml | 89 ++++ .github/workflows/seed-governance.yml | 8 +- CONTRIBUTING.md | 78 +--- README.md | 128 +++--- docs/ADVISORY.md | 57 +++ docs/AGENT-DEPLOYMENT-RUNBOOK.md | 539 ++++++++++++++++++++++++ docs/AUDIT.md | 39 ++ docs/BOUNDARIES.md | 42 ++ docs/DEPLOYMENT-EVIDENCE-TEMPLATE.md | 58 +++ docs/DEPLOYMENT-PR.md | 38 ++ docs/DISTRIBUTION.md | 8 +- rulesets/README.md | 31 ++ rulesets/org-advisory-hygiene.json | 34 ++ rulesets/org-advisory-pr.json | 51 +++ scripts/apply-rulesets.sh | 49 +++ scripts/enable-secret-scanning.sh | 51 +++ scripts/verify-pack.sh | 63 +++ templates/dependabot.yml | 35 ++ 25 files changed, 1318 insertions(+), 233 deletions(-) create mode 100644 .github/workflows/governance-report.yml create mode 100644 docs/ADVISORY.md create mode 100644 docs/AGENT-DEPLOYMENT-RUNBOOK.md create mode 100644 docs/BOUNDARIES.md create mode 100644 docs/DEPLOYMENT-EVIDENCE-TEMPLATE.md create mode 100644 docs/DEPLOYMENT-PR.md create mode 100644 rulesets/README.md create mode 100644 rulesets/org-advisory-hygiene.json create mode 100644 rulesets/org-advisory-pr.json create mode 100755 scripts/apply-rulesets.sh create mode 100755 scripts/enable-secret-scanning.sh create mode 100755 scripts/verify-pack.sh create mode 100644 templates/dependabot.yml diff --git a/.github/ISSUE_TEMPLATE/1-bug.yml b/.github/ISSUE_TEMPLATE/1-bug.yml index ea1f5a9..2539204 100644 --- a/.github/ISSUE_TEMPLATE/1-bug.yml +++ b/.github/ISSUE_TEMPLATE/1-bug.yml @@ -6,15 +6,15 @@ body: - type: markdown attributes: value: | - Lead with the error. A worked example lives in - [EXAMPLE.md](../blob/HEAD/.github/ISSUE_TEMPLATE/EXAMPLE.md). + CI pipeline failures go to + [l9-ci-debt-resolver](https://github.com/Quantum-L9/l9-ci-debt-resolver/issues/new) + instead — that component owns failure diagnosis. - type: textarea id: problem attributes: label: Problem description: The symptom you observed, in one or two sentences. Not your theory. - placeholder: Agent runs abort at ~70% of the context limit with BudgetExceeded. validations: required: true @@ -22,7 +22,7 @@ body: id: evidence attributes: label: Error output - description: Full traceback, failing assertion, alert, or log line. Redact secrets. + description: Traceback, failing assertion, or log line. Redact secrets. render: shell validations: required: true @@ -31,75 +31,36 @@ body: id: reproduce attributes: label: Reproduction - description: Exact commands from a clean checkout. A failing test is ideal. - value: | - 1. `git clone … && cd …` - 2. `uv sync` - 3. `pytest tests/test_x.py::test_y` + description: Steps from a clean checkout. Best effort is fine. render: shell - validations: - required: true - - - type: input - id: expected - attributes: - label: Expected behavior - placeholder: Budget reports the actual measured token count. - validations: - required: true - type: input id: version attributes: label: Version / commit - description: Release tag or full commit SHA. "latest" is not a version. - placeholder: v0.9.3 or 4f2a1c9 - validations: - required: true + description: Release tag or SHA if you have it. - type: dropdown id: severity attributes: label: Severity - description: This routes triage. Be honest; inflation gets ignored. + description: Routes triage. Advisory only — nothing is blocked by this. options: - - S4 — cosmetic or minor annoyance + - S4 — cosmetic - S3 — degraded, workaround exists - S2 — major function broken, no workaround - S1 — production down, data loss, or security exposure validations: required: true - - type: dropdown - id: env - attributes: - label: Environment - multiple: true - options: [local (macOS), local (Linux), CI (GitHub Actions), dev, staging, prod] - validations: - required: true - - type: input id: regression attributes: label: Last known good version - description: Leave blank if it never worked. If set, a bisect range is implied. - placeholder: v0.9.1 + description: If set, implies a bisect range. Leave blank if unknown. - type: textarea id: context attributes: label: Anything else - description: Suspected cause, related issues, screenshots, workaround in use. - - - type: checkboxes - id: gates - attributes: - label: Before submitting - options: - - label: I searched open and closed issues for a duplicate. - required: true - - label: I reproduced this on the latest release or main. - required: true - - label: No secrets, tokens, or customer data appear anywhere above. - required: true + description: Suspected cause, related issues, workaround in use. diff --git a/.github/ISSUE_TEMPLATE/2-feature.yml b/.github/ISSUE_TEMPLATE/2-feature.yml index beb53c7..41df311 100644 --- a/.github/ISSUE_TEMPLATE/2-feature.yml +++ b/.github/ISSUE_TEMPLATE/2-feature.yml @@ -7,8 +7,7 @@ body: id: problem attributes: label: Problem - description: The user-facing pain, not the solution. Who is blocked, and on what? - placeholder: Operators cannot tell which agent consumed a token budget, so cost overruns are diagnosed by guesswork. + description: The pain, not the solution. Who is blocked, and on what? validations: required: true @@ -16,64 +15,44 @@ body: id: today attributes: label: What you do today - description: The current workaround and its cost in time, money, or risk. - validations: - required: true + description: Current workaround and its cost. - type: textarea id: proposal attributes: label: Proposed behavior - description: What should exist. Include the interface — CLI flag, API shape, config key. - render: shell + description: What should exist. Include the interface if you know it. validations: required: true - - type: textarea - id: alternatives + - type: dropdown + id: owner attributes: - label: Alternatives considered - description: Options you rejected and why. "None" usually means the problem is underexplored. + label: Which component should own this? + description: Prevents governance from absorbing CI concerns. + options: + - this repo (org governance / community health) + - l9-ci-sdk or l9-ci-core (test, lint, build execution) + - l9-ci-debt-resolver (CI failure diagnosis or remediation) + - l9-ci-debt-intelligence (CI debt measurement) + - unsure validations: required: true - type: textarea - id: done + id: alternatives attributes: - label: Definition of done - description: Observable, checkable outcomes. This becomes the acceptance criteria. - value: | - - [ ] - - [ ] - validations: - required: true + label: Alternatives considered + description: Options you rejected and why. - type: dropdown id: scope attributes: label: Scope options: - - S — under a day, one file or module + - S — under a day - M — a few days, one repo - - L — multi-repo or migration required + - L — multi-repo or migration - XL — needs a design doc first validations: required: true - - - type: dropdown - id: breaking - attributes: - label: Breaking change? - options: ["No", "Yes — behind a flag", "Yes — requires a major bump"] - validations: - required: true - - - type: checkboxes - id: gates - attributes: - label: Before submitting - options: - - label: I searched for an existing request covering this. - required: true - - label: This is a concrete capability, not an open-ended question (those go to Discussions). - required: true diff --git a/.github/ISSUE_TEMPLATE/3-task.yml b/.github/ISSUE_TEMPLATE/3-task.yml index 917c424..b7705f9 100644 --- a/.github/ISSUE_TEMPLATE/3-task.yml +++ b/.github/ISSUE_TEMPLATE/3-task.yml @@ -7,7 +7,7 @@ body: id: problem attributes: label: Problem - description: Why this work exists. What breaks or degrades if it is never done? + description: Why this work exists. What degrades if it is never done? validations: required: true @@ -15,7 +15,6 @@ body: id: work attributes: label: Work - description: The steps. Each line should be independently verifiable. value: | - [ ] - [ ] @@ -26,15 +25,7 @@ body: id: kind attributes: label: Kind - options: [chore, refactor, infra / IaC, CI / CD, docs, dependency bump, test coverage] - validations: - required: true - - - type: textarea - id: risk - attributes: - label: Risk and rollback - description: Blast radius if this goes wrong, and how to undo it. + options: [chore, refactor, infra / IaC, governance, docs, dependency bump] validations: required: true @@ -42,4 +33,4 @@ body: id: blocks attributes: label: Blocks / blocked by - placeholder: "blocked by #1191, blocks #1204" + placeholder: "blocked by #12, blocks #34" diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 44b882f..93be374 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -3,6 +3,9 @@ contact_links: - name: 🔐 Report a security vulnerability url: https://github.com/Quantum-L9/.github/security/advisories/new about: Do NOT open a public issue. Use a private security advisory. + - name: 🔧 CI failure or flaky pipeline + url: https://github.com/Quantum-L9/l9-ci-debt-resolver/issues/new + about: CI diagnosis and remediation is owned by l9-ci-debt-resolver, not here. - name: 💬 Question or design discussion url: https://github.com/orgs/Quantum-L9/discussions about: Open-ended questions, architecture debate, and "how do I…" belong in Discussions. diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index f50cf4d..302ac5c 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -1,3 +1,8 @@ + + ## Problem