From heres-the-thing
Log what happened after delivering a pitch -- capture results, reflections, and push learnings back to audience profiles and professional profile. Use when user says 'log outcome', 'how did it go', 'it went well/badly'.
How this skill is triggered — by the user, by Claude, or both
Slash command
/heres-the-thing:outcome-httThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
<purpose>
<load-config>
Resolve the user's home directory (run `echo $HOME` via Bash). Use this absolute path for all file operations below -- never pass `~` to the Read tool.
1. Read `<home>/.things/config.json`
<if condition="config-missing">Tell the user: "Run `/things:setup-things` first." Then stop.</if>
</load-config>
Select Campaign and Goal
<if condition="campaign-id-in-arguments">
Read `<home>/.things/heres-the-thing/campaigns/<campaign-id>/campaign.json`.
</if>
<if condition="no-campaign-id">
Scan `<home>/.things/heres-the-thing/campaigns/*/campaign.json`. List active campaigns with goals that have status `active` or `delivered`.
Use AskUserQuestion to select one.
</if>
<if condition="goal-id-in-arguments">
Select the matching goal.
</if>
<if condition="no-goal-id-and-multiple-goals">
Use AskUserQuestion to select a goal.
</if>
<if condition="single-active-goal">
Auto-select it.
</if>
Show the goal summary: description, audience, medium, target date, current status.
Gather Outcome
<phase name="result" number="1">
Use AskUserQuestion:
How did it go?
<options>
- Succeeded -- got what I wanted
- Approved with conditions -- partial success
- Deferred -- they want to think about it / come back later
- Pivoted -- conversation went a different direction
- Failed -- didn't land
</options>
</phase>
<phase name="narrative" number="2">
Use AskUserQuestion (free text):
What happened? Give me the story. (Brief narrative of what occurred)
</phase>
<phase name="what-landed" number="3">
Use AskUserQuestion (free text):
What resonated? What points or framings landed well? (List the things that worked)
</phase>
<phase name="what-didnt" number="4">
Use AskUserQuestion (free text):
What didn't work? What fell flat or backfired? (List the things that didn't land)
</phase>
<phase name="reflections" number="5">
Use AskUserQuestion (free text):
Any personal reflections? ("I fumbled when...", "I nailed the...", "Next time I would...")
</phase>
<phase name="next-steps" number="6">
Use AskUserQuestion (free text):
What are the next steps? (Action items coming out of this)
</phase>
<phase name="goal-status" number="7">
Use AskUserQuestion:
Update goal status?
<options>
- active -- still in progress
- delivered -- pitch delivered, waiting for result
- succeeded -- achieved the goal
- failed -- goal not achieved
- pivoted -- goal changed direction
</options>
</phase>
<phase name="tags" number="8">
Auto-suggest outcome tags from: result type, audience names, medium, what_landed keywords.
Ask user to confirm/edit.
</phase>
Write Outcome
<output-path>`<home>/.things/heres-the-thing/campaigns/<campaign-id>/outcomes/<goal-id>-<timestamp>.json`</output-path>
```json
{
"goal_id": "<goal-id>",
"date": "<current_date>",
"tags": ["<outcome-tags>"],
"result": "<result>",
"goal_status_update": "<new-status>",
"narrative": "<narrative>",
"what_landed": ["<items>"],
"what_didnt": ["<items>"],
"user_reflections": "<reflections>",
"feedback_to_system": {
"audience_updates": {},
"user_skill_updates": {
"strengths": [],
"weaknesses": []
}
},
"next_steps": ["<items>"]
}
```
Update Goal Status
Read campaign.json. Update the goal's `status` field. Write the updated campaign.json.
Push Feedback to System
<phase name="audience-updates" number="1">
For each person in the goal's audience:
<if condition="person-has-shared-profile">
Read `<home>/.things/shared/people/<person-ref>/profile.md`.
Extract audience-specific learnings from `what_landed`, `what_didnt`, and `user_reflections`:
- Communication style preferences observed
- Decision-making patterns observed
- Concerns that proved important
- Effective/ineffective framings
Append a new section to the person's profile.md:
```markdown
## Insights from <campaign-id> (<date>)
- <learnings>
```
Store in `feedback_to_system.audience_updates`:
```json
{
"<person-ref>": "<summary of learnings>"
}
```
</if>
</phase>
<phase name="user-skill-updates" number="2">
Read `<home>/.things/shared/professional-profile.json`.
Extract self-learnings from `what_landed` (→ strengths) and `what_didnt` + `user_reflections` (→ weaknesses).
<if condition="new-strengths-identified">
Add to `building_skills` if not already present. Store in `feedback_to_system.user_skill_updates.strengths`.
</if>
<if condition="new-weaknesses-identified">
Store in `feedback_to_system.user_skill_updates.weaknesses` for reference by future strategy briefs.
</if>
<constraint>Only update professional-profile.json if there are clear, concrete skill insights. Don't add vague entries.</constraint>
</phase>
<phase name="update-outcome-feedback" number="3">
Read the outcome file written in step 4. Update `feedback_to_system` with the actual updates made. Write the updated outcome file.
</phase>
Confirm
<completion-message>
Outcome logged for `<campaign-id>` / `<goal-id>`.
Result: <result>
Goal status: <old> → <new>
Feedback pushed:
<if condition="audience-updated">- Audience insights added to <person-ref>'s profile</if>
<if condition="skills-updated">- Professional profile updated with new skill insights</if>
<if condition="no-feedback">- No system feedback pushed (no clear insights to record)</if>
<if condition="has-next-steps">
Next steps recorded:
<list next_steps>
</if>
<if condition="parent-goal-exists">
Parent goal `<parent-id>` has <n> of <total> sub-goals completed.
</if>
</completion-message>
npx claudepluginhub brennacodes/brenna-plugs --plugin heres-the-thingMulti-pass coaching session for hard conversations, decisions, or accumulated tension. Runs panel passes with corrections, files accountability records, and updates a rolling pattern tracker across sessions.
Supervises multi-goal missions by reading the mission charter and prior goal artifacts, then deciding whether to proceed with the next goal, declare the mission done, or escalate to the user.