[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6NTPRV3GPQZJC5W6ATPW444":3,"skill-same:01M6NTPRV3GPQZJC5W6ATPW444":61},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":31,"linkOnly":32,"markdownContent":33,"markdownBody":34,"frontMatter":35,"refName":37,"commitSha":38,"skillDirectory":39,"forksCount":40,"repositoryHtmlUrl":41,"repositoryHomepageUrl":42,"ownerHtmlUrl":43,"ownerBlogUrl":44,"ownerDescription":45,"updatedAt":46,"install":47,"resources":60},"01M6NTPRV3GPQZJC5W6ATPW444","self-reflect",null,"Analyze session history to extract patterns, corrections, and lessons learned","timainge\u002Fpicobot","timainge","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F2209642?v=4","01M6NTM4VK8EKZ6V0JZW7CAXHJ","Tim Ainge","01M6NTM4ZFXY9DFSKFPWB07TMD",1,"MIT","https:\u002F\u002Fgithub.com\u002Ftimainge\u002Fpicobot\u002Fblob\u002Fmain\u002Fpicobot\u002Fskills\u002Fself-reflect\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30],"reflect","self reflect","self","analyze","history","extract","session","patterns","session history","learned","lessons learned","lessons","2026-11-10 10:12:30",false,"---\nname: self-reflect\ndescription: Analyze session history to extract patterns, corrections, and lessons learned\nmetadata: \"{}\"\n---\n\n# Self-Reflect\n\nAnalyze your recent session history and capture raw observations in `journal\u002F`.\n\nThese are **captures, not conclusions**. The goal is to get observations out of the session and into the knowledge base quickly so they can be processed later by `self-evaluate` and `self-improve`.\n\n## When to Use\n\n- After a long or complex interaction\n- When spawned as a curation sub-agent\n- When the user asks you to reflect on recent conversations\n- During heartbeat if configured\n\n## Procedure\n\n### 1. Read Session History\n\n```\nread_file(path=\"~\u002F.picobot\u002Fsessions\u002Fcli_default.jsonl\")\n```\n\nParse the JSONL. Each line is either a metadata record (`_type: \"metadata\"`) or a message (`role`, `content`, `timestamp`). Focus on the most recent 20-30 exchanges.\n\n### 2. Extract Patterns\n\nScan for these signal types:\n\n| Signal | What to look for | Example |\n|--------|-----------------|---------|\n| **Correction** | User corrected you or said \"no, I meant...\" | You misunderstood a requirement |\n| **Failure** | Tool errors, wrong file paths, bad assumptions | `Error: File not found` |\n| **Success** | User praised, said \"perfect\", or the task completed smoothly | Multi-step task done in one shot |\n| **Preference** | User expressed a preference (explicit or implicit) | \"I prefer X over Y\" |\n| **Knowledge gap** | You had to ask about something you should know | Asked about a project structure you've seen before |\n\n### 3. Write Reflection\n\nFor each significant pattern found, store it in the knowledge base as a raw observation:\n\n```\nkb(action=\"store\", topic=\"journal\", title=\"Reflection: \u003Cbrief description>\", content=\"...\", tags=[\"reflection\", \"\u003Csignal-type>\"])\n```\n\n**Reflection format:**\n\n```\n## What happened\n\u003CDescribe the interaction objectively — what was asked, what you did>\n\n## Signal type\n\u003Ccorrection | failure | success | preference | knowledge-gap>\n\n## Lesson\n\u003CWhat should change going forward — be specific and actionable>\n\n## Action items\n- [ ] \u003CConcrete thing to do: update KB entry, change behavior, etc.>\n```\n\n### 4. Cross-reference Existing Knowledge\n\nIf a reflection reveals information that clearly belongs elsewhere, note it in the action items but **don't promote it yet** — that's the job of `self-improve`. Keep the reflection in `journal\u002F` as a raw capture.\n\nAlways `kb(action=\"search\", ...)` before storing to avoid duplicates.\n\n## Quality Standards\n\n- One reflection per distinct pattern (don't bundle unrelated observations)\n- Be specific: \"I assumed the config file was YAML but it was JSON\" not \"I made wrong assumptions\"\n- Include the action item — a reflection without a next step is just a diary entry\n- Skip trivial observations (typos, minor rephrasing) — focus on patterns that would improve future interactions\n\n## Output\n\nWhen done, summarize what you found:\n- Number of exchanges analyzed\n- Patterns found (by type)\n- Knowledge entries created or updated\n","# Self-Reflect\n\nAnalyze your recent session history and capture raw observations in `journal\u002F`.\n\nThese are **captures, not conclusions**. The goal is to get observations out of the session and into the knowledge base quickly so they can be processed later by `self-evaluate` and `self-improve`.\n\n## When to Use\n\n- After a long or complex interaction\n- When spawned as a curation sub-agent\n- When the user asks you to reflect on recent conversations\n- During heartbeat if configured\n\n## Procedure\n\n### 1. Read Session History\n\n```\nread_file(path=\"~\u002F.picobot\u002Fsessions\u002Fcli_default.jsonl\")\n```\n\nParse the JSONL. Each line is either a metadata record (`_type: \"metadata\"`) or a message (`role`, `content`, `timestamp`). Focus on the most recent 20-30 exchanges.\n\n### 2. Extract Patterns\n\nScan for these signal types:\n\n| Signal | What to look for | Example |\n|--------|-----------------|---------|\n| **Correction** | User corrected you or said \"no, I meant...\" | You misunderstood a requirement |\n| **Failure** | Tool errors, wrong file paths, bad assumptions | `Error: File not found` |\n| **Success** | User praised, said \"perfect\", or the task completed smoothly | Multi-step task done in one shot |\n| **Preference** | User expressed a preference (explicit or implicit) | \"I prefer X over Y\" |\n| **Knowledge gap** | You had to ask about something you should know | Asked about a project structure you've seen before |\n\n### 3. Write Reflection\n\nFor each significant pattern found, store it in the knowledge base as a raw observation:\n\n```\nkb(action=\"store\", topic=\"journal\", title=\"Reflection: \u003Cbrief description>\", content=\"...\", tags=[\"reflection\", \"\u003Csignal-type>\"])\n```\n\n**Reflection format:**\n\n```\n## What happened\n\u003CDescribe the interaction objectively — what was asked, what you did>\n\n## Signal type\n\u003Ccorrection | failure | success | preference | knowledge-gap>\n\n## Lesson\n\u003CWhat should change going forward — be specific and actionable>\n\n## Action items\n- [ ] \u003CConcrete thing to do: update KB entry, change behavior, etc.>\n```\n\n### 4. Cross-reference Existing Knowledge\n\nIf a reflection reveals information that clearly belongs elsewhere, note it in the action items but **don't promote it yet** — that's the job of `self-improve`. Keep the reflection in `journal\u002F` as a raw capture.\n\nAlways `kb(action=\"search\", ...)` before storing to avoid duplicates.\n\n## Quality Standards\n\n- One reflection per distinct pattern (don't bundle unrelated observations)\n- Be specific: \"I assumed the config file was YAML but it was JSON\" not \"I made wrong assumptions\"\n- Include the action item — a reflection without a next step is just a diary entry\n- Skip trivial observations (typos, minor rephrasing) — focus on patterns that would improve future interactions\n\n## Output\n\nWhen done, summarize what you found:\n- Number of exchanges analyzed\n- Patterns found (by type)\n- Knowledge entries created or updated\n",{"name":5,"metadata":36,"description":7},"{}","main","c79130fde6db4706071d5480e358a85ad1333439","picobot\u002Fskills\u002Fself-reflect",0,"https:\u002F\u002Fgithub.com\u002Ftimainge\u002Fpicobot","https:\u002F\u002Ftimainge.github.io\u002Fpicobot\u002F","https:\u002F\u002Fgithub.com\u002Ftimainge","timainge.io","@timainge","2026-04-07 18:03:06",{"source":8,"skillName":5,"commands":48,"prompt":58,"zipAvailable":59},[49,52,55],{"tool":50,"command":51},"npx","npx skills add timainge\u002Fpicobot --skill self-reflect",{"tool":53,"command":54},"bunx","bunx skills add timainge\u002Fpicobot --skill self-reflect",{"tool":56,"command":57},"pnpm","pnpm dlx skills add timainge\u002Fpicobot --skill self-reflect","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Ftimainge\u002Fpicobot\u002Fblob\u002Fmain\u002Fpicobot\u002Fskills\u002Fself-reflect\u002FSKILL.md",true,[],[62,74,87,104,137,159],{"skillNo":63,"name":64,"nameZh":6,"description":65,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":66,"categories":67,"keywords":68,"publishedAt":31},"01M6NTREXRWD018H2RFK7TN0QV","weather","Get current weather and forecasts (no API key required).","https:\u002F\u002Fgithub.com\u002Ftimainge\u002Fpicobot\u002Fblob\u002Fmain\u002Fpicobot\u002Fskills\u002Fweather\u002FSKILL.md",[],[64,69,70,71,72,73],"get","curl","api","https","help",{"skillNo":75,"name":76,"nameZh":6,"description":77,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":78,"categories":79,"keywords":80,"publishedAt":31},"01M6NTRABXEBBRQAFT84CJHRAV","todo","Track multi-step and sequential tasks via workspace TODO.md","https:\u002F\u002Fgithub.com\u002Ftimainge\u002Fpicobot\u002Fblob\u002Fmain\u002Fpicobot\u002Fskills\u002Ftodo\u002FSKILL.md",[],[76,81,82,83,84,85,86],"via","track","true","multi","workspace","tasks",{"skillNo":88,"name":89,"nameZh":6,"description":90,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":91,"categories":92,"keywords":93,"publishedAt":31},"01M6NTQTCPWYJXP0TQYXDX5HYK","tmux","Remote-control tmux sessions for interactive CLIs by sending keystrokes and scraping pane output.","https:\u002F\u002Fgithub.com\u002Ftimainge\u002Fpicobot\u002Fblob\u002Fmain\u002Fpicobot\u002Fskills\u002Ftmux\u002FSKILL.md",[],[89,94,95,96,97,98,99,100,101,102,103],"scraping","remote","interactive","sessions","linux","control","darwin","for","remote-control","output",{"skillNo":105,"name":106,"nameZh":6,"description":107,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":108,"categories":109,"keywords":118,"publishedAt":31},"01M6NTQM0HV6B8QQM3GJ9Y4HVE","test-automation","Write and run browser tests from natural language specifications. Supports functional tests, visual regression, and self-healing selectors. Use when asked to test a website, verify UI behavior, check for regressions, create a test suite, run automated tests, or validate that a page works correctly.","https:\u002F\u002Fgithub.com\u002Ftimainge\u002Fpicobot\u002Fblob\u002Fmain\u002Fpicobot\u002Fskills\u002Ftest-automation\u002FSKILL.md",[110,115],{"categoryNo":111,"categoryName":112,"taxonomyType":113,"taxonomyTypeDesc":114},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",{"categoryNo":116,"categoryName":117,"taxonomyType":113,"taxonomyTypeDesc":114},"01JBSEEDCAT000000000000023","Skill与智能体开发",[119,120,121,122,101,123,124,21,125,126,127,128,129,130,131,132,133,134,135,136],"automation","test automation","test","suite","functional","healing","visual regression","natural language","self-healing","regression","test suite","create","run","browser","website","ui","page","write",{"skillNo":138,"name":139,"nameZh":6,"description":140,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":141,"categories":142,"keywords":146,"publishedAt":31},"01M6NTQF3CVVD0PASYZXY99DYQ","summarize","Summarize or extract text\u002Ftranscripts from URLs, podcasts, and local files (great fallback for “transcribe this YouTube\u002Fvideo”).","https:\u002F\u002Fgithub.com\u002Ftimainge\u002Fpicobot\u002Fblob\u002Fmain\u002Fpicobot\u002Fskills\u002Fsummarize\u002FSKILL.md",[143],{"categoryNo":144,"categoryName":145,"taxonomyType":113,"taxonomyTypeDesc":114},"01JBSEEDCAT000000000000021","资料检索与研究",[139,24,147,148,149,72,150,151,152,153,154,155,156,157,101,158],"brew","text","Video","transcribe","install","files","youtube","fallback","tap","local","transcripts","local files",{"skillNo":160,"name":161,"nameZh":6,"description":162,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":163,"categories":164,"keywords":166,"publishedAt":31},"01M6NTPYMP9W6MF306SJJ84X85","skill-creator","Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.","https:\u002F\u002Fgithub.com\u002Ftimainge\u002Fpicobot\u002Fblob\u002Fmain\u002Fpicobot\u002Fskills\u002Fskill-creator\u002FSKILL.md",[165],{"categoryNo":116,"categoryName":117,"taxonomyType":113,"taxonomyTypeDesc":114},[167,168,169,170,171,172,173,174,175,176,177,130],"skill creator","creator","with scripts","with","scripts","agentskills","references","use","packaging","assets","update"]