2026-08-10 12:00:00 +00:00
|
|
|
# F-009: Documentation attention and actual work mass point at different components
|
|
|
|
|
|
|
|
|
|
category: structural-drift
|
|
|
|
|
confidence: medium
|
|
|
|
|
|
|
|
|
|
evidence:
|
|
|
|
|
- Open issues per component (`analysis/data/gitlab_issues.json`):
|
|
|
|
|
`axion1337.chat-gitops` 35 · `management` 26 · `ThreadNet-Web` 9 · `threadnet-call` 1 ·
|
|
|
|
|
`thread-net-git` 0 · `threadnet-operating` 0.
|
|
|
|
|
- Commit volume over all refs (`analysis/data/git_activity.tsv`):
|
|
|
|
|
`axion1337.chat-gitops` 269 · `ThreadNet-Web` 52 · `threadnet-operating` 21 ·
|
|
|
|
|
`threadnet-call` 12 own · `thread-net-git` 11.
|
|
|
|
|
- Repository substance (`analysis/data/tree_*.txt`): `thread-net-git` holds **4 tracked
|
|
|
|
|
files** (`.gitignore`, `README.md`, `docker-compose.yml`, one file under `backup/`) and
|
|
|
|
|
one markdown document; last commit 2026-08-02, 7 days before the reference date.
|
|
|
|
|
`threadnet-operating` holds 27 files, 2 documents.
|
|
|
|
|
- Against that, `vision/threadnet.md:9-11` presents all four ThreadNet repos as equal
|
|
|
|
|
members of the product line, and `roadmap.md:50-62` gives the ThreadNet line six numbered
|
|
|
|
|
items, five of which concern `ThreadNet-Web` and none of which concern `thread-net-git`
|
|
|
|
|
or `threadnet-operating`.
|
|
|
|
|
- The component carrying half the open work, `axion1337.chat-gitops`, is named in the
|
|
|
|
|
vision document **not at all** and in `CLAUDE.md` once, parenthetically, as an equation
|
|
|
|
|
to a display name (`CLAUDE.md:6`).
|
|
|
|
|
- All 14 issues of the newly created M5 — Härtung milestone are in `axion1337.chat-gitops`.
|
|
|
|
|
|
|
|
|
|
impact: A reader forming a mental model from `vision/` and `roadmap.md` will weight five
|
|
|
|
|
components roughly equally and will not learn that one of them holds half the backlog while
|
|
|
|
|
two are effectively dormant. Session-start reading therefore mis-primes exactly the
|
|
|
|
|
prioritisation that the roadmap exists to steer. This is a mismatch, not a defect: dormancy
|
|
|
|
|
may be entirely intended — but the documents do not say so, and `README.md:68-70` requires
|
|
|
|
|
each point to describe "den tatsächlichen Zustand".
|
|
|
|
|
|
|
|
|
|
root-cause pattern: **Documents describe the intended shape, the tracker holds the actual
|
|
|
|
|
one, and nothing reconciles them.** Related to F-001 in mechanism: the tracker is where
|
|
|
|
|
reality accumulates, the documents are written once.
|
|
|
|
|
|
|
|
|
|
neckbeard mechanism: `AGENTS.md:79` plus `scripts/gen_status.py`: `STATUS.md` is a generated
|
|
|
|
|
overview of open issues, active designs and recent ADRs, explicitly "do not edit by hand",
|
|
|
|
|
and `WORKFLOW.md:128` puts reviewing it for "anything stale or surprising" on the refinement
|
|
|
|
|
agenda. With ADR-0002's in-repo issues, work mass is countable from the tree, so the
|
|
|
|
|
imbalance would be visible in a generated artifact rather than inferable only from an API.
|
|
|
|
|
**Gap in neckbeard:** `gen_status.py` covers one repo. This project is six, and neckbeard
|
|
|
|
|
has no cross-repo status concept — the same missing "components" artifact as in F-008.
|
|
|
|
|
|
|
|
|
|
confidence note: medium rather than high — the underlying counts are exact, but "attention
|
|
|
|
|
should follow work mass" is a judgement about intent, and dormant-by-design is a legitimate
|
|
|
|
|
answer the documents simply do not give.
|
2026-08-10 12:00:00 +00:00
|
|
|
|
|
|
|
|
post-analysis addendum (2026-08-10, session close): the human confirmed the dormancy is
|
|
|
|
|
**intentional and staged**: a base feature set first, then build out monitoring and
|
|
|
|
|
security — explicitly avoiding getting lost in polish ("sich nicht in Chromleisten
|
|
|
|
|
verrennen"). `threadnet-operating` rests deliberately. This resolves the intent question
|
|
|
|
|
and sharpens the finding rather than dissolving it: the strategy exists, but it lives in
|
|
|
|
|
the owner's head and now in this file — no repo document records it. Implication for
|
|
|
|
|
Session 2's components artifact (neckbeard gap 2): it needs a lifecycle field
|
|
|
|
|
(active / dormant, with the staging rationale) so that intent like this is recorded where
|
|
|
|
|
sessions read it.
|