observe
О программе
Навык `observe` обеспечивает систематическое и нейтральное распознавание паттернов для отладки и анализа, по аналогии с полевыми исследованиями натуралиста. Он используется, когда поведение системы неясно или перед принятием мер, позволяя разработчикам наблюдать эффекты, формировать гипотезы и архивировать результаты. Ключевые возможности включают устойчивое внимание, запись паттернов и проверку рассуждений на наличие предубеждений или ошибок.
Быстрая установка
Claude Code
Рекомендуетсяnpx skills add pjt222/agent-almanac -a claude-code/plugin add https://github.com/pjt222/agent-almanacgit 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
learnbuilt 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 │
└──────────────────┴──────────────────────────┴──────────────────────────┘
- Pick observation target, name explicitly
- Define boundary: what included, what out of scope
- State stance: "I observe, not intervene"
- If guiding question, state it — hold lightly; willing to notice things outside scope
- 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.
- Begin systematic observation: read files, trace paths, review history — whatever target requires
- Record what seen, not what means — description before interpretation
- Resist urge to fix problems during observation — note them, continue
- Resist urge to explain patterns before enough observations accumulate
- Attention drifts to different target? Note drift (may be meaningful), return to frame
- 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.
- List each observation as single statement of fact (what seen, where, when)
- Group similar observations naturally — don't force, but notice when they cluster
- Note frequency: pattern appear once, occasionally, pervasively?
- Note contrasts: where pattern broke? Exceptions often more informative than rules
- Note temporal patterns: observation change over time, or static?
- 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.
- Review all observations, look for natural groupings
- Assign each to category from Step 1 matrix, or create new categories if needed
- Within each category, rank by frequency and significance
- Identify which categories have many observations (well-documented) and which few (potential blind spots)
- Look for cross-category patterns: same underlying pattern manifesting differently in different categories?
- 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.
- For each major pattern, propose hypothesis: "This pattern exists because..."
- For each hypothesis, identify supporting evidence from observations
- For each, identify what counter-evidence would disprove it
- Rank by explanatory power: which explains most observations?
- Generate at least one contrarian hypothesis: "Obvious explanation is X, but could also be Y because..."
- 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.
- Summarize key findings: 3-5 patterns with evidence
- State leading hypotheses and confidence levels
- Note what was not observed (potential blind spots)
- Identify follow-up observations that would strengthen or weaken hypotheses
- Patterns durable (relevant across sessions)? Consider updating MEMORY.md
- 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 observationlearn— observation feeds learning by providing raw data for model-buildinglisten— outward-focused attention toward user signals; observation broader-scope attention toward any systemremote-viewing— intuitive exploration that can be validated through systematic observationmeditate— develops sustained attention capacity observation requiresawareness— threat-focused situational awareness; observation curiosity-driven rather than defense-driven
GitHub репозиторий
Похожие навыки
content-collections
МетаЭтот навык предоставляет проверенную в продакшене настройку для Content Collections — TypeScript-ориентированного инструмента, который преобразует файлы Markdown/MDX в типобезопасные коллекции данных с валидацией Zod. Используйте его при создании блогов, сайтов документации или контентных приложений на Vite + React для обеспечения типобезопасности и автоматической проверки содержимого. Он охватывает всё: от настройки плагина Vite и компиляции MDX до оптимизации развертывания и валидации схем.
polymarket
МетаЭтот навык позволяет разработчикам создавать приложения на платформе прогнозных рынков Polymarket, включая интеграцию с API для торговли и получения рыночных данных. Он также обеспечивает потоковую передачу данных в реальном времени через WebSocket для отслеживания текущих сделок и рыночной активности. Используйте его для реализации торговых стратегий или создания инструментов, обрабатывающих обновления рынка в реальном времени.
creating-opencode-plugins
МетаЭтот навык помогает разработчикам создавать плагины OpenCode, которые подключаются к более чем 25 типам событий, таким как команды, файлы и операции LSP. Он предоставляет структуру плагина, спецификации API событий и шаблоны реализации для модулей на JavaScript/TypeScript. Используйте его, когда вам нужно перехватывать, отслеживать или расширять жизненный цикл ассистента OpenCode AI с помощью пользовательской событийно-ориентированной логики.
sglang
МетаSGLang — это высокопроизводительный фреймворк для обслуживания больших языковых моделей (LLM), специализирующийся на быстрой структурированной генерации JSON, regex и рабочих процессов агентов с использованием кэширования префиксов RadixAttention. Он обеспечивает значительно более высокую скорость вывода, особенно для задач с повторяющимися префиксами, что делает его идеальным для сложных структурированных результатов и многократных диалогов. Выбирайте SGLang вместо альтернатив, таких как vLLM, когда вам требуется ограниченное декодирование или вы создаете приложения с интенсивным совместным использованием префиксов.
