Skip to content

docs(data-modeling): drop the flowchart edge that routed secret values to password - #16865

Merged
baozhoutao merged 2 commits into
mainfrom
claude/issue-16366-secret-decision-tree-edge
Sep 8, 2026
Merged

docs(data-modeling): drop the flowchart edge that routed secret values to password#16865
baozhoutao merged 2 commits into
mainfrom
claude/issue-16366-secret-decision-tree-edge

Conversation

@baozhoutao

@baozhoutao baozhoutao commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

Fixes #16366

What

content/docs/data-modeling/field-type-decision-tree.mdx's decision-tree flowchart had a Text?-branch edge (TEXT -->|Secret value| T8[password]) that routed a secret value to password, contradicting the same page's own quick-reference table, the flowchart's own STRUCT -->|Sensitive secret value| S5[secret] edge, ADR-0100, and the published skill rule.

Round 1 (superseded): deleted the wrong edge outright rather than relabeling it, reasoning that pointing it at secret too would create a second, differently-labeled edge into the same node. Reviewer correctly flagged this as wrong: the chart's root branches on shape (Text? vs Structured Data?), and an api_key/db_password — the table's own secret examples — is text. A reader who answers "Text? yes" for a credential found no secret-value edge at all after round 1; the only surviving secret edge hung off Structured Data?, which that reader answers "no" to. That replaced "routes credentials to the wrong type" with "doesn't route credentials at all" on the branch a text-credential reader actually walks — worse for the reader who filed the card, and two legitimately-converging edges into one node is ordinary in a decision tree, not ambiguous.

Round 2 (current): the Text branch now points at secret instead of being dropped — TEXT -->|Sensitive secret value| S5[secret] — so "Text? yes → is it a secret?" lands on secret. The pre-existing STRUCT -->|Sensitive secret value| S5[secret] edge stays too (kept both, per reviewer's recommendation): an api_key is text and a credential blob is structured, and both are true. S5 already carries a style rule from the Structured branch, so no new style line was needed. password and its table row remain untouched — still a real, supported type, just no longer the flowchart's answer for a secret value.

Audit (card's A2)

Every edge in the flowchart was checked against its corresponding quick-reference-table row, twice: once after round 1's delete (35 edges, one disagreement found and fixed, zero remaining), and again after round 2's add (36 edges — the new TEXT -> secret edge matches the secret table row) — zero disagreeing edges either time. (code and html each appear in a table but have no flowchart edge at all — an omission, not a contradiction, a different defect class per repo scoping rules, so noted but not filed; see the terminal report's out_of_scope_findings.)

Testing

38 gate families derived via node scripts/pm/dispatch-gates.mjs --commands content/docs/data-modeling/field-type-decision-tree.mdx, all run, all green at commit 856264d8b8 (--ran reconciliation: 38 derived, 38 run, 0 NOT-MEASURED, 0 UNRUN). Fresh worktree needed @objectstack/spec, @objectstack/lint, @objectstack/client, @objectstack/client-react built before 10 of the 38 (docs-registry / skill-example / formula / security-posture / transcript-drift checks) could run past PREREQUISITE NOT MET; all 10 green after building.

No changeset: content/docs/** is part of the private @objectstack/docs app; nothing published from any released package moves.


Generated by Claude Code

…s to `password`

The Text? branch of the field-type decision-tree flowchart had
`TEXT -->|Secret value| T8[password]`, contradicting the same page's
quick-reference table (password: "masked on read; stored plaintext at
rest ... prefer secret for real credentials"), ADR-0100, and the
published skill rule — all of which say a secret value belongs in
`secret`.

The flowchart already has a correct edge for this
(`STRUCT -->|Sensitive secret value| S5[secret]`), so rather than add a
second edge into the same `secret` node (which would leave two
differently-labeled paths converging on one answer), the wrong edge is
dropped outright and its now-unused `T8`/`password` style line removed.
The `password` type and its table row are untouched — it's a real,
supported type, just not one the flowchart should route credentials to.

Full flowchart audited edge-by-edge against the quick-reference table;
no other edge disagrees with its table row.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012GKcPZbMoGq7WPzKLfRBTU
…`secret`

Round-1 rework: deleting the Text-branch credential edge outright (previous
commit) left readers who answer "Text? yes" for an api_key/db_password —
the table's own `secret` examples — with no secret-value edge at all on the
branch they actually walk; the only surviving `secret` edge hangs off
`Structured Data?`, which that reader answers "no" to.

Point the Text branch at `secret` instead: `TEXT -->|Sensitive secret
value| S5[secret]`. The Structured-branch edge stays too — an api_key is
text and a credential blob is structured, and a decision tree with two
questions legitimately reaching one answer is ordinary, not ambiguous. `S5`
already has a style rule from the Structured branch, so no new style line
is needed.

Re-ran the full A2 edge-vs-table audit (36 edges now): the new TEXT->secret
edge matches the `secret` table row; zero disagreeing edges.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012GKcPZbMoGq7WPzKLfRBTU
@claude claude Bot added the skip-changeset PR has no user-facing published change; bypasses the changeset gate label Sep 8, 2026
@baozhoutao
baozhoutao marked this pull request as ready for review September 8, 2026 12:35
@baozhoutao
baozhoutao enabled auto-merge September 8, 2026 12:35
@baozhoutao
baozhoutao added this pull request to the merge queue Sep 8, 2026
Merged via the queue into main with commit 5aef6db Sep 8, 2026
37 of 40 checks passed
@baozhoutao
baozhoutao deleted the claude/issue-16366-secret-decision-tree-edge branch September 8, 2026 12:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation size/xs skip-changeset PR has no user-facing published change; bypasses the changeset gate

Projects

None yet

2 participants