gitea: issue forms and a PR template, in the project's own form
Acceptance / Acceptance (pull_request) Canceled after 0s
Build / Image RASPI (push) Successful in 4m35s
Build / Image PC (push) Successful in 4m30s
Build / Image MILKV (push) Successful in 4m33s
Build / v4 tests (32- and 64-bit cells) (push) Successful in 11m7s

Issues follow the record's Found / Ruled / Built / Verified
(docs/fabric/FABRIC-3.md): the reporter writes what was found and its
evidence; Captain Bob rules; the commits build it; the acceptance logs
verify it. A finding is not a request to fix it (.claude/CLAUDE.md).

.gitea/ISSUE_TEMPLATE/
  1-bug.yaml     Found, where, system (v4/v3), seen on (ISA, stick,
                 hardware), evidence (the log lines), how found
  2-work.yaml    what, why (the ruling or design section), done when
                 (with the acceptance protocol and its logs), area,
                 priority
  3-ruling.yaml  the question, the options and their costs, a
                 recommendation, where the ruling will be recorded,
                 what waits on it
  4-board.yaml   board, the image booted (Nexus version or commit),
                 what happened, the serial log, the BRINGUP.md item
  config.yaml    blank issues still allowed; the XWiki linked for
                 design and discussion
.gitea/pull_request_template.md  what and why, Closes #, acceptance
                 (the check runs itself; hand-run logs; hardware), the
                 record (FABRIC-3.md, CHANGELOG), no unrequested fixes

Gitea reads these from the default branch: they apply once on master.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GE3SDvQn5EoxdGufk84zz2
This commit is contained in:
rajames
2026-11-06 17:15:25 +00:00
co-authored by Claude Opus 5.5
parent 0316573226
commit c1bc1c8041
6 changed files with 198 additions and 0 deletions
+53
View File
@@ -0,0 +1,53 @@
name: Bug
about: Something is wrong. Report it as found -- it is fixed only when Captain Bob says so.
title: "[bug] "
labels: ["kind/bug"]
body:
- type: markdown
attributes:
value: |
Write what was **found**, with its evidence. The rest of the issue follows the project's
record (`docs/fabric/FABRIC-3.md`): **Ruled** (Captain Bob decides whether and how it is
fixed), **Built** (the commits), **Verified** (the acceptance logs). A finding is not a
request to fix it (`.claude/CLAUDE.md`, Hard Rules).
- type: textarea
id: found
attributes:
label: Found
description: What is wrong, and what happens because of it. Concrete input and the wrong output, crash or hang.
validations:
required: true
- type: input
id: where
attributes:
label: Where
description: File and line, or the word, capsule or board.
placeholder: "v4/src/exec.c:182"
validations:
required: true
- type: dropdown
id: system
attributes:
label: System
options: ["v4 (the default)", "v3 (system=v3)", "both", "the build or CI", "not specific"]
validations:
required: true
- type: dropdown
id: isa
attributes:
label: Seen on
multiple: true
options: ["amd64", "aarch64", "riscv64", "32-bit build (test-32)", "the PC stick", "hosted", "real hardware"]
- type: textarea
id: evidence
attributes:
label: Evidence
description: The serial log (`logs/<TS>/<arch>/...`), the failing test, or the steps that reproduce it. Logs are the evidence; paste the lines that matter.
render: text
validations:
required: true
- type: textarea
id: how
attributes:
label: How it was found
description: A boot, a test, a review, real hardware.
+40
View File
@@ -0,0 +1,40 @@
name: Work item
about: A piece of planned work -- a step of a design, or something a ruling asked for.
title: ""
labels: ["kind/feature"]
body:
- type: textarea
id: goal
attributes:
label: What
description: The work, in a sentence or two.
validations:
required: true
- type: textarea
id: why
attributes:
label: Why -- the ruling or the design it comes from
description: Captain Bob's ruling (quoted, with its date) or the document and section, e.g. `docs/v4.0.0/ENGINE.md` section 5, step 3.
validations:
required: true
- type: textarea
id: done
attributes:
label: Done when
description: What will be true, and how it is shown. Every change to the kernel or v4 is accepted by the acceptance protocol -- the three ISA boots, the PC stick loaded high, test-32 -- with its logs committed.
value: |
- [ ]
- [ ] Acceptance passes, logs in `logs/`
validations:
required: true
- type: dropdown
id: area
attributes:
label: Area
multiple: true
options: ["kernel", "v4", "v3", "capsules", "proofs", "docs", "CI and build"]
- type: dropdown
id: priority
attributes:
label: Priority
options: ["must -- needed for the milestone", "should -- needed for the product", "nice to have"]
+41
View File
@@ -0,0 +1,41 @@
name: Ruling needed
about: A decision only Captain Bob can make -- an open question, a trade-off, a design choice.
title: "[ruling] "
labels: ["status/blocked"]
body:
- type: markdown
attributes:
value: |
Lay out the question so it can be ruled on. The ruling is recorded as it always is --
**Ruled (Captain Bob, date)** -- in the document it belongs to, and the issue closed with a
link to that record.
- type: textarea
id: question
attributes:
label: The question
validations:
required: true
- type: textarea
id: options
attributes:
label: The options, and what each costs
description: Each choice with its consequences -- code size, speed, what it rules out later.
validations:
required: true
- type: textarea
id: recommendation
attributes:
label: Recommendation
description: Which option, and why. A recommendation, not a decision.
- type: input
id: record
attributes:
label: Where the ruling will be recorded
placeholder: "docs/v4.0.0/DECOMPOSITION.md section 3, D-4"
validations:
required: true
- type: textarea
id: waits
attributes:
label: What waits on it
description: Issues or work that cannot go on until this is ruled.
+38
View File
@@ -0,0 +1,38 @@
name: Board bring-up
about: A board on real hardware -- a first boot, a failure, a step of boards/BRINGUP.md.
title: "[board] "
labels: ["kind/feature"]
body:
- type: dropdown
id: board
attributes:
label: Board
options: ["PC (SER5)", "Raspberry Pi 5", "Raspberry Pi 4 (not ported)", "Milk-V Mars", "Zynq-7020", "other"]
validations:
required: true
- type: input
id: image
attributes:
label: Image
description: Which image was booted -- the nightly's Nexus version, or the commit it was built from.
placeholder: "kernelImage-2.1.0-20261107.030000-1-raspi5.img.xz, or 0fd7648a"
validations:
required: true
- type: textarea
id: found
attributes:
label: What happened
description: How far it got -- the last line seen on serial or screen.
validations:
required: true
- type: textarea
id: log
attributes:
label: Serial log
description: The whole log if there is one; where it is committed (`logs/<TS>/...`).
render: text
- type: input
id: bringup
attributes:
label: boards/BRINGUP.md item
placeholder: "A1, S3, ..."
+6
View File
@@ -0,0 +1,6 @@
# The issue picker. A blank issue is still allowed, for anything the forms do not fit.
blank_issues_enabled: true
contact_links:
- name: Design, documentation and discussion -- the project wiki
url: https://www.starshipos-f18.org/
about: The XWiki is the project's entry point. Issues here are for work in this repository.
+20
View File
@@ -0,0 +1,20 @@
## What and why
<!-- What this changes, and the ruling, issue or design section it carries out. -->
Closes #
## Acceptance
The **Acceptance** check runs on this pull request by itself -- amd64, aarch64, riscv64, the PC
stick loaded high, test-32 -- and `master` takes nothing that has not passed it. Note here
anything it does not cover:
- [ ] Logs from runs made by hand are committed in `logs/`, if any
- [ ] Hardware this was tried on, if any:
## The record
- [ ] `docs/fabric/FABRIC-3.md` has the ruling and what was built, if this is design work
- [ ] `CHANGELOG.md`, if it is a milestone
- [ ] Nothing in this PR is a fix nobody asked for (`.claude/CLAUDE.md`, Hard Rules)