Skip to content

emrg: the iOS template measures its content and asks one question at a time - #2647

Merged
argszero merged 1 commit into
masterfrom
feature/ios-content-numbers-and-asking
Oct 29, 2026
Merged

argszero merged 1 commit into
masterfrom
feature/ios-content-numbers-and-asking

Conversation

@argszero

Copy link
Copy Markdown
Owner

Closes #2646

The iOS app task template now states the four rules it was missing, on two subjects it already covered, and IOS_METHOD_RULES pins each one to the heading that owns it.

What changed

A new #### 4.2 inside phase 4 — the content a round ships is a cost and a set of numbers, not an assumption:

  • what the content costs before it is committed to (acquiring it, cleaning it, getting it into the build, and the size it adds), rather than treating it as free because no invoice arrives;
  • coverage and occurrences as two different numbers, with the label saying which one it is;
  • a changed measurement basis voiding the numbers taken on the old one, so two sets measured on different bases never coexist in a record;
  • total first and then coverage, in the user's own words, because a label the host has to ask about is not finished.

One rule in section 8, where the round's obligations to the host are stated: a decision is asked as one question, with numbered options and each option's cost visible, and an answered question is a constraint on the rest of the work rather than something to ask again.

Four pins in tests/test_prompt_templates.py, in the shape the existing pins use: each names the phrase and the heading that owns its subject, _heading_above reads the rule's position rather than its presence, and each phrase must appear exactly once — so a later rewrite that deletes a rule, states it twice, or moves it into an appendix reddens.

Verification

  • tests/test_prompt_templates.py — 54 passed, including the two positional controls (one deletes a pinned rule, one relocates it).
  • Each new phrase appears exactly once in the file, which is the assertion the pins make.
  • No other guard reads this template's content: tests/test_scheduler.py pins the template filename for the ios-app task type, and scripts/check-rant-citations.py records which change introduced the file's citation. Neither counts its lines or characters, so nothing derived needed updating.
  • No instance-specific value went in. Team ids, account names, paths and credentials stay in a task's extra_prompt, which #### 0.1 of this template already names as the only place they belong.

What this leaves

An installation that had written these four rules into its own extra_prompt can now delete those blocks. That deletion is the installation's to make, not this repository's, and this change does not depend on it: the template is the canonical side either way.

@argszero argszero left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ LGTM — cycle cyc20261029-223437

Reviewed the change itself: two files, +33 lines, none of them a behaviour change.

What the template gains. A new #### 4.2 inside Phase 4 of emrg/server/ios_app_prompt.md states the three number disciplines a content-carrying app needs and that nothing else in the file stated: content cost is measured before it is promised rather than assumed free because no invoice arrives; coverage (distinct items carried) and occurrences (appearances of each) are two different numbers, so a label says which one it is; and a changed measurement basis voids the numbers taken on the old one, so two bases never coexist in a record. The paragraph added to section 8 says a decision put to the host is one question at a time — numbered options, each one's cost visible, the conclusion left to the host, and an answer already given treated as a constraint rather than something to ask again.

The anchors pin the phrase and its owner. Each entry in IOS_METHOD_RULES is a (phrase, owning_heading) pair and the test requires the phrase to appear exactly once in the file, so deleting the rule, duplicating it, or moving it under a different heading all redden. The four new anchors sit on the two headings that genuinely own those subjects rather than on an appendix.

Measurement of the landing tree. check-merge-freshness reports FRESH — base b0a6f7f3 is master's tip. check-merge-landing-diff reports landing tree 31227f22c2de, changing exactly those two paths with no path reading backwards. check-merge-plan-suite measured that tree: 5996 passed, 37 skipped in 291.63s.

CI on the head: run 40891841058 — test and test-windows both pass.

One vote of the three this head needs.

@argszero argszero left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ LGTM — cycle cyc20261029-225542

Reviewed the change itself and re-measured its landing tree this round.

What the template gains. A new #### 4.2 in Phase 4 of emrg/server/ios_app_prompt.md states three number disciplines that nothing else in the file stated: content cost is measured before it is promised rather than assumed free because no invoice arrives; coverage (distinct items carried) and occurrences (appearances of each) are two different numbers, so a label says which one it is; and a changed measurement basis voids the numbers taken on the old one, so two bases never coexist in a record. The paragraph added to section 8 says a decision put to the host is one question at a time — numbered options, each one's cost visible, the conclusion left to the host, and an answer already given treated as a constraint rather than something to ask again.

The anchors pin the phrase and its owner. Every entry in IOS_METHOD_RULES is a (phrase, owning_heading) pair and the test requires the phrase to appear exactly once, so deleting a rule, duplicating it, or moving it under a different heading all redden. The four new anchors sit on the two headings that genuinely own those subjects, not on an appendix.

Measurement of the landing tree. check-merge-freshness reports FRESH — base b0a6f7f3 is master's tip. check-merge-landing-diff reports landing tree 31227f22c2de, changing exactly the two paths this PR touches with no path reading backwards. check-merge-plan-suite measured that tree: 5996 passed, 37 skipped in 291.63s.

CI on the head: run 40891841058 — test (3m32s) and test-windows (5m45s) both pass. Merge state MERGEABLE/CLEAN.

One more vote is needed after this one.

@argszero argszero left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ LGTM — cycle cyc20261029-232028

Reviewed the tree this merge produces, not diff(base, head): the head does not contain master (behind_by=1), so that diff shows the base's own later commits as reversals this PR does not make. The landing reading says merging it changes exactly 2 paths on base 06a001aa — emrg/server/ios_app_prompt.md (+11 −0) and tests/test_prompt_templates.py (+22 −0) — and nothing else.

The change itself: a new #### 4.2 inside phase 4, saying that the content a round ships is a measured cost and a set of numbers (coverage and occurrences are two different numbers, a changed basis voids the numbers taken on the old one, legibility is part of the number), plus one rule in §8 that a decision asked of the host is one question at a time. Both sit in sections that already own their subject, are written in the template's own voice, and name no installation.

The four pins are the right shape. Each names a phrase and the heading that owns it, so _heading_above reads the rule's position rather than its presence, and the phrase appearing exactly once is asserted — which is what makes a later rewrite that deletes, duplicates or relocates one of them redden. Both positional controls are present, and the section-8 pin is checked against a three-level heading _heading_above can actually see.

Suite on the landing tree (2a7a12443698, base 06a001aa): 5996 passed, 37 skipped in 246.14s.

@argszero
argszero merged commit 6f935f5 into master Oct 29, 2026
2 checks 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.

emrg: the iOS task template lacks the content-numbers and asking discipline

1 participant