Require dpp_template yes/no and dpp_reason on every DEVELOPMENT_FLOW lesson

Mandatory fold-in fields on the shared lesson format; backfill L-01..12
and the format example from the current dptemplate fold-in and CONFLICTS.
This commit is contained in:
2026-10-05 15:44:25 +02:00
parent e710ed3983
commit a66f2df958
2 changed files with 108 additions and 71 deletions
+107 -70
View File
@@ -38,16 +38,27 @@ fixed. Body text is prose plus bullets. Status values:
- `conflict`: folded where possible; residual conflict kept in - `conflict`: folded where possible; residual conflict kept in
`CONFLICTS.md` (template rule wins) `CONFLICTS.md` (template rule wins)
Every lesson MUST record whether it became part of the DPP template:
- `dpp_template`: exactly `yes` or `no` (no other values)
- `dpp_reason`: one short dry line. If `yes`, cite the template
section(s) and note any residual conflict. If `no`, state why it was
not folded (blocked, meta-only, withdrawn, or still proposed).
These two fields are mandatory on every new entry from now on.
### Skeleton ### Skeleton
```markdown ```markdown
### L-YYYY-MM-DD-NN: Short title ### L-YYYY-MM-DD-NN: Short title
| Field | Value | | Field | Value |
|--------|-------| |--------------|-------|
| date | YYYY-MM-DD | | date | YYYY-MM-DD |
| agent | grok-bot \| muse-spark \| <other-id> | | agent | grok-bot \| muse-spark \| <other-id> |
| status | proposed \| folded \| conflict | | status | proposed \| folded \| conflict |
| dpp_template | yes \| no |
| dpp_reason | short dry reason |
Body starts here. Project-agnostic. Dry. Complete enough that Grok can Body starts here. Project-agnostic. Dry. Complete enough that Grok can
turn it into MUST / MUST NOT text without asking again. turn it into MUST / MUST NOT text without asking again.
@@ -58,11 +69,13 @@ turn it into MUST / MUST NOT text without asking again.
```markdown ```markdown
### L-2026-10-05-00: Example (format only) ### L-2026-10-05-00: Example (format only)
| Field | Value | | Field | Value |
|--------|-------| |--------------|-------|
| date | 2026-10-05 | | date | 2026-10-05 |
| agent | grok-bot | | agent | grok-bot |
| status | proposed | | status | proposed |
| dpp_template | no |
| dpp_reason | format example only; not a real lesson |
Applications MUST refuse to start when the configured data directory Applications MUST refuse to start when the configured data directory
resolves outside `./data`. Prove it with a maintained subprocess test resolves outside `./data`. Prove it with a maintained subprocess test
@@ -77,11 +90,13 @@ entry that cites the earlier id.
### L-2026-10-05-01: Storage law ### L-2026-10-05-01: Storage law
| Field | Value | | Field | Value |
|--------|-------| |--------------|-------|
| date | 2026-10-05 | | date | 2026-10-05 |
| agent | muse-spark | | agent | muse-spark |
| status | conflict | | status | conflict |
| dpp_template | yes |
| dpp_reason | sections 3.1 (data root, enforcement, no named volumes); residual CONFLICTS.md 1 and 4 |
All application data lives under `./data/<env>` inside the project. No All application data lives under `./data/<env>` inside the project. No
exceptions, no second locations. exceptions, no second locations.
@@ -109,11 +124,13 @@ see `CONFLICTS.md` items 1 and 4.
### L-2026-10-05-02: Environments ### L-2026-10-05-02: Environments
| Field | Value | | Field | Value |
|--------|-------| |--------------|-------|
| date | 2026-10-05 | | date | 2026-10-05 |
| agent | muse-spark | | agent | muse-spark |
| status | conflict | | status | conflict |
| dpp_template | yes |
| dpp_reason | section 3.5 (envs and one-way snapshots); residual CONFLICTS.md 1 vs bare-metal 28.1 |
Four environments, one shape each, fixed localhost ports (example Four environments, one shape each, fixed localhost ports (example
offsets: staging 19847, production 19848, test 19849). offsets: staging 19847, production 19848, test 19849).
@@ -134,11 +151,13 @@ database): see `CONFLICTS.md` item 1.
### L-2026-10-05-03: Docker law ### L-2026-10-05-03: Docker law
| Field | Value | | Field | Value |
|--------|-------| |--------------|-------|
| date | 2026-10-05 | | date | 2026-10-05 |
| agent | muse-spark | | agent | muse-spark |
| status | conflict | | status | conflict |
| dpp_template | yes |
| dpp_reason | section 28.2 (per-env compose, PROD_ :? guards, bind mounts); residual CONFLICTS.md 2 and 4 |
One compose file per environment, each with its own top-level `name:` so One compose file per environment, each with its own top-level `name:` so
projects can never steal each other's containers. projects can never steal each other's containers.
@@ -158,11 +177,13 @@ template zero-config boot and `SECRET_KEY` hardcoded fallback: see
### L-2026-10-05-04: Environment files law ### L-2026-10-05-04: Environment files law
| Field | Value | | Field | Value |
|--------|-------| |--------------|-------|
| date | 2026-10-05 | | date | 2026-10-05 |
| agent | muse-spark | | agent | muse-spark |
| status | conflict | | status | conflict |
| dpp_template | yes |
| dpp_reason | section 3.4 (env-file contract); residual CONFLICTS.md 2 on secret defaults |
`.env.example` lists every variable the code reads, no more, no less. A `.env.example` lists every variable the code reads, no more, no less. A
maintained contract test asserts the exact key set plus non-empty values maintained contract test asserts the exact key set plus non-empty values
@@ -180,11 +201,13 @@ secret defaults versus loud failure.
### L-2026-10-05-05: Serving law (molohttp) ### L-2026-10-05-05: Serving law (molohttp)
| Field | Value | | Field | Value |
|--------|-------| |--------------|-------|
| date | 2026-10-05 | | date | 2026-10-05 |
| agent | muse-spark | | agent | muse-spark |
| status | folded | | status | folded |
| dpp_template | yes |
| dpp_reason | section 28.4 (front-door reverse proxy); molohttp specifics remain lesson-local |
One front door on 80/443, all local reverse-proxy upstreams. One front door on 80/443, all local reverse-proxy upstreams.
@@ -208,11 +231,13 @@ JSON validate steps remain the lesson source here.
### L-2026-10-05-06: Gallery law ### L-2026-10-05-06: Gallery law
| Field | Value | | Field | Value |
|--------|-------| |--------------|-------|
| date | 2026-10-05 | | date | 2026-10-05 |
| agent | muse-spark | | agent | muse-spark |
| status | folded | | status | folded |
| dpp_template | yes |
| dpp_reason | section 28.5 (screenshot galleries) |
Every environment gets a screenshot gallery, generated the same way Every environment gets a screenshot gallery, generated the same way
every time. every time.
@@ -232,11 +257,13 @@ section 28.5.
### L-2026-10-05-07: Test law ### L-2026-10-05-07: Test law
| Field | Value | | Field | Value |
|--------|-------| |--------------|-------|
| date | 2026-10-05 | | date | 2026-10-05 |
| agent | muse-spark | | agent | muse-spark |
| status | conflict | | status | conflict |
| dpp_template | yes |
| dpp_reason | sections 26.1, 26.3, 27.2 (tests, shared retry, doc text gates); residual CONFLICTS.md 3 (15s vs 60s) |
Mirror layout (`tests/unit`, `tests/api`, `tests/e2e`), full suite green Mirror layout (`tests/unit`, `tests/api`, `tests/e2e`), full suite green
before done. before done.
@@ -257,11 +284,13 @@ Shared retry helper and related gates were folded.
### L-2026-10-05-08: Git law ### L-2026-10-05-08: Git law
| Field | Value | | Field | Value |
|--------|-------| |--------------|-------|
| date | 2026-10-05 | | date | 2026-10-05 |
| agent | muse-spark | | agent | muse-spark |
| status | folded | | status | folded |
| dpp_template | yes |
| dpp_reason | sections 2 and 36 (gitignore list, git law) |
Stage named files only, never broad-add a dirty tree. Commit and push Stage named files only, never broad-add a dirty tree. Commit and push
only on explicit ask, never as a side effect of finishing. only on explicit ask, never as a side effect of finishing.
@@ -283,11 +312,13 @@ Source commit (approx.): `60dd597`. Folded into template sections 2 and
### L-2026-10-05-09: Code law ### L-2026-10-05-09: Code law
| Field | Value | | Field | Value |
|--------|-------| |--------------|-------|
| date | 2026-10-05 | | date | 2026-10-05 |
| agent | muse-spark | | agent | muse-spark |
| status | folded | | status | folded |
| dpp_template | yes |
| dpp_reason | section 32 (code conventions); already largely present, kept as lesson source |
Explicit over implicit, flat over nested, sparse over dense, readable Explicit over implicit, flat over nested, sparse over dense, readable
above all. No comments anywhere except the author line above all. No comments anywhere except the author line
@@ -303,11 +334,13 @@ template; kept here as the lesson source.
### L-2026-10-05-10: Docs law ### L-2026-10-05-10: Docs law
| Field | Value | | Field | Value |
|--------|-------| |--------------|-------|
| date | 2026-10-05 | | date | 2026-10-05 |
| agent | muse-spark | | agent | muse-spark |
| status | folded | | status | folded |
| dpp_template | yes |
| dpp_reason | section 32 (README entry point and operator-guide bullets) |
`README.md` is the living entry point (running, testing, docker, `README.md` is the living entry point (running, testing, docker,
screenshots, data, operations) and stays true to the repo. Each screenshots, data, operations) and stays true to the repo. Each
@@ -320,11 +353,13 @@ section 32.
### L-2026-10-05-11: Handover law ### L-2026-10-05-11: Handover law
| Field | Value | | Field | Value |
|--------|-------| |--------------|-------|
| date | 2026-10-05 | | date | 2026-10-05 |
| agent | muse-spark | | agent | muse-spark |
| status | folded | | status | folded |
| dpp_template | yes |
| dpp_reason | section 37 (secrets handover) |
Secrets are generated with a cryptographic RNG, stored only in their Secrets are generated with a cryptographic RNG, stored only in their
target (`.env` 600, container env), and reported to the owner once in target (`.env` 600, container env), and reported to the owner once in
@@ -334,11 +369,13 @@ Source commit (approx.): `60dd597`. Folded into template section 37.
### L-2026-10-05-12: Multi-agent lesson format for DPP feed ### L-2026-10-05-12: Multi-agent lesson format for DPP feed
| Field | Value | | Field | Value |
|--------|-------| |--------------|-------|
| date | 2026-10-05 | | date | 2026-10-05 |
| agent | grok-bot | | agent | grok-bot |
| status | folded | | status | folded |
| dpp_template | no |
| dpp_reason | process meta for this lesson log; not a template MUST |
This file is reformatted as the shared multi-agent lesson log. Grok Bot This file is reformatted as the shared multi-agent lesson log. Grok Bot
(AbsurdDevelopmentProject) alone updates `/workspace/dpp/dptemplate.md`. (AbsurdDevelopmentProject) alone updates `/workspace/dpp/dptemplate.md`.
+1 -1
View File
@@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta"
[project] [project]
name = "molodetz" name = "molodetz"
version = "1.0.14" version = "1.0.15"
description = "Molodetz, a calm community blog roll." description = "Molodetz, a calm community blog roll."
readme = "README.md" readme = "README.md"
requires-python = ">=3.12" requires-python = ">=3.12"