Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .biomeignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Biome path exclusions (gitignore syntax).
# Biome 2.5 reads files.includes in biome.json, not this file — keep generated trees in both.

coverage/
dist/
.l9/
18 changes: 18 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
root = true

[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
indent_style = space
indent_size = 2

[*.py]
indent_size = 4

[*.md]
trim_trailing_whitespace = false

[Makefile]
indent_style = tab
11 changes: 11 additions & 0 deletions .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Quantum-L9 org-wide funding configuration.
# https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/displaying-a-sponsor-button-in-your-repository
#
# No public sponsor links are configured. This is an internal engineering org;
# entries are intentionally left blank rather than omitting the file, so any
# future decision to enable a sponsor button is a one-line change, not a new
# file requiring CODEOWNERS/governance re-review.
#
# github: []
# open_collective: # ''
# custom: # ['']
66 changes: 66 additions & 0 deletions .github/ISSUE_TEMPLATE/1-bug.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
name: 🐛 Bug
description: Something behaves incorrectly and you can show it.
title: "bug: "
labels: ["type:bug", "needs:triage"]
body:
- type: markdown
attributes:
value: |
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.
validations:
required: true

- type: textarea
id: evidence
attributes:
label: Error output
description: Traceback, failing assertion, or log line. Redact secrets.
render: shell
validations:
required: true

- type: textarea
id: reproduce
attributes:
label: Reproduction
description: Steps from a clean checkout. Best effort is fine.
render: shell

- type: input
id: version
attributes:
label: Version / commit
description: Release tag or SHA if you have it.

- type: dropdown
id: severity
attributes:
label: Severity
description: Routes triage. Advisory only — nothing is blocked by this.
options:
- S4 — cosmetic
- S3 — degraded, workaround exists
- S2 — major function broken, no workaround
- S1 — production down, data loss, or security exposure
validations:
required: true

- type: input
id: regression
attributes:
label: Last known good version
description: If set, implies a bisect range. Leave blank if unknown.

- type: textarea
id: context
attributes:
label: Anything else
description: Suspected cause, related issues, workaround in use.
58 changes: 58 additions & 0 deletions .github/ISSUE_TEMPLATE/2-feature.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
name: ✨ Feature
description: Propose a capability that does not exist yet.
title: "feat: "
labels: ["type:feature", "needs:triage"]
body:
- type: textarea
id: problem
attributes:
label: Problem
description: The pain, not the solution. Who is blocked, and on what?
validations:
required: true

- type: textarea
id: today
attributes:
label: What you do today
description: Current workaround and its cost.

- type: textarea
id: proposal
attributes:
label: Proposed behavior
description: What should exist. Include the interface if you know it.
validations:
required: true

- type: dropdown
id: owner
attributes:
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: alternatives
attributes:
label: Alternatives considered
description: Options you rejected and why.

- type: dropdown
id: scope
attributes:
label: Scope
options:
- S — under a day
- M — a few days, one repo
- L — multi-repo or migration
- XL — needs a design doc first
validations:
required: true
36 changes: 36 additions & 0 deletions .github/ISSUE_TEMPLATE/3-task.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
name: 🔧 Task
description: Known work with a known solution — chore, refactor, infra, docs.
title: "chore: "
labels: ["type:task"]
body:
- type: textarea
id: problem
attributes:
label: Problem
description: Why this work exists. What degrades if it is never done?
validations:
required: true

- type: textarea
id: work
attributes:
label: Work
value: |
- [ ]
- [ ]
validations:
required: true

- type: dropdown
id: kind
attributes:
label: Kind
options: [chore, refactor, infra / IaC, governance, docs, dependency bump]
validations:
required: true

- type: input
id: blocks
attributes:
label: Blocks / blocked by
placeholder: "blocked by #12, blocks #34"
90 changes: 90 additions & 0 deletions .github/ISSUE_TEMPLATE/4-incident.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
name: 🚨 Incident
description: Production is degraded or down. File first, investigate second.
title: "incident: "
labels: ["type:incident", "sev:untriaged", "priority:P0"]
assignees: []
body:
- type: markdown
attributes:
value: |
**Page first, file second.** If customers are affected and nobody is paged,
stop and page on-call. This issue is the written record, not the alarm.
If this is a security compromise, use a private advisory instead — not this form.

- type: input
id: started
attributes:
label: Detected at (UTC)
placeholder: "2026-07-28T15:04:00Z"
validations:
required: true

- type: textarea
id: problem
attributes:
label: Problem
description: Customer-visible symptom. What is broken, for whom, since when?
validations:
required: true

- type: dropdown
id: severity
attributes:
label: Severity
options:
- S1 — full outage, data loss, or security exposure
- S2 — major degradation, no workaround
- S3 — partial degradation, workaround in place
validations:
required: true

- type: textarea
id: evidence
attributes:
label: Signal
description: Alert name, dashboard link, error rate, sample traceback.
render: shell
validations:
required: true

- type: textarea
id: impact
attributes:
label: Blast radius
description: Services, regions, tenants, and estimated request or user count.
validations:
required: true

- type: textarea
id: mitigation
attributes:
label: Mitigation in progress
description: What is being done right now. Update this field as it evolves.
validations:
required: true

- type: input
id: suspect
attributes:
label: Suspected trigger
description: Deploy, PR, config change, or upstream provider. Link it.
placeholder: "#1184, deployed 14:52Z"

- type: input
id: commander
attributes:
label: Incident commander
placeholder: "@handle"
validations:
required: true

- type: checkboxes
id: gates
attributes:
label: Response checklist
options:
- label: On-call paged.
required: true
- label: Status page or stakeholder comms updated, or explicitly not needed.
- label: Timeline is being kept in the comments below.
- label: Postmortem issue will be opened within 48h of resolution.
99 changes: 99 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
name: Bug Report
description: Report a reproducible bug in any Quantum-L9 repository
title: "[Bug]: "
labels: ["bug", "triage"]
assignees: []
body:
- type: markdown
attributes:
value: |
Thank you for taking the time to file a bug report. Please fill out all fields completely.
Incomplete reports may be closed without investigation.

- type: textarea
id: description
attributes:
label: Bug Description
description: A clear and concise description of what the bug is.
placeholder: "Describe the bug..."
validations:
required: true

- type: textarea
id: reproduction
attributes:
label: Steps to Reproduce
description: Exact steps to reproduce the behavior.
placeholder: |
1. Go to '...'
2. Run command '...'
3. See error
validations:
required: true

- type: textarea
id: expected
attributes:
label: Expected Behavior
description: What did you expect to happen?
validations:
required: true

- type: textarea
id: actual
attributes:
label: Actual Behavior
description: What actually happened?
validations:
required: true

- type: dropdown
id: repo
attributes:
label: Affected Repository
options:
- l9-ci-core
- Cursor-Governance
- l9-assurance
- .github (org backbone)
- Other (specify in description)
validations:
required: true

- type: input
id: workflow-name
attributes:
label: Workflow Name (if CI-related)
description: "e.g. pr-pipeline.yml, security.yml"
placeholder: "pr-pipeline.yml"

- type: input
id: python-version
attributes:
label: Python Version
placeholder: "3.12"

- type: input
id: node-version
attributes:
label: Node Version (if applicable)
placeholder: "20"

- type: input
id: os
attributes:
label: Operating System
placeholder: "ubuntu-latest / macOS 14 / Windows 11"

- type: textarea
id: logs
attributes:
label: Logs / Screenshots
description: Paste relevant log output or attach screenshots.
render: shell

- type: input
id: related-issues
attributes:
label: Related Issues / PRs
placeholder: "#123, #456"
Loading
Loading