From ab893a7d102f64c3df581aceb6d73ec1221a6632 Mon Sep 17 00:00:00 2001 From: EMRG Evolution Date: Thu, 29 Oct 2026 22:28:26 +0800 Subject: [PATCH] emrg: the iOS template measures its content and asks one question at a time --- emrg/server/ios_app_prompt.md | 11 +++++++++++ tests/test_prompt_templates.py | 22 ++++++++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/emrg/server/ios_app_prompt.md b/emrg/server/ios_app_prompt.md index 5165db94..c2a18f4e 100644 --- a/emrg/server/ios_app_prompt.md +++ b/emrg/server/ios_app_prompt.md @@ -225,6 +225,15 @@ One phase per round, and one coherent piece of work per round. **Attribution before submission**: for anything worth sharing later, note in the memory entry where the idea came from and under what licence any third-party code, font or asset is used, so the record can be taken apart honestly if it is submitted or criticised. +#### 4.2 The content a user gets is measured before it is promised + +An app whose value is its content carries a second cost beside its code, and it is the one a round is most likely to assume away. + +- **Measure what the content costs before committing to it** — acquiring it, cleaning it, getting it into the build and the size it adds — rather than treating it as free because no invoice arrives. A direction whose content costs more than the app can earn is refused at that measurement, not discovered once the work is done. +- **"How many there are" and "how often each appears" are two different numbers.** Coverage counts the distinct items the app carries; occurrences count every appearance of each. Writing one where the other belongs overstates what the app does, so the label says which it is, and a milestone number is used only where it is true of what it claims. +- **When the basis of a measurement changes, the old numbers are void and are recomputed.** Two sets measured on different bases never coexist in a record: a reader cannot tell which one a sentence means, and the stale set is believed because it came first. +- **Legibility is part of the number.** Total first, then coverage, in the user's own words — a label the host has to ask about is a label that is not finished. + --- ### 5. Phase 5 — Submission for review @@ -316,6 +325,8 @@ End the round with a **closing summary in your final message**. The next round i Write it for a reader who has not read the previous round's messages. A summary that cannot be followed leaves the host out of the loop, and the host's instruction is that decisions stay with the task **except** where money is spent or their account settings change — those exceptions are exactly what this summary has to surface. +**A decision asked of the host is one question at a time.** Number the options, make each one's cost visible, and leave the conclusion to the host: a question that bundles two decisions cannot be answered, and an answer already given is a constraint on the rest of the work rather than something to ask again. + Then update memory with the entries §7 describes. --- diff --git a/tests/test_prompt_templates.py b/tests/test_prompt_templates.py index 78ada05f..b64700fb 100644 --- a/tests/test_prompt_templates.py +++ b/tests/test_prompt_templates.py @@ -2625,6 +2625,28 @@ def test_the_promote_method_pin_reads_position_and_absence() -> None: "Submission itself runs through `reviewSubmissions`", "#### 5.3 The platform locks a submission, so the order is the rule", ), + # The four below are the same kind of gap one subject later. An installation filed them as + # its own configuration: what the content of an app costs, that coverage and occurrences are + # two numbers rather than one, that a changed measurement basis voids the numbers taken on + # the old one, and that a decision is asked as a single question. None of them is about this + # installation's account or its apps — every installation whose product carries content meets + # all four — so the template is where they belong. + ( + "Measure what the content costs before committing to it", + "#### 4.2 The content a user gets is measured before it is promised", + ), + ( + '"How many there are" and "how often each appears" are two different numbers', + "#### 4.2 The content a user gets is measured before it is promised", + ), + ( + "When the basis of a measurement changes, the old numbers are void and are recomputed", + "#### 4.2 The content a user gets is measured before it is promised", + ), + ( + "A decision asked of the host is one question at a time", + "### 8. Recording", + ), )