Top-level (4)
The four atoms that frame the project.
vision — vis_
Section titled “vision — vis_”One-paragraph problem statement + value prop. ~1 per project.
{ "id": "vis_main_a1b2", "kind": "vision", "name": "Habit Tracker vision", "problemStatement": "People want to build small daily habits but lose track of streaks; existing apps overload with social features.", "valueProposition": "No-friction tracker focused on streaks. One screen per habit, one tap to check in."}No Layer 2. Carries Layer 1 (intent) like every atom.
persona — per_
Section titled “persona — per_”Target users. Goals + pain points. ~1–3 per project.
{ "id": "per_self_improver_c3d4", "kind": "persona", "name": "Self-improver", "goals": ["build a daily habit", "see streak grow"], "painPoints": ["cluttered apps", "forgetting to check in"]}module — mod_
Section titled “module — mod_”Coarse grouping under a project (e.g. “Auth”, “Billing”, “Habits”). Acts as the parent for features via parent_of edges.
{ "id": "mod_habits_e5f6", "kind": "module", "name": "Habits", "status": "in_progress"}status is one of idea / in_progress / done / archived.
feature — feat_ (carries Layer 2)
Section titled “feature — feat_ (carries Layer 2)”One unit of behavior. The most-used kind in any project.
{ "id": "feat_create_habit_h14a", "kind": "feature", "name": "Create habit", "userStory": "As a self-improver I add a new habit by typing a name and tapping Create.", "priority": "p1", "status": "in_progress", "intent": { "userStory": "...", "relatedAtoms": ["ent_habit_h7h8", "ui_habits_screen_a1b2"] }, "behavior": { "trigger": "onClick", "steps": [ { "kind": "validate", "rule": "habit_name_not_empty", "errorMessage": "Habit name cannot be empty" }, { "kind": "call", "method": "POST", "endpoint": "/api/habits", "body": { "name": { "$ref": "state.draftHabitName" } }, "assignTo": "state.lastCreated" }, { "kind": "dispatch", "feature": "load_habits" }, { "kind": "setState", "path": "state.draftHabitName", "value": "" } ] }}Lowered into a SenLang Action chain by @atomprd/codegen-senlang. See Layer 2 schemas → feature.behavior.
See also
Section titled “See also”- Spec → Layer 2 schemas —
feature.behaviorshape. - Concepts → Atom model — why hierarchy is
parent_ofedges. - Atoms → Domain —
entityandfield.