add README files to improve documentation organization and structure
This commit is contained in:
parent
a8f06922db
commit
9a46851791
87
docs/pbs/README.md
Normal file
87
docs/pbs/README.md
Normal file
@ -0,0 +1,87 @@
|
||||
# PBS Documentation
|
||||
|
||||
This directory contains the working and normative documentation for PBS.
|
||||
|
||||
## Tree
|
||||
|
||||
```text
|
||||
docs/pbs/
|
||||
├── agendas/
|
||||
├── decisions/
|
||||
├── pull-requests/
|
||||
└── specs/
|
||||
```
|
||||
|
||||
## Responsibilities
|
||||
|
||||
### `agendas/`
|
||||
|
||||
`agendas/` contains open topics.
|
||||
|
||||
Use it to:
|
||||
|
||||
- record unresolved questions,
|
||||
- define scope, dependencies, and non-goals,
|
||||
- structure discussion order,
|
||||
- keep only active TODO topics visible.
|
||||
|
||||
An agenda is a discussion artifact, not a final normative document.
|
||||
Once a topic is settled, it should leave this directory.
|
||||
|
||||
### `decisions/`
|
||||
|
||||
`decisions/` contains closed decision records between discussion and spec integration.
|
||||
|
||||
Use it to:
|
||||
|
||||
- record the adopted decision clearly,
|
||||
- capture invariants and architectural constraints,
|
||||
- state what was explicitly left undecided,
|
||||
- identify which specs must be updated,
|
||||
- preserve traceability without turning specs into debate logs.
|
||||
|
||||
Architecture and decisions come before implementation.
|
||||
|
||||
### `specs/`
|
||||
|
||||
`specs/` contains the normative PBS corpus.
|
||||
|
||||
Use it to:
|
||||
|
||||
- consolidate the official PBS contract,
|
||||
- integrate already-closed decisions in normative language,
|
||||
- define precedence, scope, rules, and exit criteria,
|
||||
- provide the baseline for implementation, verification, and conformance.
|
||||
|
||||
Specs must not operate as discussion backlogs.
|
||||
If a point is still disputed or underspecified, it belongs in `agendas/` or `decisions/`, not directly in `specs/`.
|
||||
|
||||
### `pull-requests/`
|
||||
|
||||
`pull-requests/` contains self-contained change proposals for review.
|
||||
|
||||
Use it to:
|
||||
|
||||
- package a proposed change across multiple documents,
|
||||
- explain motivation, target, method, acceptance criteria, and tests,
|
||||
- make the review surface explicit before final integration,
|
||||
- keep architectural and decision-level review ahead of implementation work.
|
||||
|
||||
If implementation reveals an unresolved ambiguity, stop and ask the question explicitly.
|
||||
Do not infer missing architectural decisions during implementation.
|
||||
|
||||
## Recommended Flow
|
||||
|
||||
The preferred pipeline is:
|
||||
|
||||
1. `agendas/`: open and discuss unresolved topics.
|
||||
2. `decisions/`: record the decision and its constraints.
|
||||
3. `specs/`: integrate the closed decision into normative text.
|
||||
4. `pull-requests/`: use when a change should be reviewed as a self-contained proposal before merge.
|
||||
|
||||
## Practical Rule
|
||||
|
||||
- `agendas/` stores open questions.
|
||||
- `decisions/` stores closed answers.
|
||||
- `specs/` stores the normative contract.
|
||||
- `pull-requests/` stores reviewable change packages.
|
||||
46
docs/pbs/agendas/README.md
Normal file
46
docs/pbs/agendas/README.md
Normal file
@ -0,0 +1,46 @@
|
||||
# PBS Agendas
|
||||
|
||||
This directory contains active PBS discussion agendas.
|
||||
|
||||
## Purpose
|
||||
|
||||
An agenda exists to drive a decision, not to serve as final normative text.
|
||||
|
||||
Use an agenda when:
|
||||
|
||||
- the topic is still open,
|
||||
- multiple options or tradeoffs must be evaluated,
|
||||
- the scope and non-goals need to be made explicit,
|
||||
- the order of discussion matters.
|
||||
|
||||
Remove an agenda from this directory once the topic is no longer active.
|
||||
|
||||
## Expected Format
|
||||
|
||||
An agenda should usually include:
|
||||
|
||||
1. Title
|
||||
2. Status
|
||||
3. Purpose
|
||||
4. Context
|
||||
5. Decisions to Produce
|
||||
6. Core Questions
|
||||
7. Expected Spec Material
|
||||
8. Non-Goals
|
||||
9. Inputs
|
||||
|
||||
## Writing Rules
|
||||
|
||||
- Keep the document oriented around unresolved questions.
|
||||
- Separate open questions from assumptions already fixed elsewhere.
|
||||
- Name the concrete decisions the discussion must produce.
|
||||
- Avoid drafting large blocks of final normative spec text here.
|
||||
- Prefer explicit non-goals to prevent scope drift.
|
||||
|
||||
## Exit Rule
|
||||
|
||||
An agenda should move out of the active set when:
|
||||
|
||||
- the key questions have been answered,
|
||||
- the architectural direction is clear enough to record,
|
||||
- and the topic is ready to become a decision record and then a spec update.
|
||||
44
docs/pbs/decisions/README.md
Normal file
44
docs/pbs/decisions/README.md
Normal file
@ -0,0 +1,44 @@
|
||||
# PBS Decisions
|
||||
|
||||
This directory contains PBS decision records.
|
||||
|
||||
## Purpose
|
||||
|
||||
A decision record is the bridge between agenda discussion and normative spec text.
|
||||
|
||||
Use this directory to capture:
|
||||
|
||||
- what was decided,
|
||||
- why that direction was chosen,
|
||||
- which constraints now apply,
|
||||
- what remains intentionally out of scope,
|
||||
- which specs must be updated.
|
||||
|
||||
Architecture and decisions must be resolved before implementation.
|
||||
|
||||
## Expected Format
|
||||
|
||||
A decision record should usually include:
|
||||
|
||||
1. Title
|
||||
2. Status
|
||||
3. Date or Cycle
|
||||
4. Context
|
||||
5. Decision
|
||||
6. Invariants
|
||||
7. Explicit Non-Decisions
|
||||
8. Spec Impact
|
||||
9. Validation Notes or Examples
|
||||
|
||||
## Writing Rules
|
||||
|
||||
- Write in stable, reviewable language.
|
||||
- State the adopted decision first and clearly.
|
||||
- Capture architectural constraints and invariants explicitly.
|
||||
- Record what is still not decided so later implementation does not guess.
|
||||
- Point to the exact specs that need integration.
|
||||
|
||||
## Implementation Rule
|
||||
|
||||
If implementation work exposes a missing decision, do not infer it.
|
||||
Stop, surface the ambiguity, and return it to agenda or decision review.
|
||||
78
docs/pbs/pull-requests/README.md
Normal file
78
docs/pbs/pull-requests/README.md
Normal file
@ -0,0 +1,78 @@
|
||||
# PBS Pull Requests
|
||||
|
||||
This directory contains self-contained PBS change proposals for review.
|
||||
|
||||
## Purpose
|
||||
|
||||
A pull request document packages a proposed change so it can be reviewed as a coherent unit before final integration.
|
||||
|
||||
Use this directory when a change:
|
||||
|
||||
- touches multiple documents,
|
||||
- changes architecture or semantics,
|
||||
- needs explicit review criteria,
|
||||
- or should be assessed before editing the final normative corpus.
|
||||
|
||||
Architecture and decisions come before implementation.
|
||||
|
||||
## Required Properties
|
||||
|
||||
Every pull request document must be self-contained.
|
||||
|
||||
A reviewer should be able to understand the proposal without reconstructing context from chat history or scattered notes.
|
||||
|
||||
## Required Sections
|
||||
|
||||
Each pull request should include, at minimum:
|
||||
|
||||
1. Briefing
|
||||
2. Target
|
||||
3. Method
|
||||
4. Acceptance Criteria
|
||||
5. Tests, when needed
|
||||
|
||||
Recommended additional sections:
|
||||
|
||||
6. Motivation
|
||||
7. Scope
|
||||
8. Non-Goals
|
||||
9. Affected Documents
|
||||
10. Open Questions
|
||||
|
||||
## Section Expectations
|
||||
|
||||
### Briefing
|
||||
|
||||
Summarize the problem and the proposed change in a short, readable form.
|
||||
|
||||
### Target
|
||||
|
||||
State exactly what documents, behaviors, or contracts the proposal changes.
|
||||
|
||||
### Method
|
||||
|
||||
Explain the architectural and editorial approach.
|
||||
If the proposal depends on prior decisions, name them explicitly.
|
||||
|
||||
### Acceptance Criteria
|
||||
|
||||
List the conditions that must be true for the proposal to be accepted.
|
||||
These should be specific and reviewable.
|
||||
|
||||
### Tests
|
||||
|
||||
Include tests when the change affects executable behavior, conformance, verification, lowering, or observable runtime semantics.
|
||||
|
||||
If tests are not necessary, say why.
|
||||
|
||||
## Writing Rules
|
||||
|
||||
- Keep the proposal self-contained.
|
||||
- Prefer explicit architectural reasoning over implementation detail.
|
||||
- Do not bury acceptance criteria inside prose.
|
||||
- Do not assume unresolved details.
|
||||
- If a required decision is missing, stop and raise the question instead of inferring an answer.
|
||||
|
||||
## Review Rule
|
||||
|
||||
A pull request may propose implementation consequences, but it must not smuggle in unresolved architectural choices as implementation details.
|
||||
48
docs/pbs/specs/README.md
Normal file
48
docs/pbs/specs/README.md
Normal file
@ -0,0 +1,48 @@
|
||||
# PBS Specs
|
||||
|
||||
This directory contains the normative PBS specification set.
|
||||
|
||||
## Purpose
|
||||
|
||||
Specs define the official PBS contract.
|
||||
|
||||
They exist to make behavior, constraints, and interfaces stable across implementations and reviews.
|
||||
|
||||
## Expected Format
|
||||
|
||||
The exact structure may vary by document, but a spec should usually contain:
|
||||
|
||||
1. Title
|
||||
2. Status
|
||||
3. Scope or Applies To
|
||||
4. Purpose
|
||||
5. Authority and Precedence
|
||||
6. Normative Inputs
|
||||
7. Core Rules
|
||||
8. Non-Goals
|
||||
9. Exit Criteria
|
||||
|
||||
Some specs may also include:
|
||||
|
||||
- already-settled inputs,
|
||||
- initial section targets,
|
||||
- `TODO` sections for tracked unresolved items,
|
||||
- cross-references to adjacent specs.
|
||||
|
||||
## Writing Rules
|
||||
|
||||
- Write in normative language.
|
||||
- Integrate only decisions that have already been closed.
|
||||
- Keep debate history and exploratory alternatives out of the spec body.
|
||||
- Preserve clear boundaries between adjacent specs.
|
||||
- Use `TODO` only for explicitly tracked unresolved items, not as a substitute for agenda work.
|
||||
|
||||
## Upstream Rule
|
||||
|
||||
Specs should normally be fed by:
|
||||
|
||||
1. agendas that frame the open topic,
|
||||
2. decisions that close the architectural question,
|
||||
3. then spec integration.
|
||||
|
||||
If a spec edit would require guessing an unresolved design choice, the correct action is to stop and surface the missing decision first.
|
||||
Loading…
x
Reference in New Issue
Block a user