agentleFS
tardigrdetardigrde/obsidian-agentic-chat/.agents/skills/probe-feature/SKILL.md

Probe Feature

Skill8 starsChanged 7 days agoMITView on GitHub

Use when a feature's correct behavior is unknown, or when you need a recorded before/after from the real Obsidian app. Runs a throwaway probe, writes a report, and promotes proven behavior into deterministic e2e specs.

The file

Show its rules and text

We split this skill into the rules it gives an agent

14 rules. About 0 are common, 11 are distinctive, and 3 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈11

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 3

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    If you cannot name an observable, the idea is not ready.

    line 19
  2. Very specific:

    Start from a generated vault.

    line 27
  3. Distinctive:

    Read the keyframes and metrics.

    line 39
  4. Very specific:

    Write the observations into report.md.

    line 40
  5. Distinctive:

    Keep the scenario disposable.

    line 78
  6. Distinctive:

    When the answer is "keep it", extract the durable behavior:

    line 82
  7. Very specific:

    Write assertions in test/e2e/specs/<area>.e2e.ts.

    line 84
  8. Distinctive:

    Run three times with no retries.

    line 85
  9. Distinctive:

    Delete the probe scenario.

    line 88
  10. Distinctive:

    Add the entry point to the feature map with the spec path.

    line 89
  11. Distinctive:

    When the answer is "kill it", delete the branch.

    line 91
  12. Distinctive:

    Do not pixel-diff the video.

    line 99
  13. Distinctive:

    Do not promote a probe into CI.

    line 100
  14. Distinctive:

    Do not use a probe to avoid writing a witness for a known behavior.

    line 101

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Probe feature

A probe is an experiment, not a test. It answers "what actually happens?" with a recording a human can watch and metrics an agent can check. It does not enter CI.

Before the first run

Write one falsifier:

Keep it if <observable>. Kill it if <observable>.

If you cannot name an observable, the idea is not ready. Park it.

One hypothesis per run. Maximum three runs. After that, report what you learned and stop. A probe that keeps running is a feature in disguise.

Protocol

  1. Pick a scenario from test/e2e/probe/scenarios/ or add one.
  2. Start from a generated vault. Never use ~/MyTestVault for a probe.
  3. Drive a journey, not a screen: open, act, observe, change one thing, observe again. The interesting behavior is in the transitions.
  4. Mark each decisive moment with record.mark(label).
  5. Run:
npm run probe -- --scenario <name>
npm run probe -- --scenario <name> --live
npm run probe -- --scenario <name> --gif 00:08-00:16
  1. Read the keyframes and metrics. Answer the falsifier.
  2. Write the observations into report.md.

What the runner gives you

logs/probes/<timestamp>-<scenario>/
  session.mp4     whole display, trimmed to just before the first mark
  key.gif         only when --gif is passed
  timeline.json   every mark with its timestamp
  metrics.json    viewport, overflow, rects, counts
  shots/*.png     one keyframe per mark
  report.md       stub with timeline and result

The human watches the video. The agent reads the keyframes and metrics. State mode: live or mode: scripted in the report; never present scripted turns as a real model.

Scenario shape

import { describe, it } from "mocha";
import { mark, clickWithRipple, writeMetrics } from "../support/record";

describe("probe: my journey", function () {
  this.timeout(180_000);

  it("records the before and after", async function () {
    mark("start");
    // act
    mark("observed failure");
    // change one setting or input
    mark("observed recovery");
    await writeMetrics({ /* what you measured */ });
  });
});

Keep the scenario disposable. It is a script for a question, not a permanent test.

Promote

When the answer is "keep it", extract the durable behavior:

  1. Write assertions in test/e2e/specs/<area>.e2e.ts.
  2. Run three times with no retries.
  3. Prove the spec can fail: revert the behavior or add the negative case and watch it go red.
  4. Delete the probe scenario; keep the report summary in the PR body.
  5. Add the entry point to the feature map with the spec path.

When the answer is "kill it", delete the branch. Keep the report. That is a cheap loss, which is the point.

Anti-theater rules

  • A screenshot is not a verdict. Every claim has a DOM, state, or layout check.
  • A recording that always passes is suspicious. Check the observation method before the system.
  • Do not pixel-diff the video. Timing, model text, and cursor position differ.
  • Do not promote a probe into CI. Promote its assertions.
  • Do not use a probe to avoid writing a witness for a known behavior.

Read next

  • @verify-obsidian-chat for selectors, launch, and evidence rules.
  • @ship-change for the promotion and done checklist.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.