M1-01: Repo scaffold and build standard #1
Labels
No labels
area/agent
area/capture
area/editor
area/geo
area/security
area/sync
area/transcription
area/ui
area/vault
area/voice-memos
blocked
milestone/M1
milestone/M2
milestone/M3
milestone/M4
needs-decision
needs-hardware
p0
p1
p2
type/bug
type/enhancement
type/feature
type/idea
type/infrastructure
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Stash/stash-android#1
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Stand up
stash-androidso everything after this has somewhere to land.Scope
:appmodule, version catalog ingradle/libs.versions.toml.way and wrote it into its standard: warnings that do not fail a build are warnings nobody fixes.
AGENTS.md— the build standard, and the single source of truth.CLAUDE.md— one line,@AGENTS.md. Not a symlink: Claude Code resolves the import natively andCodex reads
AGENTS.mddirectly. One file to maintain, nothing to drift.README.md,.gitignore,.editorconfig..githooks/mirroring iOS:pre-commitruns the linters,pre-pushrequires the Codex reviewartifacts and
SUMMARY.mdfor the branch and then runs the tests.⚠️ This repository is PUBLIC
Stated loudly at the top of
README.mdandAGENTS.md, as instash-ios:screenshots attached to issues.
What
AGENTS.mdmust statePort the iOS build standard verbatim where it is Wes's words, because it is his framing that is the
requirement, not the iOS specifics:
mainis protected; only Wes approves.updated along the way. And if the code is hard to read, same thing."
Android that means Material 3 and platform conventions, not a port of the iOS look.
It must also carry the fifteen-step issue workflow with Codex in the loop, and the
.agent/<branch>/artifact convention. Branch naming is the same:m<milestone>-<issue>-<slug>,because the pre-push hook derives the artifact path from the branch name.
What is deliberately NOT ported
The iOS
AGENTS.mddocuments a lot of hard-won platform specifics — audio session categories,route repair, the speech analyzer's clock. None of that is true here. Port the process and the
standard; let the platform sections be written by the issues that discover them.
Done when
The app builds and launches on the Pixel from a fresh clone, and
AGENTS.mdis complete enoughthat someone could pick up M1-02 without this conversation.
Milestone 1 of Stash for Android, mirroring
stash-iosM1. M1 is a functioning app on the testdevice with no sync at all — record voice memos reliably and get them off the device by hand.
Sync arrives in M3.
Test device is a Pixel 6 (Tensor G1) borrowed from a friend, until something better turns up.
Stock Android, so no OEM battery-killer behaviour to fight — worth remembering that a phone from
another manufacturer may not be as forgiving about background work.
Translation of
Stash/stash-ios#1. Where the platform forces a different answer this issue says so; where itdoes not, the iOS issue is the fuller statement of intent and should be read alongside this one.
Working agreement for every issue in this repo: feature branch, tested before the PR opens
(on-device where the label says so), then Wes reviews the PR and we walk the code together. Docs
update in the same commit. A PR that takes more than 20 minutes to review is too big — say so and
split it.