Skip to content

feat: model context sources in BPMN - #7

Merged
tenkeb merged 31 commits into
mainfrom
feat/context-sources
Oct 4, 2026
Merged

tenkeb merged 31 commits into
mainfrom
feat/context-sources

Conversation

@tenkeb

@tenkeb tenkeb commented Oct 4, 2026

Copy link
Copy Markdown
Contributor

Worum es geht

Kontext ist am Ende Daten. Ab jetzt modelliert das Diagramm nicht nur Übergaben (Data Objects), sondern auch woher jeder Schritt sein Wissen holt und wohin er schreibt: als Data Store mit Art: (wissen | live | gedächtnis) und Ort: (notebook:, mcp:, cli:, URL, datei:, websearch). Lesen und Schreiben ergeben sich aus der Pfeilrichtung. Dazu kommen prozessweite Ein- und Ausgaben. Plan und Aufgaben: docs/plans/kontextquellen/.

Was die Pipeline daraus macht

  • analyze: inventarisiert Data Stores und Prozess-I/O in contextSources und workflowIO und fragt bei fehlendem Art:/Ort: oder ungültiger Kombination nach.
  • knowledge: Die Pfeile von Wissens-Stores ersetzen die nachträgliche Zuordnung von Notebooks zu Lanes. Jeder lesende Task bekommt knowledge/<taskId>.md.
  • design: löst die Tools von Live-Stores auf (lesen/schreiben, unklar = schreiben) und legt sie an die Rolle: als Agent-tools: oder in permissions.allow.
  • generate:
    • ## Kontextquellen in Skills und Agents
    • Schreibschutz-Hook (permissionDecision: "ask") und Gedächtnis-Cap-Hook
    • argument-hint aus der Prozess-Eingabe
    • Wissensdateien je Task als gekürzte references/
  • verify: prüft Stores und Prozess-I/O in beide Richtungen. Schreiben in einen Live-Store ohne vorherigen userTask ist ein Fehler.
  • Mapping-Ansicht: zeigt Kontextquellen in Rosé.

Weitere Änderungen

  • bpmn-authoring: Data Stores und Prozess-I/O zeichnen; Fixtures context-flow.bpmn und context-flow-unguarded.bpmn
  • bpmn-process-design: fragt beim Modellieren nach den Kontextquellen
  • BPMN-NOTATION.md als Referenz der Notation; README.md und ARCHITECTURE.md beschreiben die Kontextquellen
  • examples/user-story-refinement:
    • mit Wissens-Stores je Phase und der Prozess-Eingabe „Feedback“ neu erzeugt
    • liest und schreibt das Backlog in GitHub
  • examples/lanecraft: lanecraft selbst als BPMN-Diagramm
  • Skills mit /trim-the-fat gestrafft; grilling-Skill hinzugefügt

Prüfung

  • npm run validate grün, mit einer Warnung: Die CLAUDE.md im Plugin-Root wird nicht als Kontext geladen.
  • examples/dark-factory/tools/dark-factory-gen/regenerate.sh: RESULT: PASS, no reference problems, die drei Smoke-Zeilen und mapping view ok
  • verify auf examples/user-story-refinement: RESULT: PASS, mit 9 Data Stores, 2 Prozess-Eingaben und 9 Prozess-Ausgaben. Alle 5 Schreibzugriffe auf Live-Stores sind durch eine Freigabe geschützt.

🤖 Generated with Claude Code

tenkeb and others added 30 commits October 3, 2026 15:44
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Task documentation already uses Quelle for provenance; a store's location
is a different thing. Spec key quelle becomes ort.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…-flow fixtures

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Six wissen stores, all reading the notebook "The Product - Business Design".

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…ries

Convention-detected inputs and outputs are candidates; analyze records the
one the user picks. Requiring a workflow-* kind for every candidate would
mislabel intermediate artifacts as process outputs.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…stores

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
The spec gains six contextSources, workflowIO and the store elements. Each of
the 19 tasks that read a Product-Methodik store gets its own cited
knowledge/<taskId>.md from the notebook "The Product - Business Design".

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…ntext sources

The five human checkpoints read the knowledge stores too, so 24 tasks have their
own cited knowledge file; 11 keep the phase-level mapping. The entry skill asks
for feedback, backlog and fachkonzept.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
`argument-hint: [a] [b]` is not valid YAML. Found while generating the
user-story-refinement example, whose input has three required fields; the
single-field smoke test had passed because `[a]` parses as a list.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
The turquoise sat too close to the orchestrator teal in the mapping view.
Rose (#F8BBD0 / #880E4F) is a hue no other kind uses and keeps the contrast
the script enforces (5.85:1 on its fill, 9.45:1 on white).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
A reader of a wissen store has its own knowledge/<taskId>.md. The new
install-knowledge.mjs installs each as references/<taskId>.md in the skill
that owns the task: footnotes keep the source and drop the verbatim quote and
FAQ id, pointers between files are fixed, long files get a contents line, and
the owner's Kontextquellen section lists one line per store. Merging the files
into domain-knowledge.md would collide on footnote numbers.

Found by the quality review of the user-story-refinement example: the FAQ ids
cannot be followed at run time and the quotes doubled each file (-42% bytes).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Per-task knowledge files installed in the skills, the entry skill takes
feedback, backlog and fachkonzept as input and links the phase files at its
gateways, the Gw_Erkenntnis decision is applied, and the mapping view shows the
stores in rose. Content fixes from the quality review went into knowledge/ so a
regeneration reproduces them.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
BPMN-NOTATION.md lists every BPMN element with what it means when a
workflow and its context are modelled for lanecraft and what the
pipeline generates from it: roles, task types, control flow, events,
phases, data objects, data stores (Art x Ort), process input/output,
unsupported constructs, pattern choice and the mapping-view colours.
The README links it from "Was jedes Element bedeutet".

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
install-knowledge.mjs replaced the whole "## Kontextquellen" section with
the wissen lines, so a re-run dropped the live and gedächtnis bullets that
generate step 5 writes. It now carries them over under "Live and memory
stores, used at run time", and only points at references/domain-knowledge.md
when the skill has one.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…itHub

The product backlog is no longer two data objects but three live data
stores on the same GitHub backlog (Art: live, Ort: cli:gh), cut by phase.
The workflow writes into it at five places, each right after its own
approval userTask: a note on an open story (I3 -> I4), an Opportunity
Backlog entry (I5 -> I6), the merge into a duplicate (P9 -> P6), and after
"Story priorisieren & Übernahme ins Backlog freigeben" the new story in the
Ready column (P8) and the marks on affected stories (P10). "Betroffene
Stories zur Anpassung markieren" becomes a proposal step ("Anpassungen an
betroffenen Stories vorschlagen").

Re-ran analyze, knowledge, design (two architect reviews), generate and
verify (RESULT: PASS, no red). New: the write skill story-backlog-publish
(approval check, exact approved text via --body-file, marker-based
idempotent resume), a PreToolUse write guard that asks on every non-read
gh call, and settings.json with the gh read permissions. Example README,
README and ARCHITECTURE describe the live backlog.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Ran trim-the-fat over bpmn-authoring, bpmn-process-design,
bpmn-to-agentic-workflow and the five bpmn2agent-* stages (SKILL.md and
references only; scripts, templates, schema and fixtures untouched).
21,799 -> 21,089 words. Headings, step numbers, names and descriptions
are unchanged, so cross-references still resolve. Dropped rationale that
changes no decision, stated duplicated rules once (tool read/write
heuristic in the mapping rubric, context-source routes in verify) and
fixed the laneSet position in bpmn-authoring to match its element order.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
skill-template.md, agent-template.md and mapping-report-template.md point
to "mapping-rubric.md's language rule", which did not exist. The rubric
now states it: BPMN labels verbatim in meta.language, everything else
English, except the generated README and the fixed German tokens.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Adds examples/lanecraft/ with the pipeline modelled in its own notation:
six lanes, seven human checkpoints, both pipeline loops with caps and
nine data stores of all three kinds. Validated and inventory-clean; not
yet run through the pipeline.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@tenkeb
tenkeb merged commit 8a1818b into main Oct 4, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant