Imported from karote00/asyra (
apps/starter-app/AGENTS.md). Install upstream withnpx skills add karote00/asyra --skill starter-app. Copyright stays with the author.
Starter App agent guide
This project is a small App-owned Item example. Read docs/ONBOARDING.md
before changing Item behavior. docs/PRIORITY_AGENT_PROMPT.md is a ready-to-use
extension request, and docs/PRIORITY_EXERCISE.md records the included opt-in
exercise.
- Keep
src/domain/item-domain.tsresponsible for Item values, schema and saved data admission. A missing legacy field and an invalid present field need different outcomes. - Route intended edits through the registered Feature in
src/runtime/starter-runtime.ts. Its App API owns one transaction per action and calls the Core facade. Do not write Core state directly from React. - Treat
src/runtime/projection-store.tsandsrc/ui/StarterApp.tsxas readers. The UI may hold unfinished input text, but it must not own another editable Item document. - Keep explicit Save/Reload in
src/runtime/storage.tsand the runtime load path. Validate App data beforecore.preflightLoad()andcore.load(). - Add permanent tests in
src/**/__tests__/*.test.tsor*.test.tsxbefore implementation. Cover one action/one Undo, Redo, projection, saved data, legacy missing fields, invalid present fields and existing title/status.
Use the package manager declared in package.json for validation before
handing off changes:
| Check | Yarn project | npm project |
|---|---|---|
| Tests | yarn test |
npm run test |
| Types | yarn typecheck |
npm run typecheck |
| Lint | yarn lint |
npm run lint |
| Build | yarn react:build |
npm run react:build |
The default App owns title, status and position offsets; the priority example is opt-in.
