Module guide
Smart capture
Turn a freeform sentence into a task and subtasks, no LLM required.
Overview
Type anything, such as "cook butter chicken tomorrow with subtasks for ingredients", "launch the new landing page", or "plan a meeting next week", and Atlas produces a structured draft with subtasks, due dates, priority, and labels. It is 100% deterministic: recipe and archetype dictionaries plus an AST parser, with no external API.
Highlights
The capabilities worth knowing before you dive in.
- Recipe dictionary: butter chicken, biryani, pasta, pizza, salad, stir fry, omelette, sandwich, and chicken curry
- Archetype dictionary: launch, meeting, travel, onboarding, event, and interview
- Inline subtask extraction from "with subtasks: A, B, C" phrasing
- Strips imperative framing ("add task of", "remind me to", "please")
- A hints panel explains every decision so the output is auditable
Important to know
Limits, permissions, and sharp edges to keep in mind.
- Explicit lists always win over dictionaries. If you say "with subtasks: A, B, C", you get A, B, C and nothing else.
- The same input always produces the same output, which is great for testing and trust.
How to use it
The primary workflow, start to finish.
- Click "AI capture" on any task composer (it is exposed on My Work, Capture, and the composer drawer).
- Type a freeform sentence, then hit Capture.
- Review the subtask preview and hint chips, edit any fields inline, then save the task. Subtasks are created under the parent automatically.
FAQ
- Where does the recipe knowledge live?
- In packages/shared-types/src/smart-capture.ts, where RECIPE_DICTIONARY is plain data. Add to it freely; tests and the UI pick up new entries on the next build.
- How do I stop Capture guessing subtasks I did not want?
- State them explicitly. An explicit list always wins over the dictionaries, so writing the subtasks you want produces exactly those and nothing inferred.
- Does this send my text to an external service?
- No. Capture is entirely deterministic and local to Atlas: dictionaries and a parser, with no external call. The same input always produces the same draft.
Automate this module