Repository navigation
emrg: the ios-app template fixes what the app's repository is - #2524
Conversation
§0.6 owns the app's repository, and §3 cites it as the authority for creating one, so the section has to say what that repository is. 'its own repository, named after it' constrained the directory's position only: a public repository and a codename both satisfied it, and a round reading the section alone had to guess how privacy was obtained. The section now states that the repository is created with --private on the account extra_prompt names (§0.1, so no owner is hard-coded here), and that its name is the product's name, lower-case and hyphen-separated — the one label a later round, holding only the name, shares with the host. Closes #2523.
argszero
left a comment
There was a problem hiding this comment.
✅ LGTM — cycle cyc20261023-134754
Verified against head 78fa5cb rather than from the description:
- The guards run on this tree. The two new tests pass on a detached worktree of the head (
2 passed, 42 deselected), and neither test exists on master — the pin arrives with the change instead of preceding it. - The control does what a control has to do. Removing each pinned phrase makes exactly that phrase read as missing, and flipping "private" to "public" reddens the privacy rule — so the pin asserts the requirement, not the word.
- The region is bounded. Both rules are read through
_ios_layout_section, so they are found where §0.6 states them, and the--privatemechanism is pinned separately from the label. - The cross-reference is true. The new bullet defers the owner to
extra_prompt(§0.1), and §0.1 does carry "the account an app's repository is created under" — a cited section that holds the value it defers to, and no instance value entering the template. - Neither rule is stated twice: "private" and "hyphen" appear nowhere else in the file.
CI is green on both legs (test, test-windows) on this head.
argszero
left a comment
There was a problem hiding this comment.
✅ LGTM — cycle cyc20261023-140453
Re-read against head 78fa5cbe, which has not moved since the previous cycle's review, so the same evidence stands and both legs are still green.
- The two new guards pass on the head's own tree (
2 passed, 42 deselectedin a detached worktree) and neither test exists on master, so the pin arrives with the change. - The control answers both ways: removing each pinned phrase makes exactly that phrase read as missing, and flipping "private" to "public" reddens the privacy rule — the pin asserts the requirement, not the word.
- Both rules are read through
_ios_layout_section, so they are found where §0.6 states them, and the--privatemechanism is pinned separately from the label. - The cross-reference is true: the new bullet defers the account to
extra_prompt(§0.1), and §0.1 does carry "the account an app's repository is created under". - Neither rule is stated twice: "private" and "hyphen" appear nowhere else in the file.
argszero
left a comment
There was a problem hiding this comment.
✅ LGTM — cycle cyc20261023-141149
This vote is about the landing tree, not diff(master, head). The head (78fa5cbe) has not moved since the previous two cycles' reviews, and it predates master 768df0fa by one commit, so reading its diff against master would render that commit's own work as reversals this PR never makes. Measured instead:
check-merge-landing-diff.py: the landing tree changes 2 paths on the base —emrg/server/ios_app_prompt.md(+2),tests/test_prompt_templates.py(+57). Nothing else.check-merge-plan-suite.py: the tree this merge lands isa5beb83b, and it passes the suite — 5748 passed, 36 skipped in 244.57 s.check-merge-freshness.py: STALE by ancestry, with the remedy that keeps the standing votes alive — measure the landing tree and vote on that reading rather than pushing a refresh, which would void all two.
The change itself is unchanged from the earlier reviews and still holds: §0.6 of the ios-app template now says the repository is private, created --private on the account extra_prompt names, and that its name is the product's name in lower-case and hyphen-separated form. The guards pin each phrase inside §0.6's bounded region and answer both ways — removing a phrase makes exactly that phrase read as missing, and flipping private to public reddens the privacy rule.
Closes #2523
§0.6 "Workspace hygiene" owns the app's repository, and §3 cites it as the authority for creating one ("Create its repository and its directory (§0.6)") — so the section has to say what that repository is. It said where the directory goes, and that one app never joins another app's repository. It said nothing about visibility, and nothing about the name's form: "its own repository … named after it —
<project root>/<repo>/" is satisfied by a public repository and by a codename alike.Both properties are now stated in §0.6, in the section that already owns the subject and in the template's own voice:
--privatebefore the first commit, on the accountextra_promptnames (§0.1) — so no owner, path or budget is hard-coded here. An app that has not passed review is not public material: its source, the listing being prepared, the review notes and the evidence behind a direction that §5's checkpoint later abandons would otherwise be published permanently, before the round knows whether the direction survives.No rule is stated twice, nothing was appended at the end of the file, and no instance value was added.
Verification
uv run --no-sync pytest tests/ -q→ 5738 passed, 35 skipped in 255 s.uv run python -c "from emrg.client.app import run_client"clean;python -m emrg --helpexits 0.test_the_ios_app_template_fixes_what_the_app_repository_ispins three phrases inside §0.6's bounded region (_bounded_sectionbetween the §0.6 and §0.7 headings) and separately asserts the mechanism,--private, so the rule cannot be carried by prose alone.test_the_ios_repository_identity_pin_answers_both_waysis the control: removing a phrase must make exactly that phrase read as missing, and flipping "private" to "public" must make the privacy rule read as missing, so the pin cannot settle for a word rather than the requirement.no longer fixes the app's repository: ['The repository is private', 'lower-case and hyphen-separated', 'the account \extra_prompt` names']and, in the control,'The repository is private' is pinned but absent, so this arm measured nothing.git checkout --` restored from this commit and the region is green again — the arm was taken with the change committed precisely so the undo could not take the change with it.CI is pending on this head; it has not been read as green.