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
`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
```markdown
### L-YYYY-MM-DD-NN: Short title
| Field | Value |
|--------|-------|
| date | YYYY-MM-DD |
| agent | grok-bot \| muse-spark \| <other-id> |
| status | proposed \| folded \| conflict |
| Field | Value |
|--------------|-------|
| date | YYYY-MM-DD |
| agent | grok-bot \| muse-spark \| <other-id> |
| status | proposed \| folded \| conflict |
| dpp_template | yes \| no |
| dpp_reason | short dry reason |
Body starts here. Project-agnostic. Dry. Complete enough that Grok can
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
### L-2026-10-05-00: Example (format only)
| Field | Value |
|--------|-------|
| date | 2026-10-05 |
| agent | grok-bot |
| status | proposed |
| Field | Value |
|--------------|-------|
| date | 2026-10-05 |
| agent | grok-bot |
| status | proposed |
| dpp_template | no |
| dpp_reason | format example only; not a real lesson |
Applications MUST refuse to start when the configured data directory
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
| Field | Value |
|--------|-------|
| date | 2026-10-05 |
| agent | muse-spark |
| status | conflict |
| Field | Value |
|--------------|-------|
| date | 2026-10-05 |
| agent | muse-spark |
| 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
exceptions, no second locations.
@@ -109,11 +124,13 @@ see `CONFLICTS.md` items 1 and 4.
### L-2026-10-05-02: Environments
| Field | Value |
|--------|-------|
| date | 2026-10-05 |
| agent | muse-spark |
| status | conflict |
| Field | Value |
|--------------|-------|
| date | 2026-10-05 |
| agent | muse-spark |
| 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
offsets: staging 19847, production 19848, test 19849).
@@ -134,11 +151,13 @@ database): see `CONFLICTS.md` item 1.
### L-2026-10-05-03: Docker law
| Field | Value |
|--------|-------|
| date | 2026-10-05 |
| agent | muse-spark |
| status | conflict |
| Field | Value |
|--------------|-------|
| date | 2026-10-05 |
| agent | muse-spark |
| 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
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
| Field | Value |
|--------|-------|
| date | 2026-10-05 |
| agent | muse-spark |
| status | conflict |
| Field | Value |
|--------------|-------|
| date | 2026-10-05 |
| agent | muse-spark |
| 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
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)
| Field | Value |
|--------|-------|
| date | 2026-10-05 |
| agent | muse-spark |
| status | folded |
| Field | Value |
|--------------|-------|
| date | 2026-10-05 |
| agent | muse-spark |
| 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.
@@ -208,11 +231,13 @@ JSON validate steps remain the lesson source here.
### L-2026-10-05-06: Gallery law
| Field | Value |
|--------|-------|
| date | 2026-10-05 |
| agent | muse-spark |
| status | folded |
| Field | Value |
|--------------|-------|
| date | 2026-10-05 |
| agent | muse-spark |
| status | folded |
| dpp_template | yes |
| dpp_reason | section 28.5 (screenshot galleries) |
Every environment gets a screenshot gallery, generated the same way
every time.
@@ -232,11 +257,13 @@ section 28.5.
### L-2026-10-05-07: Test law
| Field | Value |
|--------|-------|
| date | 2026-10-05 |
| agent | muse-spark |
| status | conflict |
| Field | Value |
|--------------|-------|
| date | 2026-10-05 |
| agent | muse-spark |
| 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
before done.
@@ -257,11 +284,13 @@ Shared retry helper and related gates were folded.
### L-2026-10-05-08: Git law
| Field | Value |
|--------|-------|
| date | 2026-10-05 |
| agent | muse-spark |
| status | folded |
| Field | Value |
|--------------|-------|
| date | 2026-10-05 |
| agent | muse-spark |
| 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
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
| Field | Value |
|--------|-------|
| date | 2026-10-05 |
| agent | muse-spark |
| status | folded |
| Field | Value |
|--------------|-------|
| date | 2026-10-05 |
| agent | muse-spark |
| 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
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
| Field | Value |
|--------|-------|
| date | 2026-10-05 |
| agent | muse-spark |
| status | folded |
| Field | Value |
|--------------|-------|
| date | 2026-10-05 |
| agent | muse-spark |
| 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,
screenshots, data, operations) and stays true to the repo. Each
@@ -320,11 +353,13 @@ section 32.
### L-2026-10-05-11: Handover law
| Field | Value |
|--------|-------|
| date | 2026-10-05 |
| agent | muse-spark |
| status | folded |
| Field | Value |
|--------------|-------|
| date | 2026-10-05 |
| agent | muse-spark |
| status | folded |
| dpp_template | yes |
| dpp_reason | section 37 (secrets handover) |
Secrets are generated with a cryptographic RNG, stored only in their
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
| Field | Value |
|--------|-------|
| date | 2026-10-05 |
| agent | grok-bot |
| status | folded |
| Field | Value |
|--------------|-------|
| date | 2026-10-05 |
| agent | grok-bot |
| 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
(AbsurdDevelopmentProject) alone updates `/workspace/dpp/dptemplate.md`.
+1 -1
View File
@@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta"
[project]
name = "molodetz"
version = "1.0.14"
version = "1.0.15"
description = "Molodetz, a calm community blog roll."
readme = "README.md"
requires-python = ">=3.12"