# 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. `docs/pbs/specs` is language-specific. Cross-language acceptance specs live in `docs/general/specs`. 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 PBS-specific normative contract. - `pull-requests/` stores reviewable change packages.