Status · Editor
00:05 UTC: the site structure, the three-apps page, the Team app pages in the admin area and the review notes are done on
split/editor, green on build, validator and tests. Waiting for platform's phase 1 and the later phases to point the feature labels at the new folders.
Branch: split/editor · Last update: 11:00 UTC (editor.B took over from account A at about 01:40)
Done
- Site: the public pages (Home, The app, Features, Plans, Support, Privacy) describe the PrompTugal app. New page "The three apps", with RiskMandate marked "coming after the summit".
- Site:
teams.html, the old privacy page and the Overnight page moved toadmin/team-app.html,admin/team-privacy.htmlandadmin/overnight.html. The admin index links all three. - Checks: a feature is in an app only if the app is built from its files (
apps.jsonfolders and package closure). Before the split the oldPrompTugal/folder is the app. Test folders never count. Six new tests. features.jsonnames files, not paths, so moves do not break it. Sample data and reading credit are team features now.- Push dashboard reads
split/*branches as well asnight/*. Test against a throwaway git repository. - Review notes rewritten for the PrompTugal app: no sample data, no keys needed, no lanes, no purchases.
- Build log checkpoint 13.
In progress
- 11:00 UTC: conductor's note on Apple's rejection (ITMS-90683, speech purpose string). I checked the code: Ask in the public app (PTAsk
AskViewandSpeechDictation) has hold-to-talk dictation with the microphone and speech recognition; it asksrequiresOnDeviceRecognitiononly when the language supports it, so otherwise iOS sends the audio to Apple; audio is not kept. My earlier text said the public app had no dictation. Fixed: privacy page ("Dictation in Ask"), and the data section ofreview-notes.txtandreview-notes.md(dictation and camera lines). The project's usage strings onsplit/appsstill list only calendar, camera and Face ID (apps is adding microphone and speech). Re-check the privacy page once that lands. Two things for collab, not mine: the Ask screen does not tell the user whether dictation is on the device or at Apple, and its placeholder reads "Ask about today, your picks, the team…" in the public app.
- 10:40 UTC: merged
origin/dev(v0.4.13):apps.jsonnow uploads the public PrompTugal app to TestFlight; contracts §8 (next round: PTSync, decks, Team native). No site change needed; checks green (69 tests,check_apps.pyOK). Public page 13 of 13 in the beta. Waiting for the conductor to mergesplit/editor. For §8: whenPTSyncorPTDeckland and the PrompTugal app lists them inapps.json, I add feature entries (offline sync, decks and presenter mode) with evidence from their files; I will not label them before they are built.
- 10:15 UTC: merged
origin/dev(v0.4.11: README outcome note, first Team build 0.4.7 in TestFlight). No site change. Checks green (69 tests); public page still 13 of 13 in the beta. READY stands, new head below.
- 10:05 UTC: merged
origin/dev(v0.4.10) with design'sPublicShell(105ca49). No conflict. Two label problems on my side, both fixed: (1)parse_destinationsinwebsite/admin.pyreadDestination(andAppDestination(but the public shell registers screens asShellDestination(, so it saw none (now read, with a test); (2) "Website and app talk to each other" and "Reminders before sessions" needed the root marker.teamFeatures(), which only the Team app has; the public app starts them with.publicFeatures(inPublicShell.swift, so they now checktext:**/PublicShell.swift::.publicFeatures(. Result: public page 13 of 13 in the beta (the real shell registers every screen they name); Team page unchanged (23 in the beta, 2 debug only, 1 coming). 69 tests green. - Answer to the conductor on the review texts:
ios-release.ymldoes not readwhat-to-test.txtorreview-notes.txt; it sets What to Test for every app fromscripts/release/release-notes.sh(git log). Onlytestflight-ops.yml(manual) reads them, and it hasBUNDLE_ID: news.promptugal.readerfixed, so they only reach the PrompTugal app. Team and RiskMandate are not affected.
- 09:45 UTC: phase 4 is on dev (v0.4.8): Team moved to
Apps/Team, widgets and intents and file sharing are inApps/PrompTugal. Mergedorigin/devwith no conflict. Site facts now come fromApps/PrompTugal(version 0.4.8 fromVERSION, bundlenews.promptugal.reader, icon andWebsites.jsonfrom the app andPackages/PTWeb). Privacy and support re-read against that code: widget, Siri answers and camera are on privacy; file sharing is in the project, so the Files section of support stays. Review texts swapped:review-notes.promptugal.txtandwhat-to-test.promptugal.txtnow arescripts/testflight/review-notes.txtandwhat-to-test.txt(DEMO_LANE_NAMEis gone from the notes;tf.pytreats it as optional; its 12 tests pass). Version wording on the admin index and releases pages now says every app's version is the release version. Labels: Team 23 in the beta (2 debug only, 1 coming); public 4 in the beta, 9 coming, because design'sPublicShellscreens are not on dev yet (I saw 5 in the beta in my preview withsplit/design).
- 08:30 UTC: dev unchanged since v0.4.6. Preview of phase 4 in a throwaway worktree:
split/editormerged withsplit/platform(cd02fa7),split/apps(a53e3cc) andsplit/design(b8716f4): no conflicts, build and 68 tests pass, public page 5 in the beta and 8 coming, Team 23 in the beta.split/appsalready has file sharing (UIFileSharingEnabled) and the widgets and intents inApps/PrompTugal, so the support section onWebsites.jsonin Files stays. The validator fails onsplit/design's status page (status/design.mdline 211, the line about Ask being marked as unfinished until PTAsk is on dev, uses a word the validator bans; seeBANNEDinwebsite/validate.py). Design needs to reword it before its branch reaches dev, or dev's checks fail. Not my file; told the conductor.
- 08:05 UTC: started the privacy and support re-read against
Apps/PrompTugal(dev) and its widgets and intents (split/platform). Privacy: added the widget and Siri answers (they read a small on-device copy of now and next from the App Group, no network, no vault) and the camera (VisionKit reads a vault QR code on the device, nothing saved or sent). Support: added how to add the widget and ask Siri. Dev has no new commits since v0.4.6. - Found in
Apps/PrompTugal: no file sharing. The old project hadINFOPLIST_KEY_UIFileSharingEnabled = YESandINFOPLIST_KEY_LSSupportsOpeningDocumentsInPlace = YES; the new project has neither. The support page tells people to editWebsites.jsonin the Files app, which only works with them. See "Needs from others".
- 07:50 UTC: the conductor applied my two build patches to dev (
cf4f548,b17edc3); the patch folder stays out of dev. Mergedorigin/dev(v0.4.6) intosplit/editor: conflicts inadmin.py,build.pyandvalidate.pybecause both sides had the same changes; keptsplit/editor's versions (they also carry the page and feature scope code). Checked on two layouts: today's dev layout, andsplit/editormerged with the realorigin/split/platform(f0c53a9, no rootPrompTugal/). Both: build, validator, 68 tests green, and the same labels (Team 23 in the beta, 2 debug only, 1 coming; public 4 in the beta, 9 coming). - Next: read
Apps/PrompTugal(widgets, intents, config now there) for the privacy and support pages.
- 07:35 UTC: the conductor asked for a build-only branch
split/editor-build. My rule is to push onlysplit/editor, so I did not push a new branch. I made the same two commits onorigin/dev(1087a92) and put them asgit ampatches inbriefs/2026-11-08__three-apps/editor-build/onsplit/editor, with a README. They change onlywebsite/build.py,validate.py,admin.pyandtest_site.py, no page text. Checked: applied to a cleanorigin/devwithgit am, then build, validator and 59 tests pass; and on platform's layout in a worktree (project, sources and tests underApps/Team,apps.jsonteam entry onApps/Team/), 59 tests pass. The first version of the fix missedadmin.py, which reads onlyPrompTugal/for screens, features and screenshots; three tests caught it, so the patch includes it. If the conductor wants the branch pushed assplit/editor-build, that needs Dinis's word.
- 07:15 UTC: phase 4 started (conductor, dev 02f3624). Merged
origin/dev(v0.4.5) with PTAsk (02f3624), no conflict. Public page now 4 in the beta (Ask), 9 coming; Team page unchanged. 68 tests green. - Test of platform's move before it lands: in a throwaway worktree I did the layout of its plan (step 1:
PrompTugal.xcodeprojtoApps/Team/Team.xcodeproj,PrompTugal/toApps/Team/Sources/, tests toApps/Team/TestsandUITests; step 8: theapps.jsonteam entry onApps/Team/). The first build stopped: the sidebar artwork (Shortcut*.imageset) then sits inApps/Team/Sources/App/Resources/Assets.xcassets. I made the site look for it underApps/andPackages/too, after the app's own folders. With that, build, validator and all 68 tests pass on the moved layout, with the same labels (Team 23 in the beta, public 4). So dev'swebsite/build.pyneeds no fix for platform's move. Still to check against the realsplit/platformwhen it pushes. - Left to do for phase 4: read facts (version, bundle, icon,
Websites.json) from the realApps/PrompTugalonce apps and design finish it; re-readprivacy.htmlandsupport.htmlagainst its code (widgets, intents, URL schemepromptugal://, background refresh); swap in the PrompTugal review texts; then send READY.
- 06:25 UTC: merged
origin/dev(v0.4.3) with PTLanes and VaultCollabAccess (6300658). No conflict. The lanes feature still reads as in the beta on the Team page: its evidence names**/LanesStore.swiftandtext:**/LanesView.swift::ReportBlockMenu, which are now inPackages/PTLanes, inside the Team app's package closure. Team page unchanged (23 in the beta, 2 debug only, 1 coming); public page 3 in the beta, 10 coming. 68 tests green. Only PTAsk and phase 4 remain.
- 05:55 UTC: merged
origin/dev(v0.4.2) with PTNews (d3cb173): news screens and the graph moved toPackages/PTNews. No conflict. Checked the labels against the moved files: Team page unchanged (23 in the beta, 2 debug only, 1 coming), sofeatures.jsonneeds no change (it names files, and thescreen:news.home/screen:news.graphregistrations are still in the Team app's Destinations). Public page still 3 in the beta, 10 coming, untilPublicShellregisters screens. 68 tests green. Still waiting for PTLanes, PTAsk and the phase 4 word.
- 05:20 UTC: dev has had no new commits since v0.4.1 (merged at 04:15). Nothing to merge. Holding for PTNews, PTLanes, PTAsk and the phase 4 word. Checks last green at 04:15 (68 tests).
- 04:15 UTC: merged
origin/dev(v0.4.1): reminder links useAppLinks.scheme, StoreKit test bound. Swift changes only, no label or site change. Checks green (68 tests). Still waiting for PTNews, PTLanes, PTAsk and the phase 4 word.
- 03:50 UTC: merged
origin/dev(v0.4.0): release's one-version change, theApps/PrompTugalandApps/RiskMandateprojects and theirapps.jsonentries. Merged without conflict, but the build stopped twice, and I fixed both inwebsite/build.py: 1. The new project's build configurations carrybaseConfigurationReferencebeforebuildSettings, which my parser did not accept, so it saw no bundle id. It does now. 2.ShortcutPrompTugaland the other sidebar images are still only in the old catalog (PrompTugal/App/Resources/Assets.xcassets), not inApps/PrompTugal/Resources/Assets.xcassets. The site now takes shortcut images from every catalog of the app's folders, the app's own first. - The site now reads 0.4.0 from
VERSION(it matches the new project's MARKETING_VERSION 0.4.0). 68 tests green. - Effect on labels: the public app now has its own
apps.jsonentry (Apps/PrompTugal/plus the PTAsk closure), sofeatures.htmlshows 3 in the beta, 10 coming. That is true today: the new app is only a shell. The Team page is unchanged (23 in the beta). Labels come back as the app gets its screens.
- 03:25 UTC: merged
origin/dev(v0.1.80) with PTWeb and PTAgenda (7863ae2). Conflict inwebsite/build.pywith the conductor's_one()fix (11ab789): kept myadmin.find_in_app, which already searchesPackages/PTWeb, and dropped_one(). The admin screens page now prints the real path ofWebsites.json(Packages/PTWeb/Sources/PTWeb/Resources/Websites.json) instead of the fixed text. Labels checked against the moved files: 13 of 13 public in the beta, Team page unchanged (23 in the beta, 2 debug only, 1 coming).features.jsonnames files, so nothing else needed changing. Build, validator and 67 tests green.
- 03:15 UTC: merged
origin/dev(v0.1.79): PTCoreCollabSeams.swiftandAppLinks.scheme, platform status. Both are new PTCore files, so the site's Swift file and line counts moved; build, validator and 67 tests green. Nofeatures.jsonchange: neither file carries a feature label. Still no PTWeb, PTAgenda, PTNews, PTVaultUI-side, PTLanes or PTAsk move on dev.
- 02:40 UTC: merged
origin/dev(v0.1.77, ios.yml runner choice). CI files only; no site or feature change. No phase 3 package on dev yet. Checks green.
- 02:10 UTC: merged
origin/dev(v0.1.76, handoff page: Team and RiskMandate App Store Connect records exist). No phase 3 package on dev yet, sofeatures.jsonis unchanged. Checks green.
- 02:00 UTC: merged
origin/dev(v0.1.75, handoff page). The site's app version now comes fromapp_version()inwebsite/build.py: from v0.4 on it is the release number (v0.4.7 gives 0.4.7), before that the project's MARKETING_VERSION (0.3.1 today). The validator and tests use the same function. I did not touchwebsite/version.pyor its tests, whichsplit/releasealso changes (they will merge without conflict). Build, validator and 67 tests green. - Still to do once release is on dev: reword
version.pydocstring, release-setup and support pages that say the app and site versions are separate (release's branch already rewrites the docstring and release-setup).
- 01:25 UTC: contact address
agent@riskmandate.ai(48 hours) is on the support page and in the review notes brief. The.txtnotes keep<CONTACT_ADDRESS>and<RESPONSE_TIME>fortf.pyto fill.
- 01:05 UTC: the conductor gave me
scripts/testflight/review-notes.txtandwhat-to-test.txt(text files only). The PrompTugal versions are written next to them asreview-notes.promptugal.txtandwhat-to-test.promptugal.txt, with the same placeholder names (DEMO_OPENROUTER_KEY, CAP, DEMO_VAULT_KEY, CONTACT_ADDRESS, RESPONSE_TIME); DEMO_LANE_NAME is gone because the public app has no lanes. They replace the originals in the phase 4 merge, because the workflow reads the old names and today's app is still the one app.
- 01:00 UTC: merged
devto v0.1.67 (TestFlight ops, release). Green, pushed.scripts/testflight/review-notes.txtandwhat-to-test.txtstill describe the one app (sample data, Who are you); they are not mine. After phase 4 they need the PrompTugal versions frombriefs/…/review-notes.md.
- 00:45 UTC: merged PTVaultUI (
e5328ff). Vault, Face ID and trusted-signer labels follow the moved files (**/VaultKeychain.swift,**/VaultViews.swift): all three still in the beta. Green, pushed.
- 00:05 UTC: merged phase 1 (
9220d7e).apps.jsonhas only ateamentry on the root project, so the PrompTugal app has no entry and counts as the one app: labels unchanged (13 of 13 public, same team count). Build, validator and 66 tests green. Pushed.
- Conductor: hold
split/editorand merge after phase 4. Keep mergingorigin/devin. Answers received: the public shell isPublicShell(inApps/PrompTugal/PublicShell.swift; shared screen ids are unchanged; Ask there has no team context; screenshots arescreens-<sha>for the PrompTugal app andscreens-<sha>-<app>for the others. Screens check now acceptsPublicShell(.
- Waiting for the conductor's word that phase 1 (scaffold) is on
dev.
Next
- Merge
origin/devwhen platform's phase 1 lands. Readapps.jsonand check the scope code against the real file. - Phase 3: update
features.jsonfor the packages (screen ids, root markers) as each lands. - Phase 4: point facts (version, bundle, icon, websites) at
Apps/PrompTugal; re-read privacy and support against its code; fix the home screenshot ids.
Blocked
- Nothing yet.
Needs from others
- Apps (or conductor): add
INFOPLIST_KEY_UIFileSharingEnabled = YES;andINFOPLIST_KEY_LSSupportsOpeningDocumentsInPlace = YES;to both configurations of the PrompTugal app target inApps/PrompTugal/PrompTugal.xcodeproj, as the root project has. Otherwise the support page's "edit the website shortcuts in Files" section is false for the public app, and I will have to remove it before READY.
- Platform/apps (phase 4): the sidebar artwork (
Shortcut*.imageset, for exampleShortcutPrompTugal) has to be inApps/PrompTugal/Resources/Assets.xcassetsor in a package resource, or the new app's sidebar will have no icons. The site is fine either way.
- Design: which features the PrompTugal app has. The site assumes News, Agenda, Websites, Ask, Vault, reminders, the graph and a privacy cover, and no team screens. Tell me the screen ids in its Destinations list and the root view that marks it (today the feature labels use
AppShell(and.teamFeatures()). - Collab: confirm that Ask in the PrompTugal app has no team, teammate or agent context. The privacy page and the review notes say so.
- Release: how
screens.ymlwill name the two apps' screenshots, so the home page picks the PrompTugal app's. - The conductor: merge this branch after phase 4, or earlier? The privacy and support pages describe the public app without lanes, so they are true only once
Apps/PrompTugalexists. The apps page already says "not finished" until the three projects exist.
Handoff
- Head: see the last commit on
split/editor(the sha is in my reply to the conductor). It includesorigin/devwith PTCore (116a350), PTVaultUI and the handoff page. Build, validator and 66 tests pass. - Held until phase 4. The public pages (home, the app, privacy, support) describe the public app with no lanes or team data, and are true only once
Apps/PrompTugalexists. Mergesplit/editorwith phase 4. - Still to re-point as packages land (labels are checked by
website/admin.pyagainstapps.json): - Phase 3: PTWeb, PTAgenda, PTNews, PTAsk, PTLanes.
features.jsonnames files (**/File.swift), so most labels follow the move. Checkscreen:androot:entries, and that the team list still sees PTLanes. - Phase 4: add
promptugalandriskmandatetoapps.jsonchecks; the root view marker for the public app isPublicShell(inApps/PrompTugal/PublicShell.swift; read facts (version, bundle, icon,Websites.json) fromApps/PrompTugal(APP_PROJECTS,APP_FOLDERSinadmin.py); re-readprivacy.htmlandsupport.htmlagainst its code; screenshots arescreens-<sha>for the PrompTugal app andscreens-<sha>-<app>for the others. - Release's one-version change (v0.4.0): update the wording that says the app version and site version are separate (
version.pydocstring, release-setup and support pages, the footer) once it is on dev. The conductor will ping. - Contact:
agent@riskmandate.ai, answer "within 48 hours". It is onsupport.htmland inreview-notes.md. - Review texts I prepared:
briefs/2026-11-08__app-review-readiness/review-notes.md;scripts/testflight/review-notes.promptugal.txtandwhat-to-test.promptugal.txt. In the phase 4 merge,git mvthem overreview-notes.txtandwhat-to-test.txt. Placeholderstf.pyfills are unchanged, exceptDEMO_LANE_NAME, which is gone. - Scheduled check-ins: cancelled.