Skip to content
Open
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
18 changes: 18 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Managed by Quantum-L9/.github — do not edit here.
# Edit templates/CODEOWNERS.repo in the .github repo; changes are re-seeded by PR.
# CODEOWNERS is not inheritable, so this file is physically copied per repo.
#
# Team slugs verified against the live org (gh api orgs/Quantum-L9/teams):
# only `platform` exists. The pack's placeholder slugs (maintainers, governance,
# infra, ci-cd, security) were replaced — an unresolvable owner makes the whole
# rule silently inert. If new teams are created later, add rules here and re-seed.

* @Quantum-L9/platform

# Blast-radius paths require cryptoxdog as additional reviewer.
/.github/ @Quantum-L9/platform @cryptoxdog
/.github/workflows/ @Quantum-L9/platform @cryptoxdog
/infra/ @Quantum-L9/platform @cryptoxdog
/terraform/ @Quantum-L9/platform @cryptoxdog
SECURITY.md @Quantum-L9/platform @cryptoxdog
CODEOWNERS @Quantum-L9/platform @cryptoxdog
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.
Loading
Loading