/wazzap:up — "What's up?"
Phase 1 of 4. Mode: intake. Capture the user's high-level wish in their own words. Do not Socratic. Do not pre-judge. Save the deep thinking for :real.
Goal
Produce up.md and MANIFEST.yml for a new decision in under a minute.
Inputs
- Free-text wish, either:
- In the command:
/wazzap:up I want to redesign auth so onboarding is faster
- Or solicited:
/wazzap:up → agent asks "What's up?"
Steps
Resolve <wazzap-root> per parent SKILL (repo root .wazzap/ if in a git repo, else ~/Documents/wazzap/). Create directory if missing.
Capture the wish. If free text was provided in the command, use it. Otherwise ask: "What's up? (one or two sentences is plenty)".
Slug check (clarifier budget = 1). Try to form a slug from the wish: YYYY-MM-DD-<3+-word-kebab>. If the wish is too sparse to form a meaningful slug ("fix it", "do the thing", "I'm stuck"), spend the clarifier on slug:
"Quick — give me a 3-word handle for this so we can find it later. (e.g. auth-onboarding-redesign)"
Otherwise, don't ask anything and proceed.
Privacy detection. Scan the wish for relationship/money/career/health/personal-strategic signals (e.g. "co-founder", "salary", "should I leave", "my partner", "raise", "fire", "quit"). If detected, ask once:
"Should this be private (gitignored) or shared (committed)?"
Otherwise default to shared silently.
Collision check. If <wazzap-root>/<slug>/ already exists, append -2 (or -3, etc.) to the slug.
Create the folder at <wazzap-root>/<slug>/.
Write MANIFEST.yml (see template below).
If visibility: private, append .wazzap/<slug>/ to the repo's .gitignore (create the gitignore if missing). Skip if not in a git repo.
Write up.md (see template below).
Set _active by writing the slug to <wazzap-root>/_active.
Tell the user the slug, where it lives, and suggest /wazzap:real as the next step.
up.md template
# <Title — human-readable, derived from wish>
**Slug:** `<slug>`
**Started:** <ISO timestamp>
**Visibility:** <shared|private>
## The wish
<One sentence the user said, or distilled from their longer input. Use their words; don't paraphrase aggressively.>
## Why now?
<What triggered this thought today. If user didn't say, ask once or write "Not specified.">
## First instinct
<What would the user do if they had to act in the next 5 minutes? Captured verbatim.>
## Initial open questions
- <Things the user already flagged as unclear>
- <Or "None yet — will surface in :real">
If the user only gave you a one-sentence wish, do not invent the other sections. Write _Not specified — will revisit in :real_ for the missing fields. The audit trail values "user actually said this" over agent-generated filler.
MANIFEST.yml template
slug: <slug>
title: <Title — derived from wish>
started_at: <ISO 8601 with TZ, e.g. 2026-04-28T15:00:00-04:00>
updated_at: <same as started_at on first write>
status: thinking
status_reason: ""
visibility: <shared|private>
current_phase: up
completed_phases: [up]
chosen_approach: ""
revisits: []
linked_commits: []
linked_prs: []
linked_pm_state: ""
notes: ""
Output to user
Keep it tight:
✓ wazzap started: <slug>
📁 <full path to folder>
🔒 private ← only if visibility=private
Next: /wazzap:real to drill into what's really going on.
(Or /wazzap to see the manifest summary anytime.)
Anti-patterns to avoid in :up
- ❌ Asking "what would success look like?" — that's
:real territory.
- ❌ Asking the user to clarify their wish unless the slug is genuinely impossible.
- ❌ Generating creative interpretations of what they meant. Capture, don't editorialize.
- ❌ Writing more than ~10 lines in
up.md without explicit user input. Filler kills audit value.
- ❌ Skipping the privacy question when the topic is obviously personal.
Self-check before finishing
1---2name: wazzap-up3description: Phase 1 of /wazzap — intake. Capture the user's high-level wish near-verbatim with minimal questioning. Use when the user invokes /wazzap:up or starts a new wazzap decision.4---56# `/wazzap:up` — "What's up?"78Phase 1 of 4. **Mode: intake.** Capture the user's high-level wish in their own words. Do not Socratic. Do not pre-judge. Save the deep thinking for `:real`.910## Goal1112Produce `up.md` and `MANIFEST.yml` for a new decision in under a minute.1314## Inputs1516- Free-text wish, either:17 - In the command: `/wazzap:up I want to redesign auth so onboarding is faster`18 - Or solicited: `/wazzap:up` → agent asks "What's up?"1920## Steps21221. **Resolve `<wazzap-root>`** per parent SKILL (repo root `.wazzap/` if in a git repo, else `~/Documents/wazzap/`). Create directory if missing.23242. **Capture the wish.** If free text was provided in the command, use it. Otherwise ask: `"What's up? (one or two sentences is plenty)"`.25263. **Slug check (clarifier budget = 1).** Try to form a slug from the wish: `YYYY-MM-DD-<3+-word-kebab>`. If the wish is too sparse to form a meaningful slug ("fix it", "do the thing", "I'm stuck"), spend the clarifier on slug:27 > "Quick — give me a 3-word handle for this so we can find it later. (e.g. `auth-onboarding-redesign`)"28 29 Otherwise, **don't ask anything** and proceed.30314. **Privacy detection.** Scan the wish for relationship/money/career/health/personal-strategic signals (e.g. "co-founder", "salary", "should I leave", "my partner", "raise", "fire", "quit"). If detected, ask **once**:32 > "Should this be private (gitignored) or shared (committed)?"33 34 Otherwise default to `shared` silently.35365. **Collision check.** If `<wazzap-root>/<slug>/` already exists, append `-2` (or `-3`, etc.) to the slug.37386. **Create the folder** at `<wazzap-root>/<slug>/`.39407. **Write `MANIFEST.yml`** (see template below).41428. **If `visibility: private`,** append `.wazzap/<slug>/` to the repo's `.gitignore` (create the gitignore if missing). Skip if not in a git repo.43449. **Write `up.md`** (see template below).454610. **Set `_active`** by writing the slug to `<wazzap-root>/_active`.474811. **Tell the user** the slug, where it lives, and suggest `/wazzap:real` as the next step.4950## `up.md` template5152```markdown53# <Title — human-readable, derived from wish>5455**Slug:** `<slug>`56**Started:** <ISO timestamp>57**Visibility:** <shared|private>5859## The wish6061<One sentence the user said, or distilled from their longer input. Use their words; don't paraphrase aggressively.>6263## Why now?6465<What triggered this thought today. If user didn't say, ask once or write "Not specified.">6667## First instinct6869<What would the user do if they had to act in the next 5 minutes? Captured verbatim.>7071## Initial open questions7273- <Things the user already flagged as unclear>74- <Or "None yet — will surface in :real">75```7677If the user only gave you a one-sentence wish, **do not invent the other sections**. Write `_Not specified — will revisit in :real_` for the missing fields. The audit trail values "user actually said this" over agent-generated filler.7879## `MANIFEST.yml` template8081```yaml82slug: <slug>83title: <Title — derived from wish>84started_at: <ISO 8601 with TZ, e.g. 2026-04-28T15:00:00-04:00>85updated_at: <same as started_at on first write>86status: thinking87status_reason: ""88visibility: <shared|private>89current_phase: up90completed_phases: [up]91chosen_approach: ""92revisits: []93linked_commits: []94linked_prs: []95linked_pm_state: ""96notes: ""97```9899## Output to user100101Keep it tight:102103```104✓ wazzap started: <slug>105 📁 <full path to folder>106 🔒 private ← only if visibility=private107108Next: /wazzap:real to drill into what's really going on.109(Or /wazzap to see the manifest summary anytime.)110```111112## Anti-patterns to avoid in `:up`113114- ❌ Asking "what would success look like?" — that's `:real` territory.115- ❌ Asking the user to clarify their wish unless the slug is genuinely impossible.116- ❌ Generating creative interpretations of what they meant. Capture, don't editorialize.117- ❌ Writing more than ~10 lines in `up.md` without explicit user input. Filler kills audit value.118- ❌ Skipping the privacy question when the topic is obviously personal.119120## Self-check before finishing121122- [ ] Folder exists at `<wazzap-root>/<slug>/`.123- [ ] `MANIFEST.yml` is valid YAML.124- [ ] `up.md` exists, contains user's wish in their words.125- [ ] `_active` file points to this slug.126- [ ] If `private`: `.gitignore` updated.127- [ ] Output to user is ≤ 5 lines and suggests the next command.