Assistant: codex Assistant-Model: gpt-5.6-sol Assistant-Session: 01a025c2-407a-7a32-b40a-f37a52f03f62
154 lines
5.6 KiB
Markdown
154 lines
5.6 KiB
Markdown
---
|
|
id: scheme/practice-pattern
|
|
title: PracticePattern Scheme
|
|
type: practice-pattern-scheme
|
|
status: active
|
|
version: "0.1"
|
|
summary: A common Markdown contract for naming and sharing recurring socio-technical practices.
|
|
owned_concepts:
|
|
- PracticePattern
|
|
- PatternLanguage
|
|
---
|
|
|
|
# PracticePattern Scheme
|
|
|
|
## Intent
|
|
|
|
Give people and agents a stable language for recurring ways of working. A
|
|
PracticePattern names a proven or proposed arrangement of actions, roles,
|
|
interfaces, feedback, and evidence that resolves a recurring tension in a
|
|
particular context.
|
|
|
|
This scheme is inspired by Christopher Alexander's pattern-language method:
|
|
each pattern connects a context and a system of forces to a reusable solution,
|
|
describes the resulting consequences, and participates in a language of related
|
|
patterns. It adapts that idea for software, operations, architecture, and
|
|
governance practices; it does not copy a building pattern or require a fixed
|
|
implementation technology.
|
|
|
|
## Artifact identity
|
|
|
|
A PracticePattern is a Markdown canon artifact with:
|
|
|
|
- a speakable canonical name in UpperCamelCase, such as
|
|
`InterfaceDeprecationStrangler`;
|
|
- a stable artifact ID, `practice-pattern/<kebab-case-name>`;
|
|
- `type: practice-pattern`;
|
|
- `scheme: practice-pattern/0.1`;
|
|
- an independently versioned pattern body;
|
|
- a lifecycle status; and
|
|
- registration in `infospace/artifacts/index.yaml`.
|
|
|
|
The canonical name is part of the shared language. Aliases help discovery but
|
|
must not silently replace it.
|
|
|
|
## Required frontmatter
|
|
|
|
```yaml
|
|
---
|
|
id: practice-pattern/example-name
|
|
title: ExampleName
|
|
type: practice-pattern
|
|
scheme: practice-pattern/0.1
|
|
status: candidate
|
|
version: "0.1"
|
|
summary: One sentence stating the practical move.
|
|
aliases: []
|
|
uses: []
|
|
related_patterns: []
|
|
known_uses: []
|
|
---
|
|
```
|
|
|
|
The machine-readable contract is
|
|
`infospace/schemas/practice-pattern.schema.yaml`.
|
|
|
|
### Lifecycle
|
|
|
|
| Status | Meaning |
|
|
| --- | --- |
|
|
| `draft` | The problem and solution are still being shaped. |
|
|
| `candidate` | Coherent enough for trial, but known uses are limited. |
|
|
| `active` | Supported by at least one concrete known use and suitable for reuse. |
|
|
| `deprecated` | Superseded or discouraged; relationship to its successor is explicit. |
|
|
| `retired` | Preserved for provenance but no longer recommended. |
|
|
|
|
Version and lifecycle are separate. A wording clarification can change the
|
|
version without changing lifecycle; evidence from a new known use can promote a
|
|
candidate to active.
|
|
|
|
## Required body sections
|
|
|
|
Every PracticePattern must contain these second-level headings:
|
|
|
|
1. `Intent` — the practical move in compact form.
|
|
2. `Context` — the conditions in which the pattern applies.
|
|
3. `Problem` — the recurring failure or tension.
|
|
4. `Forces` — pressures that make a simplistic solution insufficient.
|
|
5. `Solution` — the stable arrangement, written as a directive.
|
|
6. `Dynamics` — the sequence or feedback loop through which it operates.
|
|
7. `Invariants` — properties an implementation must preserve.
|
|
8. `Evidence` — observations needed to decide, advance, or stop.
|
|
9. `Consequences` — benefits, costs, and new responsibilities.
|
|
10. `Known Uses` — concrete applications and their maturity.
|
|
|
|
These headings are validated by the canon. Their contents may use diagrams,
|
|
tables, checklists, or prose.
|
|
|
|
## Recommended body sections
|
|
|
|
Use these where they improve adoption:
|
|
|
|
- `Structure` for roles, components, and relationships;
|
|
- `Failure Modes` for common incomplete or unsafe implementations;
|
|
- `When Not to Use` for boundary conditions;
|
|
- `Adoption Checklist` for a practical start and completion test;
|
|
- `Related Patterns` for the surrounding pattern language; and
|
|
- `Evolution` for provenance, open questions, and version history.
|
|
|
|
## Writing rules
|
|
|
|
1. Name a recurring practice, not a product feature or one repository's
|
|
implementation.
|
|
2. State the problem before prescribing the solution.
|
|
3. Make forces genuinely competing; a list of requirements is not a force
|
|
analysis.
|
|
4. Write the solution as a stable arrangement and keep technology-specific
|
|
examples in Known Uses.
|
|
5. Separate invariants from optional implementation techniques.
|
|
6. State which evidence changes the practice's state or permits an irreversible
|
|
move.
|
|
7. Name costs and failure modes as directly as benefits.
|
|
8. A known use must identify what was actually observed; intended adoption is
|
|
not implementation evidence.
|
|
9. Relationships must use stable artifact IDs when the related artifact is in
|
|
the canon.
|
|
10. Pattern conformance means preserving the invariants, not copying a known
|
|
use literally.
|
|
|
|
## Relationship vocabulary
|
|
|
|
PracticePatterns form a language rather than an isolated catalog. Use:
|
|
|
|
- `uses` when this pattern depends on another canon artifact or mechanism;
|
|
- `related_patterns` for complementary, alternative, predecessor, or successor
|
|
PracticePatterns, with the relation explained in the body;
|
|
- artifact-index `conforms_to` to point to this scheme;
|
|
- artifact-index `uses`, `requires`, or `implements` for graph-visible canon
|
|
relationships; and
|
|
- Known Uses to point outward to concrete consumer implementations.
|
|
|
|
## Conformance
|
|
|
|
A file conforms to PracticePattern v0.1 when its frontmatter validates against
|
|
the schema, all required body sections are present, its artifact index entry has
|
|
`kind: practice-pattern`, and every internal relationship target resolves.
|
|
|
|
Conformance does not imply that the practice is active or recommended. That is
|
|
expressed by lifecycle status and known-use evidence.
|
|
|
|
## Evolution
|
|
|
|
Version 0.1 establishes the smallest useful shared contract. Later versions may
|
|
add structured force, role, evidence, and known-use records after several
|
|
patterns demonstrate which structure is genuinely reusable.
|