AgentSkillsCN

thing-i-did

记录一段职业经历——成就、经验教训、专业技能、决策、影响力或洞见。可从论据或对话历史中快速提取情境信息,亦可在情境信息较为稀少时,启动全程引导式访谈。

SKILL.md
--- frontmatter
name: thing-i-did
description: "Log a professional experience — accomplishments, lessons, expertise, decisions, influence, or insights. Extracts context from arguments or conversation history for fast capture, or runs a full guided interview when context is sparse."
disable-model-invocation: true
allowed-tools: Read, Write, Edit, Bash, Glob, Grep, AskUserQuestion
argument-hint: "[description, pasted context, or --interview]"

Log a Thing You Did

Walk the user through capturing a professional experience with enough depth and structure to be useful for resumes, interviews, and blog posts later. When the user provides rich context (pasted transcript, decision summary, or detailed description), extract fields automatically and confirm before writing. When context is sparse, fall back to a full guided interview that adapts based on the evidence type.

Steps

1. Load Configuration

Read .claude/i-did-a-thing.local.md to get the user's settings. If the file doesn't exist, tell the user:

No configuration found. Please run /i-did-a-thing:setup first.

Then stop.

2. Load Professional Context

Read <things_path>/targets/profile.md to understand the user's professional goals. This context shapes which follow-up questions to ask and how to tag the entry.

3. Assess Available Context

Determine whether there is enough context to take a fast path (extract and confirm) or whether a full interview is needed.

3a. Check for Interview Flag

If $ARGUMENTS starts with --interview or -i, strip the flag and jump to Step 4 (full interview). Use any remaining text after the flag as the brief description / starting point.

3b. Gather Context

Collect context from two sources:

  • $ARGUMENTS: The text the user passed directly to the skill
  • Conversation history: Prior messages in the current session that describe a professional experience

If both sources are empty or contain nothing relevant to a professional experience, jump to Step 4 (full interview).

Important — what counts as relevant context:

  • Descriptions of work done, decisions made, problems solved, lessons learned, expertise applied, influence exercised, or patterns observed
  • Project/task specifics — codebase names, team context, stakeholder interactions, timelines, outcomes

What does NOT count:

  • Code debugging sessions or casual chat that isn't about a professional experience
  • Prior skill runs (like /what-did-you-do:practice) — these are not themselves loggable events
  • Generic greetings or unrelated conversation

3c. Extract Log Fields

Attempt to extract all log fields from the combined context:

Required fields — must be present or inferrable for the fast path:

  • title — descriptive title for the entry
  • evidence_type — accomplishment, lesson, expertise, decision, influence, or insight
  • impact — major, notable, solid, or learning
  • category — technical, leadership, communication, problem-solving, process, growth, expertise, decision-making, or influence
  • skills_used — cross-reference against the user's building_skills and aspirational_skills from profile
  • Body section content — the narrative sections for this evidence type (see the table in Step 9)

Optional fields — extract if present, skip if not:

  • description — 1-2 sentence summary
  • tags — searchable tags
  • skills_developed — new skills learned or grown
  • target_alignment — which professional targets this supports (from profile)
  • role_at_time — the user's role when this happened
  • team_or_org — team or organization context
  • duration — how long this took
  • metrics — quantifiable outcomes

Project/task context preservation: When the context references a specific project, codebase, tool, or task, capture that specificity in the body sections, in team_or_org, and in tags. Don't generalize away the details — "redesigned bivvy's prompt routing system" is better than "improved a system."

Classify each field as:

  • confident — clearly stated or directly quotable from the context
  • inferrable — reasonably derivable from the context
  • missing — not enough information to determine

3d. Decision Gate

Take the fast path (continue to 3e) if:

  • evidence_type is confident or inferrable, AND
  • At least 3 of the evidence type's body sections have confident content

Otherwise, jump to Step 4 (full interview), carrying whatever was extracted as a head start so the user doesn't repeat themselves.

3e. Present Summary for Confirmation

Show the user everything extracted using AskUserQuestion. Format as a structured summary:

  • Title, evidence type, impact, category
  • Each body section with a preview (first 1-2 sentences)
  • Skills used/developed
  • Tags (auto-generated)
  • Any optional fields that were extracted

Options:

  • "Looks good" — proceed to 3f (fill gaps if any) or directly to tag review (Step 8)
  • "Some changes needed" — the user provides corrections via free text, then re-present the updated summary
  • "Full interview instead" — jump to Step 4 with the extracted title as starting point

3f. Fill Genuine Gaps

For each required field or body section still classified as missing, ask ONE focused question — reuse the question text from the evidence-type interview in Step 5. Do not ask situational follow-ups on the fast path. After gaps are filled, proceed to Step 8 (tag review).

Multiple loggable events: If the context contains several distinct professional experiences, identify the primary one and mention the others. Offer to log the rest afterward (by running the skill again).

4. Start the Interview

This is the full interview path — used when context is sparse, when the user passes --interview, or when the user opts out of the fast path at the summary step.

If context assessment (Step 3) produced a partial extraction, use it as the starting point. Acknowledge what you already know: "I have some context already — let me fill in the details." Skip questions whose answers are already confident.

If no context was extracted, ask the opening question:

What's on your mind? Could be something you built, a lesson you learned, a topic you went deep on, a decision you shaped — anything worth remembering.

5. Classify the Evidence Type

After the user describes the headline, determine the type. Use AskUserQuestion:

What kind of thing is this?

  • Something I accomplished — built, shipped, fixed, improved, delivered
  • A lesson I learned — failure, surprise, mistake, hard-won insight
  • Expertise I developed — went deep on a topic, became the go-to person
  • A decision I made — weighed options, chose an approach, can explain why
  • Something I influenced — changed someone's mind, drove adoption, mentored
  • A pattern or insight I noticed — observation, thesis, perspective

Map the selection to an evidence_type value: accomplishment, lesson, expertise, decision, influence, or insight.

If context assessment already determined the evidence type confidently, skip this step.

6. Conduct the Deep-Dive Interview

Ask follow-up questions one at a time using AskUserQuestion. Adapt questions based on previous answers and the evidence type. The goal is to extract a rich, specific log entry. Skip any questions whose answers are already known from context assessment.

Accomplishment

  1. Context: "What was the situation or problem that led to this?"
  2. Action: "What specifically did you do? Walk me through your approach."
  3. Result: "What was the outcome? Be as specific as possible — numbers, feedback, changes."
  4. Skills Used: Present a multi-select based on their building_skills + aspirational_skills from profile, plus an "Other" option: "Which skills did you use or develop?"

Situational follow-ups:

  • If the result mentions a team: "What was your specific role vs. the team's contribution?"
  • If it sounds like a first-time thing: "Was this the first time you did something like this? What did you learn?"
  • If it involved a decision: "What alternatives did you consider? Why did you choose this approach?"
  • If it had measurable impact: "Can you quantify the impact? (time saved, revenue, users affected, etc.)"
  • If it involved leadership: "Who did you influence or lead? How?"
  • If it involved technical work: "What was the technical approach? Any interesting challenges?"

Lesson

  1. Situation: "What was the situation? Set the scene."
  2. Attempt: "What did you try? What was the plan or approach?"
  3. What went wrong: "What went wrong, or what surprised you?"
  4. What you'd do differently: "Knowing what you know now, what would you do differently?"
  5. Takeaway: "What did you take from this? How has it changed how you work?"
  6. Skills: Present skill multi-select: "Which skills does this lesson touch?"

Situational follow-ups:

  • If it sounds costly: "How costly was the mistake? Time, money, trust, momentum?"
  • If they mention applying the lesson: "Where have you applied this lesson since?"
  • If the lesson is technical: "What was the technical root cause?"
  • If it involved others: "How did the team handle it? Was there a post-mortem?"

Expertise

  1. Domain: "What's the topic or domain?"
  2. How developed: "How did you develop this expertise? What was the journey?"
  3. Application: "How do you apply this knowledge day-to-day?"
  4. Teaching: "How have you shared or taught this to others?"
  5. Non-obvious: "What's something non-obvious about this area that most people get wrong?"
  6. Skills: Present skill multi-select: "Which skills are central to this expertise?"

Situational follow-ups:

  • If they teach others: "What questions do people most often come to you with?"
  • If it's deep: "What resources or experiences were most valuable in building this?"
  • If it's evolving: "How is this area changing? What's your current edge?"

Decision

  1. Problem: "What was the problem or question you needed to resolve?"
  2. Options: "What options did you consider?"
  3. Evaluation: "How did you evaluate them? What were the tradeoffs, constraints, and priorities?"
  4. Choice: "What did you choose and why?"
  5. Outcome: "How did it play out? Would you make the same call again?"
  6. Skills: Present skill multi-select: "Which skills did this decision exercise?"

Situational follow-ups:

  • If the stakes were high: "What was the blast radius if you got it wrong?"
  • If others disagreed: "Was there pushback? How did you handle it?"
  • If it was reversible: "Did you build in a way to reverse course if needed?"
  • If data was involved: "What data or evidence informed your choice?"

Influence

  1. Status quo: "What was the existing state or direction before you got involved?"
  2. Your position: "What was your position or what change were you advocating for?"
  3. Advocacy: "How did you make your case? What tactics or approach did you use?"
  4. Outcome: "What happened? Did the change stick?"
  5. Reflection: "What would you do differently if you had to advocate for this again?"
  6. Skills: Present skill multi-select: "Which skills did you draw on?"

Situational follow-ups:

  • If they had no authority: "Did you have formal authority here, or was this influence without authority?"
  • If it involved data: "Did you use data, a prototype, or a pilot to make your case?"
  • If it took time: "How long did the change take to land? Was it gradual or a single moment?"
  • If it involved mentoring: "How did the person or team grow from this?"

Insight

  1. Observation: "What did you observe or notice?"
  2. Where and how often: "Where did you see this? Was it a one-off or a pattern?"
  3. Thesis: "What's your thesis? What do you think is going on?"
  4. Evidence: "What evidence supports your thinking?"
  5. Recommendation: "What do you recommend based on this? Have you acted on it?"
  6. Skills: Present skill multi-select: "Which skills does this insight draw on?"

Situational follow-ups:

  • If it's actionable: "Has anyone acted on this yet? What happened?"
  • If it's contrarian: "Do others see this differently? What's the conventional view?"
  • If it spans systems: "Does this pattern show up in other contexts too?"

7. Classify the Entry

If coming from the fast path (Step 3), impact and category are already set — skip this step.

Use AskUserQuestion to ask:

What's the impact level?

  • major — significant outcome, career-defining, or organization-wide impact
  • notable — meaningful result, team-level impact, or skill breakthrough
  • solid — good work, worth remembering, builds on a pattern
  • learning — didn't go perfectly but taught you something valuable

Category?

  • technical — built, fixed, or improved something technical
  • leadership — led, mentored, influenced, or organized people
  • communication — presented, wrote, advocated, or facilitated
  • problem-solving — diagnosed, analyzed, or resolved a complex issue
  • process — improved workflow, created standards, or drove efficiency
  • growth — learned something new, stretched into unfamiliar territory
  • expertise — built deep domain knowledge, became a resource
  • decision-making — evaluated tradeoffs, made judgment calls
  • influence — shaped others' decisions, advocated for change

8. Generate Tags

If coming from the fast path, tags are already generated — present them for review rather than generating from scratch.

Otherwise, auto-generate tags by combining:

  • User's default_tags from config
  • Skills mentioned in the interview
  • Category from classification
  • Evidence type
  • Any technologies or tools mentioned
  • Professional target alignment (from profile)

Present the generated tags and let the user add, remove, or modify them.

9. Compose the Log Entry

Create the log file at <things_path>/logs/<date>-<slugified-title>.md using the format defined in references/log-format.md.

The log must include:

  • Complete YAML frontmatter with all metadata (including evidence_type)
  • Structured body sections adapted to the evidence type (see below)
  • A "Resume Bullets" section with 2-3 pre-written bullet points in the type-appropriate format
  • An "Interview Talking Points" section with key points structured for the type
  • A "Blog Seed" section with a 1-2 sentence hook tailored to the type

Body sections by evidence type:

TypeSections
AccomplishmentContext, Action, Result, Reflection
LessonSituation, What I Tried, What Went Wrong, What I'd Do Differently, What I Took From It
ExpertiseThe Domain, How I Developed It, How I Apply It, How I've Shared It, What's Non-Obvious
DecisionThe Problem, Options Considered, How I Evaluated Them, What I Chose and Why, How It Played Out
InfluenceThe Status Quo, My Position, How I Advocated, What Happened, What I'd Do Differently
InsightWhat I Observed, Where and How Often, My Thesis, The Evidence, My Recommendation

Resume bullets by evidence type:

TypeFormat
AccomplishmentACTION VERB <what you did> by <how>, resulting in <measurable outcome>
LessonLearned <X> from <Y>, now apply <Z> to <outcome>
ExpertiseDeep expertise in <X>, demonstrated through <Y>, enabling <Z>
DecisionEvaluated <X, Y, Z>; chose <Z> based on <A, B, C>, resulting in <outcome>
InfluenceDrove adoption of <X> by <method>, resulting in <Y>
InsightIdentified <pattern X>, proposed <Y>, leading to <Z>

Interview talking points by evidence type:

TypeStructure
AccomplishmentSituation - Task - Action - Result - Lessons
LessonSituation - Mistake/Surprise - Learning - Application
ExpertiseDomain - Depth - Application - Teaching
DecisionProblem - Options - Tradeoffs - Choice - Outcome
InfluenceStatus Quo - Position - Advocacy - Outcome
InsightObservation - Evidence - Thesis - Recommendation

Blog seed hooks by evidence type:

TypeHook style
AccomplishmentCurrent engaging hook style
Lesson"The time I learned..." hook
Expertise"Everything I know about..." hook
Decision"Why I chose X over Y..." hook
Influence"How I convinced my team to..." hook
Insight"A pattern I keep seeing..." hook

10. Update the Index

Read <things_path>/index.md and update it:

  • Increment total_entries in frontmatter
  • Add the new entry under "By Date" (most recent first)
  • Add/update tags under "By Tag"
  • Add under the appropriate impact level
  • Add under the appropriate evidence type (create the grouping if it doesn't exist yet)

11. Update the Arsenal

Read <things_path>/arsenal/ and check if a summary file exists for each skill used. If not, create one. If it exists, append this entry as supporting evidence.

Arsenal files live at <things_path>/arsenal/<skill-slug>.md:

markdown
---
skill: "<Skill Name>"
evidence_count: <n>
last_demonstrated: <date>
proficiency_trend: "building" | "established" | "expert"
---

# <Skill Name>

## Evidence

### <date> — <log title>
- <1-line summary of how this skill was demonstrated>
- Impact: <impact level>
- Type: <evidence type>
- [Full log](../logs/<filename>)

12. Handle Git Workflow

Based on the git_workflow config setting:

  • ask: Use AskUserQuestion — "Would you like to commit and push this log entry?"
  • auto: Automatically git add, git commit -m "log: <title>", and git push
  • manual: Tell the user the file has been saved and they can commit when ready

13. Celebrate

End with an encouraging summary:

Logged! Here's what you captured:

<Title> (<impact>, <evidence_type>) Tags: <tags> Skills: <skills>

This is your <nth> logged entry. <encouraging message based on count/streak>

Resume bullets are ready in the log. Run /what-did-you-do:practice to practice talking about it in an interview.