packer base structure
This commit is contained in:
parent
e0f1d74204
commit
d95dfa296c
116
docs/packer/README.md
Normal file
116
docs/packer/README.md
Normal file
@ -0,0 +1,116 @@
|
||||
# Packer Documentation
|
||||
|
||||
This directory contains the working, planning, and normative documentation for the `packer` domain.
|
||||
|
||||
`packer` is a standalone domain. It follows the same documentary cycle used elsewhere in the repository:
|
||||
|
||||
`agendas -> decisions -> pull-requests -> specs -> learn`
|
||||
|
||||
## Tree
|
||||
|
||||
```text
|
||||
docs/packer/
|
||||
├── agendas/
|
||||
├── decisions/
|
||||
├── learn/
|
||||
├── pull-requests/
|
||||
├── specs/
|
||||
├── Prometeu Packer.md
|
||||
└── README.md
|
||||
```
|
||||
|
||||
## Responsibilities
|
||||
|
||||
### `Prometeu Packer.md`
|
||||
|
||||
`Prometeu Packer.md` is the current bootstrap specification for the domain.
|
||||
|
||||
Use it to:
|
||||
|
||||
- understand the current packer scope,
|
||||
- recover the initial architecture and terminology,
|
||||
- seed the split into smaller normative specs under `specs/`.
|
||||
|
||||
This document is useful as a draft source, but it should not become a permanent dumping ground for every future change.
|
||||
|
||||
### `agendas/`
|
||||
|
||||
`agendas/` contains open packer topics.
|
||||
|
||||
Use it to:
|
||||
|
||||
- frame unresolved problems,
|
||||
- compare options and tradeoffs,
|
||||
- define scope and non-goals,
|
||||
- drive discussions toward a decision.
|
||||
|
||||
An agenda is a discussion artifact, not a final contract.
|
||||
|
||||
### `decisions/`
|
||||
|
||||
`decisions/` contains closed packer decision records.
|
||||
|
||||
Use it to:
|
||||
|
||||
- record the chosen direction,
|
||||
- capture constraints and invariants,
|
||||
- state what remains intentionally out of scope,
|
||||
- identify which specs, plans, or code paths must be updated.
|
||||
|
||||
Decisions close debate. They are not brainstorming notes.
|
||||
|
||||
### `pull-requests/`
|
||||
|
||||
`pull-requests/` contains self-contained execution proposals.
|
||||
|
||||
Use it to:
|
||||
|
||||
- package a change for review,
|
||||
- plan propagation across specs and implementation,
|
||||
- define acceptance criteria,
|
||||
- make tests and risks explicit before editing code or final specs.
|
||||
|
||||
### `specs/`
|
||||
|
||||
`specs/` contains the normative packer corpus.
|
||||
|
||||
Use it to:
|
||||
|
||||
- consolidate the official packer contract,
|
||||
- split large draft material into stable chaptered specs,
|
||||
- define behavior, constraints, interfaces, and conformance expectations.
|
||||
|
||||
Specs should only absorb already-closed decisions.
|
||||
|
||||
### `learn/`
|
||||
|
||||
`learn/` contains didactic consolidation.
|
||||
|
||||
Use it to:
|
||||
|
||||
- explain why the packer works the way it does,
|
||||
- preserve hard-won operational knowledge,
|
||||
- teach future contributors the model, pitfalls, and expected workflows,
|
||||
- reorganize accumulated knowledge into a cleaner learning surface.
|
||||
|
||||
`learn/` is not an archive of old decisions.
|
||||
|
||||
## Recommended Flow
|
||||
|
||||
The preferred packer documentation flow is:
|
||||
|
||||
1. `agendas/`: open and shape the unresolved topic.
|
||||
2. `decisions/`: close the architectural choice.
|
||||
3. `pull-requests/`: plan how the decision will be propagated.
|
||||
4. `specs/`: integrate the decision into normative text.
|
||||
5. `learn/`: consolidate the final knowledge in a didactic form.
|
||||
|
||||
## Practical Rule
|
||||
|
||||
- `agendas/` stores open questions.
|
||||
- `decisions/` stores closed answers.
|
||||
- `pull-requests/` stores execution plans.
|
||||
- `specs/` stores the normative packer contract.
|
||||
- `learn/` stores teaching-oriented consolidation.
|
||||
|
||||
If implementation exposes a missing architectural choice, stop and return to `agendas/` or `decisions/`.
|
||||
47
docs/packer/agendas/README.md
Normal file
47
docs/packer/agendas/README.md
Normal file
@ -0,0 +1,47 @@
|
||||
# Packer Agendas
|
||||
|
||||
This directory contains active packer discussion agendas.
|
||||
|
||||
## Purpose
|
||||
|
||||
An agenda exists to drive a decision.
|
||||
|
||||
Use an agenda when:
|
||||
|
||||
- the packer topic is still open,
|
||||
- multiple options or tradeoffs must be evaluated,
|
||||
- scope and non-goals need to be made explicit,
|
||||
- the order of discussion matters,
|
||||
- the team still needs a recommendation before committing direction.
|
||||
|
||||
An agenda should help the reader converge, not just accumulate notes.
|
||||
|
||||
## Expected Format
|
||||
|
||||
A packer agenda should usually include:
|
||||
|
||||
1. Title
|
||||
2. Status
|
||||
3. Purpose
|
||||
4. Context
|
||||
5. Options
|
||||
6. Tradeoffs
|
||||
7. Recommendation
|
||||
8. Open Questions
|
||||
9. Expected Follow-up
|
||||
|
||||
## Writing Rules
|
||||
|
||||
- Keep the document centered on unresolved questions.
|
||||
- State the concrete decision the discussion is trying to produce.
|
||||
- Prefer explicit tradeoffs over vague option lists.
|
||||
- Avoid drafting large blocks of final normative spec text here.
|
||||
- Be specific about packer scope: asset workspace, build artifacts, diagnostics, registry, builder boundary, and related contracts.
|
||||
|
||||
## Exit Rule
|
||||
|
||||
An agenda should leave the active set when:
|
||||
|
||||
- the main tradeoffs are understood,
|
||||
- a recommendation is clear enough to adopt,
|
||||
- and the topic is ready to become a decision record.
|
||||
44
docs/packer/decisions/README.md
Normal file
44
docs/packer/decisions/README.md
Normal file
@ -0,0 +1,44 @@
|
||||
# Packer Decisions
|
||||
|
||||
This directory contains packer decision records.
|
||||
|
||||
## Purpose
|
||||
|
||||
A decision record is the bridge between packer discussion and packer execution.
|
||||
|
||||
Use this directory to capture:
|
||||
|
||||
- what was decided,
|
||||
- why that direction was chosen,
|
||||
- which constraints now apply,
|
||||
- what remains intentionally undecided,
|
||||
- which specs, plans, tests, or implementations must be updated.
|
||||
|
||||
A decision should be stable enough that a spec or implementation worker can act on it without reconstructing the original debate.
|
||||
|
||||
## Expected Format
|
||||
|
||||
A packer decision should usually include:
|
||||
|
||||
1. Title
|
||||
2. Status
|
||||
3. Date or Cycle
|
||||
4. Context
|
||||
5. Decision
|
||||
6. Invariants and Constraints
|
||||
7. Explicit Non-Decisions
|
||||
8. Propagation Targets
|
||||
9. Validation Notes or Examples
|
||||
|
||||
## Writing Rules
|
||||
|
||||
- State the adopted decision early and clearly.
|
||||
- Write in stable language, not in exploratory tone.
|
||||
- Capture architectural constraints explicitly.
|
||||
- Record what is still not decided so later work does not guess.
|
||||
- Point to the exact packer specs, PRs, or code areas that need propagation.
|
||||
|
||||
## Implementation Rule
|
||||
|
||||
If implementation work reveals a missing decision, do not infer it.
|
||||
Return the issue to agenda or decision review.
|
||||
47
docs/packer/learn/README.md
Normal file
47
docs/packer/learn/README.md
Normal file
@ -0,0 +1,47 @@
|
||||
# Packer Learn
|
||||
|
||||
This directory contains didactic packer knowledge.
|
||||
|
||||
## Purpose
|
||||
|
||||
`learn/` exists to teach, not merely to store historical leftovers.
|
||||
|
||||
Use it to:
|
||||
|
||||
- explain packer architecture in a way new contributors can absorb quickly,
|
||||
- consolidate conclusions from completed decisions and PRs,
|
||||
- document common pitfalls and anti-patterns,
|
||||
- connect normative specs to practical reasoning and implementation reality.
|
||||
|
||||
## What Belongs Here
|
||||
|
||||
A `learn` artifact should usually include:
|
||||
|
||||
1. the original problem,
|
||||
2. the decision that resolved it,
|
||||
3. the implemented or specified final model,
|
||||
4. practical examples,
|
||||
5. common mistakes and warnings,
|
||||
6. links to the relevant specs and PRs.
|
||||
|
||||
Good `learn` material reduces onboarding time and prevents the same architectural confusion from repeating.
|
||||
|
||||
## Writing Rules
|
||||
|
||||
- Prefer didactic structure over chronological accumulation.
|
||||
- Explain why the model exists, not only what it is.
|
||||
- Keep terminology aligned with packer specs.
|
||||
- Refactor older material when the directory starts feeling like a document graveyard.
|
||||
|
||||
## Refactor Rule
|
||||
|
||||
This directory should be periodically reorganized for better presentation.
|
||||
|
||||
If content grows, prefer:
|
||||
|
||||
- thematic grouping,
|
||||
- overview documents,
|
||||
- explicit learning paths,
|
||||
- and consolidation of duplicated explanations.
|
||||
|
||||
The goal is a maintainable learning surface, not a passive archive.
|
||||
57
docs/packer/pull-requests/README.md
Normal file
57
docs/packer/pull-requests/README.md
Normal file
@ -0,0 +1,57 @@
|
||||
# Packer Pull Requests
|
||||
|
||||
This directory contains self-contained packer change proposals for review.
|
||||
|
||||
## Purpose
|
||||
|
||||
A pull request document packages a packer change as an executable plan before final integration.
|
||||
|
||||
Use this directory when a change:
|
||||
|
||||
- touches multiple documents or code paths,
|
||||
- changes packer architecture or semantics,
|
||||
- needs explicit acceptance criteria,
|
||||
- affects diagnostics, build outputs, registry rules, or builder boundaries,
|
||||
- should be reviewed before editing the final normative corpus or implementation.
|
||||
|
||||
## Required Properties
|
||||
|
||||
Every pull request document must be self-contained.
|
||||
|
||||
A reviewer should be able to understand:
|
||||
|
||||
- the problem,
|
||||
- the target state,
|
||||
- the execution method,
|
||||
- the acceptance bar,
|
||||
- and the validation surface.
|
||||
|
||||
## Required Sections
|
||||
|
||||
Each packer pull request should include, at minimum:
|
||||
|
||||
1. Briefing
|
||||
2. Target
|
||||
3. Method
|
||||
4. Acceptance Criteria
|
||||
5. Tests or Validation
|
||||
|
||||
Recommended additional sections:
|
||||
|
||||
6. Motivation
|
||||
7. Scope
|
||||
8. Non-Goals
|
||||
9. Affected Documents
|
||||
10. Open Questions
|
||||
|
||||
## Writing Rules
|
||||
|
||||
- Keep the proposal self-contained and reviewable.
|
||||
- Separate architectural reasoning from implementation detail.
|
||||
- Make packer outputs and contracts explicit.
|
||||
- Do not smuggle unresolved product or architecture choices into implementation steps.
|
||||
- If a required decision is missing, stop and raise it instead of guessing.
|
||||
|
||||
## Review Rule
|
||||
|
||||
A pull request may plan code and spec consequences, but it must not replace a missing decision record.
|
||||
54
docs/packer/specs/README.md
Normal file
54
docs/packer/specs/README.md
Normal file
@ -0,0 +1,54 @@
|
||||
# Packer Specs
|
||||
|
||||
This directory contains the normative packer specification set.
|
||||
|
||||
## Purpose
|
||||
|
||||
Specs define the official packer contract.
|
||||
|
||||
They exist to make behavior, constraints, interfaces, and artifact guarantees stable across implementation and review.
|
||||
|
||||
The current domain also has a bootstrap draft in [`../Prometeu Packer.md`](../Prometeu%20Packer.md).
|
||||
That draft can be used as source material, but long-term normative content should be decomposed into focused specs here.
|
||||
|
||||
## Expected Format
|
||||
|
||||
The exact structure may vary by document, but a packer 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:
|
||||
|
||||
- artifact schemas,
|
||||
- invariants,
|
||||
- diagnostic contracts,
|
||||
- examples,
|
||||
- migration notes,
|
||||
- explicit TODO sections for tracked unresolved items.
|
||||
|
||||
## Writing Rules
|
||||
|
||||
- Write in normative language.
|
||||
- Integrate only decisions that have already been closed.
|
||||
- Keep debate history and option analysis out of the spec body.
|
||||
- Preserve clear boundaries between adjacent packer 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. pull-request plans that define propagation,
|
||||
4. then spec integration.
|
||||
|
||||
If a spec edit would require guessing an unresolved design choice, stop and surface the missing decision first.
|
||||
Loading…
x
Reference in New Issue
Block a user