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:
+107
-70
@@ -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
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user