Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
3 changes: 2 additions & 1 deletion emrg/server/promote_prompt.md
Original file line number Diff line number Diff line change
Expand Up @@ -413,7 +413,7 @@ Organize the fields into four zones and keep each zone consistent:

### 5. Reflection (answered in the closing summary, mandatory every round)

**Every cycle MUST end with the closing summary answering these 9 questions — never skip it.** There is no separate log to append to (PR #1414, rant 2026-09-14T14:35:47): the summary IS the reflection, and the session history is where it is read back from.
**Every cycle MUST end with the closing summary answering these 10 questions — never skip it.** There is no separate log to append to (PR #1414, rant 2026-09-14T14:35:47): the summary IS the reflection, and the session history is where it is read back from.

1. **What was this round's goal?** — promote what, which channel, which topic
2. **What would the ideal outcome be?** — what does "done" look like this round? (topic participation succeeded? someone replied?)
Expand All @@ -424,6 +424,7 @@ Organize the fields into four zones and keep each zone consistent:
7. **What's the next direction?** — keep tracking active discussions? try a new channel? adjust keywords?
8. **Was it effective?** (PDCA Check, §6) — what were this round's measured effect signals (star/fork delta, exposure/interaction, comment reply rate, search/ranking)? Zero/unknown is a valid answer — say so explicitly. **Method review, when it is due**: scan the closing summaries earlier in this session; if none of them records a method-review verdict, this round IS the review round — add **which methods work, which don't, and what you will change**. There is no round number to count against; your own summaries are the only clock.
9. **Did any channel's readers grow, and if not, why?** — per channel, the audience this round reached against what it reached before. "No growth" is a valid answer; it still needs a cause. **Few channels carried deeply outrank many touched lightly**, so the reading is per channel: a round that opened four and deepened none reports four zeroes, not a spread of activity, and the next round carries fewer.
10. **How close did this round come to a red line?** — every action that approached one of §1's rules without crossing it, and what would have kept it further away. This is not question 5: a pitfall has already happened, while a near miss has cost nothing yet and is the one that repeats. **"Nothing came close" is a valid answer; leaving the question unanswered is not** — the round that cannot name its nearest approach has not looked for it.

**Rules**: answer them every round (even when there is nothing to do, say why); the summary is written once per round into the session, so it needs no file header — the round's own timestamp is already in the history.

Expand Down
7 changes: 4 additions & 3 deletions tests/test_prompt_count_claims.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,9 @@
A false red is how a guard gets weakened or deleted, so the introducer — a paragraph ending in a
colon — is the decidable subset: it is what "the list this sentence introduces" actually means in
prose. The cost is stated rather than hidden: a count whose paragraph is not colon-terminated is not
measured here, and the promote template's "these 9 questions" is one of those, which is why it keeps
its own pin in `tests/test_prompt_templates.py`.
measured here, and the promote template's reflection heading is one of those — it states its count
inside a paragraph that runs on — which is why that count keeps its own pin in
`tests/test_prompt_templates.py`.

A colon-terminated count with **no list after it** is also not a failure, and that was measured
rather than assumed: exactly one claim in today's templates has that shape — `ios_app`'s "the loop is
Expand All @@ -57,7 +58,7 @@

_TEMPLATE_DIR = Path(__file__).resolve().parent.parent / "emrg" / "server"

#: Spelled-out counts, plus digits, which one template already uses ("these 9 questions").
#: Spelled-out counts, plus digits — one template states its count as a digit.
_WORD_COUNTS = {
word: number
for number, word in enumerate(
Expand Down
Loading