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
|
- `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
@@ -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"
|
||||||
|
|||||||
Reference in New Issue
Block a user