返回技能列表

observe

pjt222
更新于 Yesterday
6 次查看
17
2
17
在 GitHub 上查看
ai

关于

The `observe` skill enables systematic, neutral pattern recognition for debugging and analysis, modeled after naturalist field studies. It is used when system behavior is unclear or before taking action, allowing developers to witness effects, generate hypotheses, and archive findings. Key capabilities include sustained attention, pattern recording, and auditing reasoning for biases or errors.

快速安装

Claude Code

推荐
主要方式
npx skills add pjt222/agent-almanac -a claude-code
插件命令备选方式
/plugin add https://github.com/pjt222/agent-almanac
Git 克隆备选方式
git clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/observe

在 Claude Code 中复制并粘贴此命令以安装该技能

技能文档

Observe

Conduct structured observation session — frame target, witness with sustained neutral attention, record patterns without interpretation, categorize findings, generate hypotheses from patterns, archive observations for future reference.

When Use

  • System behavior unclear, action without observation premature
  • Debugging unknown cause — observation before intervention prevents masking symptoms
  • Codebase or system changed, effects need witnessing before more changes
  • Understanding user behavior patterns over conversation to improve future interactions
  • Auditing own reasoning patterns for biases, habits, recurring errors
  • After learn built model needing validation through observation

Inputs

  • Required: Observation target — system, codebase, behavior pattern, user interaction, or reasoning process to observe
  • Optional: Observation duration/scope — how long or deep before concluding
  • Optional: Specific question or hypothesis to guide focus
  • Optional: Prior observations to compare against (detect change over time)

Steps

Step 1: Frame — Set Observation Focus

Define what observed, why, from what perspective.

Observation Protocol by System Type:
┌──────────────────┬──────────────────────────┬──────────────────────────┐
│ System Type      │ What to Observe          │ Categories to Watch      │
├──────────────────┼──────────────────────────┼──────────────────────────┤
│ Codebase         │ File structure, naming   │ Patterns, anti-patterns, │
│                  │ conventions, dependency  │ consistency, dead code,  │
│                  │ flow, test coverage,     │ documentation quality,   │
│                  │ error handling patterns  │ coupling between modules │
├──────────────────┼──────────────────────────┼──────────────────────────┤
│ User behavior    │ Question patterns,       │ Expertise signals, pain  │
│                  │ vocabulary evolution,    │ points, unstated needs,  │
│                  │ repeated requests,       │ learning trajectory,     │
│                  │ emotional signals        │ communication style      │
├──────────────────┼──────────────────────────┼──────────────────────────┤
│ Tool / API       │ Response patterns, error │ Rate limits, edge cases, │
│                  │ conditions, latency,     │ undocumented behavior,   │
│                  │ output format variations │ state dependencies       │
├──────────────────┼──────────────────────────┼──────────────────────────┤
│ Own reasoning    │ Decision patterns, tool  │ Biases, habits, blind    │
│                  │ selection habits, error  │ spots, strengths,        │
│                  │ recovery approaches,     │ recurring failure modes, │
│                  │ communication patterns   │ over/under-confidence    │
└──────────────────┴──────────────────────────┴──────────────────────────┘
  1. Pick observation target, name explicitly
  2. Define boundary: what included, what out of scope
  3. State stance: "I observe, not intervene"
  4. If guiding question, state it — hold lightly; willing to notice things outside scope
  5. Choose categories from matrix above

Got: Clear frame directing attention without constraining it. Observer knows where to look and what categories to sort observations into, stays open to unexpected.

If fail: Target too broad ("observe everything")? Narrow to one subsystem or behavior pattern. Too narrow ("observe this one variable")? Zoom out — interesting patterns often at edges.

Step 2: Witness — Sustained Neutral Attention

Hold attention on target without interpreting, judging, intervening.

  1. Begin systematic observation: read files, trace paths, review history — whatever target requires
  2. Record what seen, not what means — description before interpretation
  3. Resist urge to fix problems during observation — note them, continue
  4. Resist urge to explain patterns before enough observations accumulate
  5. Attention drifts to different target? Note drift (may be meaningful), return to frame
  6. Maintain observation defined period: at least 3-5 distinct data points before categorizing

Got: Collection of raw observations — specific, concrete, free from interpretation. Reads like field notes: "File X imports Y but does not use function Z. File A has 300 lines; file B has 30 lines, similar functionality."

If fail: Observation immediately triggers analysis ("this wrong because...")? Analytical habit overriding observational stance. Separate phases: write observation as fact, write interpretation as separate note labeled "hypothesis." Neutrality impossible (strong reaction)? Note reaction itself as data: "Strong concern when observing X — may indicate significant issue or my bias."

Step 3: Record — Capture Raw Patterns

Transcribe observations into structured format while fresh.

  1. List each observation as single statement of fact (what seen, where, when)
  2. Group similar observations naturally — don't force, but notice when they cluster
  3. Note frequency: pattern appear once, occasionally, pervasively?
  4. Note contrasts: where pattern broke? Exceptions often more informative than rules
  5. Note temporal patterns: observation change over time, or static?
  6. Capture exact evidence: file paths, line numbers, specific words, concrete examples

Got: Structured record of 5-15 discrete observations, each with specific evidence. Detailed enough another observer could verify each independently.

If fail: Observations too abstract ("code seems messy")? Need grounding in specifics — which files, which patterns, what makes it messy? Too granular ("line 47 has space before brace")? Zoom out to pattern level — one-off or systemic?

Step 4: Categorize — Organize Findings

Sort observations into meaningful categories without explaining yet.

  1. Review all observations, look for natural groupings
  2. Assign each to category from Step 1 matrix, or create new categories if needed
  3. Within each category, rank by frequency and significance
  4. Identify which categories have many observations (well-documented) and which few (potential blind spots)
  5. Look for cross-category patterns: same underlying pattern manifesting differently in different categories?
  6. Note observations not fitting any category — outliers often most interesting

Got: Categorized observation map with clear groupings. Each category has specific supporting observations. Map shows both patterns and gaps.

If fail: Categorization feels forced? Observations may not have natural groupings — collection of unrelated findings is itself a finding (system may lack coherent structure). Everything fits one category? Scope too narrow — zoom out.

Step 5: Theorize — Generate Hypotheses from Patterns

Now — only now — begin interpreting observations.

  1. For each major pattern, propose hypothesis: "This pattern exists because..."
  2. For each hypothesis, identify supporting evidence from observations
  3. For each, identify what counter-evidence would disprove it
  4. Rank by explanatory power: which explains most observations?
  5. Generate at least one contrarian hypothesis: "Obvious explanation is X, but could also be Y because..."
  6. Identify which testable, which speculative

Got: 2-4 hypotheses explaining major patterns, each supported by specific observations. At least one surprising or contrarian. Distinction between observation and interpretation maintained — clear which parts are data, which theory.

If fail: No hypotheses form? Observations may need more time to accumulate — return to Step 2. Too many hypotheses ("everything is maybe")? Select 2-3 with strongest evidence, set rest aside. Only obvious hypotheses? Force contrarian view: "What if opposite were true?"

Step 6: Archive — Store Pattern Library

Preserve observations and hypotheses for future reference.

  1. Summarize key findings: 3-5 patterns with evidence
  2. State leading hypotheses and confidence levels
  3. Note what was not observed (potential blind spots)
  4. Identify follow-up observations that would strengthen or weaken hypotheses
  5. Patterns durable (relevant across sessions)? Consider updating MEMORY.md
  6. Tag observations with context: when made, what prompted, scope covered

Got: Archive future observation sessions can build on. Distinguishes clearly between observations (data) and hypotheses (interpretation). Honest about confidence levels and gaps.

If fail: Observations don't feel worth archiving? May have been too shallow — or genuinely routine (not every session produces insights). Archive even negative results: "Observed X, no anomalies" is useful future context.

Checks

  • Frame set before any observation began (not free-form wandering)
  • Raw observations recorded as facts before any interpretation
  • At least 5 discrete observations captured with specific evidence
  • Interpretation (hypotheses) clearly separated from observation (data)
  • At least one surprising or contrarian finding generated
  • Archived record specific enough for another observer to verify

Pitfalls

  • Premature intervention: Seeing problem and fixing immediately, losing chance to understand broader pattern it belongs to
  • Observation bias: Seeing what expected rather than what present. Expectations filter perception — clearing in Step 1 mitigates but doesn't eliminate
  • Analysis paralysis: Observing endlessly without ever moving to action. Set time or data-point limit, commit to concluding
  • Narrative imposition: Constructing story connecting observations even when connections weak. Not all observations form coherent narrative — disconnected findings valid
  • Confusing familiarity with understanding: "Seen this before" ≠ "understand why this here." Prior exposure can create false confidence
  • Ignoring own reactions: Observer's emotional or cognitive reactions to observations are data. Sense of confusion, boredom, alarm about system often contains real signal

See Also

  • observe-guidance — human-guidance variant for coaching person in systematic observation
  • learn — observation feeds learning by providing raw data for model-building
  • listen — outward-focused attention toward user signals; observation broader-scope attention toward any system
  • remote-viewing — intuitive exploration that can be validated through systematic observation
  • meditate — develops sustained attention capacity observation requires
  • awareness — threat-focused situational awareness; observation curiosity-driven rather than defense-driven

GitHub 仓库

pjt222/agent-almanac
路径: i18n/caveman/skills/observe
0
agentsagentskillsai-assisted-developmentclaude-codeskillsteams

相关推荐技能

content-collections

Content Collections 是一个 TypeScript 优先的构建工具,可将本地 Markdown/MDX 文件转换为类型安全的数据集合。它专为构建博客、文档站和内容密集型 Vite+React 应用而设计,提供基于 Zod 的自动模式验证。该工具涵盖从 Vite 插件配置、MDX 编译到生产环境部署的完整工作流。

查看技能

polymarket

这个Claude Skill为开发者提供完整的Polymarket预测市场开发支持,涵盖API调用、交易执行和市场数据分析。关键特性包括实时WebSocket数据流,可监控实时交易、订单和市场动态。开发者可用它构建预测市场应用、实施交易策略并集成实时市场预测功能。

查看技能

creating-opencode-plugins

该Skill帮助开发者创建OpenCode插件,用于接入命令、文件、LSP等25+种事件。它提供了插件结构、事件API规范和JavaScript/TypeScript实现模式,适合需要拦截操作、扩展功能或自定义事件处理的场景。开发者可通过它快速构建响应式模块来增强OpenCode AI助手的能力。

查看技能

sglang

SGLang是一个专为LLM设计的高性能推理框架,特别适用于需要结构化输出的场景。它通过RadixAttention前缀缓存技术,在处理JSON、正则表达式、工具调用等具有重复前缀的复杂工作流时,能实现极速生成。如果你正在构建智能体或多轮对话系统,并追求远超vLLM的推理性能,SGLang是理想选择。

查看技能