Skip to content
Ritesh FirodiyaGet in touch

Work / Aakalan / Wiki / Decisions

2026-10-02-context-migrated-to-the-ten-folder-standard

Decisioncanonicalverified 2026-10-02

DECISION.2026-10-02.CONTEXT-MIGRATED-TO-THE-TEN-FOLDER-STANDARD

Decision

.context/ moves to the estate's ten folders, the store listing to fastlane's tree, and the store screenshots to a capture of the running app.

Why

documents/ meant "everything else", and it held four different things: the wiki, the store listing, two legal pages filed as research, and a Play declaration. SETUP.md and STATUS.md sat at the repo root where nothing renders them, and STATUS.md was a backlog, a live-state record and two runbooks under one name.

The Apple listing lived in store.config.json and had drifted from the App Store Connect record: the description on the record had been corrected over the API and the file had not, and three URLs in the file had never been pushed. fastlane deliver download_metadata makes that a diff.

The screenshots came from a headless browser driving the web build. Four of its seven routes no longer exist, so both stores show a product that was replaced.

Impact

  • documents/ is gone. The move table is in .context/README.md.
  • listing/listing.md drives both stores. The Apple description has its own block, holding what is live, because the two stores' long copy differs.
  • listing/ios/metadata/app_rating_config.json was copied from the live ageRatingDeclaration, not from store.config.json.
  • src/config/screenshots.ts and six seams — see FEAT-0001. Normal builds are unchanged; a guard test fails if the flag reaches a shipped config.
  • patterns/alerts.html draws the app's fifteen native dialogs. The copy check found them once it could read single-quoted strings — see alerts.
  • Every wireframe names the route that renders it, so routes.js and src/app are checked against each other in both directions.
  • scripts/capture-screenshots.mjs is deleted. Nothing regenerates the Play tablet screenshots now.

Consequences

  • The "Settle up over UPI" frame is not in the set. The sample account owes one person, and that person has no UPI ID, so the UPI screen cannot be reached by tapping. The settle frame shows a payment being recorded instead.
  • play-data-safety.md and legal/declaration.yml disagree about Contacts. The migration recorded the disagreement and did not resolve it.

Sources

  • .context/README.md
  • .context/features/0001-screenshot-mode.md
  • ~/git/products/CONTEXT-MIGRATION.md

Every project of mine is written down like this.

Read the résumé