Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
123 commits
Select commit Hold shift + click to select a range
4dbab74
docs: mark the errata wave-one spec implemented
vircung Sep 8, 2026
98de97e
docs: recover two stalled working-process design drafts
vircung Sep 8, 2026
75b646b
docs: spec the trigger-framework hub for salesforce-standards
vircung Sep 8, 2026
046b18b
docs: grill the trigger-framework spec
vircung Sep 8, 2026
e744aef
docs: fix architect round-one findings on the trigger-framework spec
vircung Sep 8, 2026
bbd1863
docs: fix the propagation hit in the trigger-framework spec
vircung Sep 8, 2026
db73904
docs: fix architect round-two findings on the trigger-framework spec
vircung Sep 8, 2026
22e3bd2
docs: specify the trigger spec's three mechanisms as separate contracts
vircung Sep 8, 2026
5411140
docs: fix round-three concerns in the trigger-framework spec
vircung Sep 8, 2026
6d9de08
docs: scope the extends-parent rules to closure candidates
vircung Sep 8, 2026
7bb8931
docs: dismiss the propagation gate's hit on a historical ledger line
vircung Sep 8, 2026
5523386
docs: fix round-four concerns in the trigger-framework spec
vircung Sep 8, 2026
4911684
docs: record why the namespace-prefix test was declined
vircung Sep 8, 2026
f4beab4
docs: fix round-five leftovers in the trigger-framework spec
vircung Sep 8, 2026
c565780
docs: state what happens to each touched shipped rule
vircung Sep 8, 2026
f626b87
docs: apply the integrity audit's dispositions and stamp the audit
vircung Sep 8, 2026
4d4b1b4
docs: ship the TDTM fingerprint row with its caveat stated
vircung Sep 8, 2026
3eabad4
docs: add the trigger-frameworks implementation plan with adversary r…
vircung Sep 8, 2026
bcdd4d1
docs: apply adversary round two to the trigger-frameworks plan
vircung Sep 8, 2026
4827919
docs: apply adversary round three to the trigger-frameworks plan
vircung Sep 8, 2026
94fd21c
docs: record two developer rulings on the trigger-frameworks plan
vircung Sep 8, 2026
18a87c4
docs: approve the trigger-frameworks implementation plan
vircung Sep 8, 2026
be3e62a
feat(salesforce-standards): add the salesforce-triggers skill with it…
vircung Sep 8, 2026
d7d0f49
fix(salesforce-standards): keep the disjoint-contexts prose free of a…
vircung Sep 8, 2026
e34dcc0
docs: reword the disjoint-contexts prose in the trigger-frameworks pl…
vircung Sep 8, 2026
fd33d17
feat(salesforce-standards): add the trigger-framework resolution prot…
vircung Sep 8, 2026
e2be323
feat(salesforce-standards): add the frameworkless trigger document
vircung Sep 8, 2026
1dc19f0
docs: record the illustrative-fragment ruling in the trigger-framewor…
vircung Sep 9, 2026
6f802b6
feat(salesforce-standards): add the base-class trigger framework docu…
vircung Sep 9, 2026
0225d66
feat(salesforce-standards): add the metadata-driven trigger framework…
vircung Sep 9, 2026
7924876
feat(salesforce-standards): add the framework comparison for step (c)
vircung Sep 9, 2026
288af42
refactor(salesforce-standards): move trigger content out of salesforc…
vircung Sep 9, 2026
7ce3b07
feat(salesforce-standards): resolve the trigger framework before grad…
vircung Sep 9, 2026
f0d590c
docs: normalize whitespace in the trigger-frameworks plan's phrase ch…
vircung Sep 9, 2026
795d080
fix(salesforce-standards): wrap the review command's dispatch enumera…
vircung Sep 9, 2026
ff038c9
feat(salesforce-standards): route triggers and document the declarati…
vircung Sep 9, 2026
c37861e
docs(salesforce-standards): list the salesforce-triggers skill on the…
vircung Sep 9, 2026
2070b14
fix(salesforce-standards): name the document rather than reuse the un…
vircung Sep 9, 2026
ba95d0a
docs: back-port the final-review fixes into the trigger-frameworks plan
vircung Sep 9, 2026
634b843
docs: record the toolchain-rule homes narrowing in the trigger-framew…
vircung Sep 9, 2026
fc0fa9e
fix(salesforce-standards): name .claude/CLAUDE.md among the declarati…
vircung Sep 9, 2026
a00d2ed
docs: back-port the declaration-homes fix and the dogfood ruling into…
vircung Sep 9, 2026
a8a1e92
chore(salesforce-standards): mint the trigger-frameworks dogfood prer…
vircung Sep 9, 2026
1b2657b
Merge branch 'feature/trigger-frameworks' into develop
vircung Sep 9, 2026
c5b5679
docs: spec errata wave four, grilled and architect round one
vircung Sep 11, 2026
173bdf4
docs: apply architect round one to the errata wave-four spec
vircung Sep 11, 2026
800422d
docs: repair the glossary check the fix wave invalidated
vircung Sep 11, 2026
3cdc849
docs: apply architect round two to the errata wave-four spec
vircung Sep 11, 2026
8b0ea66
docs: restore the round-one gate line and signal to their own heading
vircung Sep 11, 2026
dcb0a69
docs: apply architect round three to the errata wave-four spec
vircung Sep 11, 2026
67fdf20
docs: apply architect round four to the errata wave-four spec
vircung Sep 11, 2026
2bb8fc7
docs: dispose the integrity audit of the errata wave-four spec
vircung Sep 11, 2026
4b6c650
docs: answer four implementer questions and adjudicate the errata wav…
vircung Sep 11, 2026
4ac5151
docs: implementation plan for errata wave four
vircung Sep 11, 2026
b0ab00b
docs: apply plan-adversary round one to the errata wave-four plan
vircung Sep 11, 2026
c9690ee
docs: correct three step references the renumbering left stale
vircung Sep 11, 2026
3d6fa7b
docs: apply plan-adversary round two to the errata wave-four plan
vircung Sep 11, 2026
269e9fb
docs: make the wrap check independent of shell word splitting
vircung Sep 11, 2026
1d0a953
docs: apply plan-adversary round three to the errata wave-four plan
vircung Sep 11, 2026
4a3e6bd
docs: cut the branch-naming item back to what its spec item asks for
vircung Sep 11, 2026
92fe143
docs: apply the confirming round to the errata wave-four plan
vircung Sep 12, 2026
bc7fe56
docs: rule that an implemented plan's resolution keeps its body note
vircung Sep 12, 2026
5ea3f6c
docs: close the errata wave-four plan's review loop and approve it
vircung Sep 14, 2026
89f86ce
feat(working-process): close a plan's loop only on a full-document round
vircung Sep 14, 2026
1d14cc1
feat(working-process): bound the cap's promise and publish the branch…
vircung Sep 14, 2026
16f9344
feat(working-process): widen the plan exception, define the latest he…
vircung Sep 14, 2026
e823b78
docs(glossary): carry ordinal continuity and clear the Chain debt com…
vircung Sep 14, 2026
50eee1d
style(glossary): rewrap the Chain debt entry after the repunctuation
vircung Sep 14, 2026
08ebd16
feat(working-process): report two hits on one document as a shape
vircung Sep 14, 2026
c84b8ae
docs: measure the wrap on the lines this wave adds, not on whole-file…
vircung Sep 14, 2026
b6c1495
feat(working-process): ship the propagation duties as an author-facin…
vircung Sep 14, 2026
6a8ac6b
docs: exempt table rows from the wrap check, as the form cannot wrap
vircung Sep 14, 2026
4e35562
style(glossary): rewrap the Confirming round entry
vircung Sep 14, 2026
8a38f3e
fix(working-process): state the co-firing line as a shape, not a judg…
vircung Sep 14, 2026
102d8b4
Merge branch 'feature/process-wave-four' into develop
vircung Sep 14, 2026
a3c5e9e
chore(working-process): mint the process-wave-four dogfood prerelease
vircung Sep 14, 2026
8ff1cd1
docs: mark the errata wave-four spec and plan implemented
vircung Sep 14, 2026
6eebb6e
docs: grill the errata wave-five spec and mint the Origin term
vircung Sep 14, 2026
6331430
docs: recount the Owner legs the wave-five spec cites
vircung Sep 14, 2026
a6ded8e
docs: stamp architect round one on the wave-five spec and apply its l…
vircung Sep 14, 2026
6ca1ffb
style: restore the list indent on the wave-five spec's ordinal clause
vircung Sep 14, 2026
7c0e499
docs: apply architect round one's rulings to the errata wave-five spec
vircung Sep 14, 2026
4a62dbf
docs: mark the output-style precedence an assumption in the wave-five…
vircung Sep 14, 2026
340cf08
docs: apply architect round two to the errata wave-five spec
vircung Sep 14, 2026
561ca98
docs: close the architect loop on the errata wave-five spec
vircung Sep 15, 2026
fdf0231
docs: approve the errata wave-five spec
vircung Sep 15, 2026
38fadff
docs: dispose the integrity audit of the errata wave-five spec
vircung Sep 15, 2026
74320d8
docs: rule on the integrity audit's held defects and widen W2 and W3
vircung Sep 15, 2026
3092212
style: rewrap the wave-five spec's design-personas citation
vircung Sep 15, 2026
163ed70
docs: dispose the integrity audit's implementer questions
vircung Sep 15, 2026
fa77c99
docs: rule on the integrity audit's held questions
vircung Sep 15, 2026
878a8ae
docs: stamp the integrity audit on the errata wave-five spec
vircung Sep 15, 2026
c4fb211
docs: write the implementation plan for errata wave five
vircung Sep 15, 2026
6177f73
style: fix nested emphasis in the wave-five plan's deviation list
vircung Sep 15, 2026
9903751
fix: correct the dispatch-record count in the wave-five plan's checks
vircung Sep 15, 2026
38386cd
fix: correct the bare store-path check in the wave-five plan
vircung Sep 15, 2026
0a60c69
docs: stamp the adversary round on the wave-five plan and dispose its…
vircung Sep 15, 2026
481ba9a
style: rewrap the wave-five plan's gate-episode note
vircung Sep 15, 2026
12729bc
feat(working-process): rule on the adversary's held findings in the w…
vircung Sep 15, 2026
1eca920
fix: recount the wave-five plan's out-of-scope and file totals
vircung Sep 15, 2026
4cc7f4a
docs: stamp the adversary's second round on the wave-five plan
vircung Sep 15, 2026
01b7e46
docs: rule on the adversary's second round across the wave-five spec …
vircung Sep 15, 2026
034f0c3
fix: match the wave-five plan's annotation scope to the corrected spec
vircung Sep 15, 2026
7d97cd9
docs: stamp the confirming adversary round on the wave-five plan and …
vircung Sep 15, 2026
68fb84b
docs: resolve the adversary loop and approve the wave-five plan
vircung Sep 15, 2026
9739021
feat(working-process): give the verdict relay a header and a dispatch…
vircung Sep 15, 2026
3c860ec
feat(working-process): state the consultation floor and digest its relay
vircung Sep 15, 2026
a8907ae
feat(working-process): hold a spec-origin finding at triage
vircung Sep 15, 2026
3590342
feat(working-process): meet the consultation floor in the dispatch re…
vircung Sep 15, 2026
7acf0a8
feat(working-process): emit the finding's origin from the plan adversary
vircung Sep 15, 2026
e444368
feat(working-process): land a cross-document fix in its own ledger
vircung Sep 15, 2026
20e3366
docs(glossary): mint the dispatch record and move the relay's floor
vircung Sep 15, 2026
f261024
Merge branch 'feature/process-wave-five' into develop
vircung Sep 15, 2026
8cc3c98
chore(working-process): mint the process-wave-five dogfood prerelease
vircung Sep 15, 2026
b388f14
docs: mark the errata wave-five spec and plan implemented
vircung Sep 15, 2026
fec6cd3
docs: mark the salesforce trigger-frameworks spec and plan implemented
vircung Sep 15, 2026
7816426
docs: add a changelog to every plugin
vircung Sep 15, 2026
d7dab0a
chore: mint release versions - working-process 0.17.0, salesforce-sta…
vircung Sep 15, 2026
f116570
docs: state where a plugin's changelog lives and when its entry is wr…
vircung Sep 15, 2026
db7e9a5
ci: check a bumped plugin's changelog heading and ban an Unreleased s…
vircung Sep 15, 2026
00927f5
docs: cut the authoring mechanics from the plugin changelog preambles
vircung Sep 15, 2026
2a793f1
docs: place the Unreleased heading and fold the changelog bump clause
vircung Sep 15, 2026
cf7d4c2
docs: a dev prerelease hangs off a version above what develop carries
vircung Sep 15, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
{
"name": "salesforce-standards",
"source": "./plugins/salesforce-standards",
"description": "Salesforce coding standards for the sf CLI toolchain: area skills for Apex, LWC, Flow, data and security model plus maintenance-first legacy UI, a code-review stack, a plan-review checklist, and a salesforce-toolchain rule"
"description": "Salesforce coding standards for the sf CLI toolchain: area skills for Apex, Apex triggers, LWC, Flow, data and security model plus maintenance-first legacy UI, a code-review stack, a plan-review checklist, and a salesforce-toolchain rule"
},
{
"name": "project-memory",
Expand Down
44 changes: 28 additions & 16 deletions .claude/rules/plugin-versioning.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,27 +18,39 @@ paths:
merging to master without changing that string delivers nothing to
existing users, so a release PR with no bumps for its changed
plugins is invalid.
- Every plugin keeps a `CHANGELOG.md` at its root: released versions
newest first, each heading carrying the version and its date. The file
installs with the plugin, so a copy on disk carries the history of
exactly that copy, and a plugin whose only change is that file still
takes a patch bump.
- A topic branch writes its entry under an `## Unreleased` heading at
the top of the file, before it merges into `develop`, while the author
still knows what the change means. The release PR renames that heading
to `## <version> — <date>` in the commit that mints the version, and
the PR body is assembled from the entries that changed.
- Dogfooding unreleased content needs a changed version string — the
plugin cache keys content by version. A topic branch that dogfoods a
plugin sets `X.Y.Z-dev.<discriminator>` on it — the issue number the
branch name carries, or the branch short-name when the topic has no
issue (e.g. `-dev.design-personas`). Widening the discriminator
instead of minting another channel keeps one channel for one purpose;
the discriminator only needs to be unique among parallel topics. The
suffix flows into develop as-is. A topic that
does not dogfood never touches the version. On a version-line merge
conflict between parallel topics, the merging topic's own
`-dev.<discriminator>` wins — both strings are provisional. The release PR
strips every `-dev` suffix while minting the final numbers; the
`release-guard` workflow fails any PR to master that carries a
prerelease version or a changed plugin without a bump.
issue (e.g. `-dev.design-personas`). The suffix hangs off a version
above the one `develop` currently carries — never a re-suffix of a
version already minted. Widening the discriminator instead of minting
another channel keeps one channel for one purpose; the discriminator
only needs to be unique among parallel topics. The suffix flows into
develop as-is. A topic that does not dogfood never
touches the version. On a version-line merge conflict between parallel
topics, the merging topic's own `-dev.<discriminator>` wins — both
strings are provisional. The release PR strips every `-dev` suffix
while minting the final numbers; the `release-guard` workflow fails
any PR to master that carries a prerelease version or a changed plugin
without a bump.
- Prerelease grammar: `-<channel>.<discriminator>`. Defined channels:
`dev.<discriminator>` (topic-branch dogfooding, above) and `rc.<n>` (release
candidate — a freeze of develop dogfooded as one bundle when a
release warrants whole-unit validation; minted by a release-prep
commit and stripped by the release PR like any prerelease). Future
channels extend this list by editing this rule only — the
release-guard workflow rejects every prerelease on master
`dev.<discriminator>` (topic-branch dogfooding, above) and
`rc.<n>` (release candidate — a freeze of develop dogfooded as one
bundle when a release warrants whole-unit validation; minted by a
release-prep commit and stripped by the release PR like any
prerelease). Future channels extend this list by editing this rule
only — the release-guard workflow rejects every prerelease on master
(`*-*`), so new channels never need a CI change.
- **patch** — wording or docs fixes, no behavior change;
- **minor** — a new component or section, backward-compatible behavior
Expand Down
41 changes: 40 additions & 1 deletion .github/workflows/release-guard.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
# Release guard — runs on PRs targeting master (release PRs from develop).
# Enforces the plugin-versioning rule's release-time invariants:
# 1. no prerelease (-dev.*) version string reaches master;
# 2. every plugin changed since master carries a version bump.
# 2. every plugin changed since master carries a version bump;
# 3. a bumped plugin's changelog names that version at its top;
# 4. no Unreleased section survives the release.
name: release-guard

on:
Expand Down Expand Up @@ -30,6 +32,43 @@ jobs:
done
exit $fail

- name: A bumped plugin's changelog names the new version
run: |
base="origin/${{ github.base_ref }}"
fail=0
for d in plugins/*/; do
name=$(basename "$d")
manifest="${d}.claude-plugin/plugin.json"
head_v=$(jq -r .version "$manifest")
base_v=$(git show "$base:$manifest" 2>/dev/null | jq -r .version || echo "<absent>")
if [ "$base_v" = "$head_v" ]; then continue; fi
changelog="${d}CHANGELOG.md"
if [ ! -f "$changelog" ]; then
echo "::error file=$manifest::plugin '$name' moved to '$head_v' but ships no CHANGELOG.md"
fail=1
continue
fi
top=$(grep -m1 '^## ' "$changelog" || true)
escaped=$(printf '%s' "$head_v" | sed 's/[.]/\\./g')
if ! printf '%s\n' "$top" | grep -qE "^## $escaped — [0-9]{4}-[0-9]{2}-[0-9]{2}$"; then
echo "::error file=$changelog::plugin '$name' moved to '$head_v' but its top heading reads '$top' — expected '## $head_v — <YYYY-MM-DD>'"
fail=1
fi
done
exit $fail

- name: No Unreleased section reaches master
run: |
fail=0
for f in plugins/*/CHANGELOG.md; do
[ -f "$f" ] || continue
if grep -q '^## Unreleased' "$f"; then
echo "::error file=$f::rename the Unreleased heading to the minted version before releasing"
fail=1
fi
done
exit $fail

- name: Changed plugins carry a bump
run: |
base="origin/${{ github.base_ref }}"
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ Marketplace of [Claude Code](https://code.claude.com) plugins by Missing Bits.
|--------|------|-------------|
| `working-process` | [README](plugins/working-process/README.md) | Spec-driven working process: grilling-session, architect-session, system-designer-session, process-status and sync-rules skills, architect and plan-adversary verdict agents, two verdict-free consultation agents, propagation-auditor and integrity-auditor audit agents, distributed process rules |
| `python-standards` | [README](plugins/python-standards/README.md) | Python coding standards for uv + ruff + pytest + pyright: area skills, code-review stack, plan-review checklist, distributed toolchain rule |
| `salesforce-standards` | [README](plugins/salesforce-standards/README.md) | Salesforce coding standards for the sf CLI toolchain: area skills (Apex, LWC, Flow, data/security model, legacy UI), code-review stack, plan-review checklist, distributed toolchain rule |
| `salesforce-standards` | [README](plugins/salesforce-standards/README.md) | Salesforce coding standards for the sf CLI toolchain: area skills (Apex, Apex triggers, LWC, Flow, data/security model, legacy UI), code-review stack, plan-review checklist, distributed toolchain rule |
| `project-memory` | [README](plugins/project-memory/README.md) | In-repo project memory: committed Team memory (`docs/memory/`) and per-user Private memory (`.claude/memory/`), with `memory-review-session`, `migrate-memory`, and `redirect-memory` skills, distributed as a Rules payload |

## License
Expand Down
71 changes: 57 additions & 14 deletions docs/domain/glossary.md
Original file line number Diff line number Diff line change
Expand Up @@ -134,6 +134,14 @@ bracket slot (`[Minor]`). The collective noun is
model-capability ladder.
_Avoid_: severity tier

**Origin**:
The document a review finding traces to — `plan`, `spec`, or `both` —
named by the reviewer that found it rather than derived at triage. A
finding originating in the spec is held unless a written decision
licenses the edit, since editing a spec from inside a plan review is
design work.
_Avoid_: owner (for a document), source

**Rule tag**:
The inline parenthesized annotation at a rule's (or sub-rule's)
definition site carrying its identity and grade:
Expand Down Expand Up @@ -339,7 +347,11 @@ scope. Those dispatch-time fields are immutable — they say what one
reviewer was given and returned — while a later event about that round
appends after the heading's closing parenthesis, never inside it. The
loop's derived state — round count, the all-Minor signal, the
diff-scoped chain — is read by folding these.
diff-scoped chain — is read by folding these. The latest round heading
is the one carrying the highest ordinal, wherever it sits in the
section: the rules prescribe no order for the blocks, and live ledgers
run both ways. Ordinals run per document and per field, and continue
across loops rather than restarting.
_Avoid_: round title, round record (for the heading alone)

**Disposition line**:
Expand All @@ -363,14 +375,30 @@ responsibility for the part no round re-read — or explicitly decline to.
The consumption gate owns it, not the loop, which owes nothing further
once it terminates. Discharged three ways: an integrity audit, any later
full-document round whatever its verdict, or the developer's recorded
decline — of the gate's pair offer, or, where the document is already
implemented and the gate never fired, of the question that offer would
have put. Recorded as `, debt discharged <date>` appended to that LGTM's
round heading, and the record says only that it happened and when, never
how or how well. Distinct from the diff-scoped chain itself, the
round-one-plus-reviewed-waves structure the LGTM certifies.
decline. What they decline is the gate's pair offer — or, where the
document is already implemented and the gate never fired, the question
that offer would have put. Recorded as `, debt discharged <date>`
appended to that LGTM's round heading, and the record says only that it
happened and when, never how or how well. Distinct from the diff-scoped
chain itself, the round-one-plus-reviewed-waves structure the LGTM
certifies.
_Avoid_: chain accepted, chain closed, unclosed chain

**Confirming round**:
The full-document round a plan's loop owes before it may close, whenever
the latest round heading is diff-scoped — whatever path would otherwise
end the rounds. A plan already `implemented` owes none: there the round
is discharged by recorded decline without any dispatch, as the sibling
chain debt is, since completed work is not re-reviewed. It runs as the
same loop's last round, counts against the round cap like any other, and
its verdict is the one stamped; on a plan the resolution annotation and
the adjudication wait for it. It inherits the gating of whatever ended
the rounds: autonomous where autonomy still stands, the developer's to
order after a terminator that suspends it. A spec owes none: its
diff-scoped chain is discharged at the consumption gate, where a
full-document round is one arm of the pair offer.
_Avoid_: final round, closing round, full read (as the name)

**Document branch**:
The local branch a review loop's per-round commits live on, named
`<topic>.docs` — git refuses a ref nested under an existing branch, so a
Expand All @@ -392,12 +420,26 @@ _Avoid_: review agent (unqualified), reviewer agent

**Relay**:
The delivery of a background agent's result to the developer before any
further action on it — a verdict agent's report before its stamp (the
verdict, the model self-report, and every finding in substance), a
consultation's Contribution attributed and substantially verbatim. The
developer's standing veto point.
further action on it — a verdict agent's report before its stamp (a
header carrying the verdict, the model self-report and the counts, then
one line per finding, that list never condensed), a consultation's
Contribution digested one paragraph per focusing question. Either way it
names the Dispatch record holding the full text. The developer's
standing veto point.
_Avoid_: report back, forward (as the term)

**Dispatch record**:
The file a dispatcher writes before relaying a background agent's
result — one dispatch, one file, holding what the agent returned
verbatim under a four-line header (date, agent, model self-report,
subject). Kept per subject under `.claude/working-process/<stem>/`,
git-ignored, and NOT a Process directory — a per-checkout store under
the `.claude/` config namespace, as Private memory is a per-user one. It
survives compaction, the session's end and a branch switch, and no more:
that bound is what lets a Relay condense. Never a Review report, the
counted document a code-review run writes under `docs/code-review/`.
_Avoid_: dispatch log, transcript file

**Session skill**:
A skill whose content is an open-ended conversation, named `*-session` —
`architect-session`, `grilling-session`, `memory-review-session` among
Expand All @@ -416,9 +458,10 @@ _Avoid_: informal review, advisory review

**Contribution**:
What a consultation returns: reasoning, options, and the questions the
persona would need answered next, relayed to the developer attributed and
substantially verbatim. Never graded and never counted — the graded,
counted unit is a Finding, which belongs to verdict-bearing reviews.
persona would need answered next, held attributed and substantially
verbatim in its Dispatch record and relayed from there as a digest.
Never graded and never counted — the graded, counted unit is a Finding,
which belongs to verdict-bearing reviews.
_Avoid_: consultation finding, recommendation

**Project memory**:
Expand Down
Loading
Loading