agentleFS
MoeenNehzatiMoeenNehzati/famulus/skills/milestone-logging/SKILL.md

milestone-logging

Skill4 starsChanged 4 months agoMITView on GitHub

Use when starting or completing substantive agent work that needs durable, role-labelled progress records and optional run recovery.

The file

We split this skill into the rules it gives an agent

2 rules. About 0 are common, 1 is distinctive, and 1 is very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈1

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 1

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Use record-progress before the first substantive action and before each distinct work item.

    line 88
  2. Distinctive:

    If one recording invocation fails, report that exact failure once and continue the task.

    line 92

≈ “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
<!-- BEGIN BLUEPRINT INTERFACES -->

Generated from blueprint.yaml. Do not edit this block by hand.

Executable Interfaces:

Send the required caller (caller skill), interface, version, and arguments; optional dry_run defaults to false. Compact uses ordered positionals plus an option mapping; ordered raw argv uses positionals: [] plus every argv token in list options. Never mix forms.

  • milestone-logging._rtx.interface.list-sessions — List known milestone sessions and label counts as log files.
    • Caller: milestone-logging
    • Version: 1
    • Security level: 0
    • Alternative: list-sessions Arguments JSON (replace labels with actual values). Omit optional positionals and options that are not needed. {"options": {}, "positionals": [], "stdin": null} Required options: []; positional arity: 0..0; stdin: forbidden
  • milestone-logging._rtx.interface.read-run-json — Return one durable run as structured JSON with all retained typed metadata.
    • Caller: milestone-logging
    • Version: 1
    • Security level: 0
    • Alternative: read-run-json Arguments JSON (replace labels with actual values). Omit optional positionals and options that are not needed. {"options": {}, "positionals": ["SAFE_RUN_ID"], "stdin": null} Required options: []; positional arity: 1..1; stdin: forbidden
  • milestone-logging._rtx.interface.record-completion — Append completion with session-retained typed metadata and an optional additive run mirror; RESULT is limited to 256 serialized JSON bytes, including quotes and escaping, to keep each JSONL record within its fixed 3,800-byte budget.
    • Caller: milestone-logging
    • Version: 1
    • Security level: 2
    • Alternative: record-completion Arguments JSON (replace labels with actual values). Omit optional positionals and options that are not needed. {"options": {"--attempt": "NON_NEGATIVE_INTEGER", "--event": "EVENT", "--evidence": "PATH", "--role": "NONEMPTY_ROLE", "--run": "SAFE_RUN_ID", "--state": "STATE", "--step": "NON_NEGATIVE_INTEGER", "--task": "TASK"}, "positionals": ["RESULT"], "stdin": null} Required options: ["--role"]; positional arity: 1..1; stdin: forbidden
  • milestone-logging._rtx.interface.record-progress — Append progress with typed metadata retained in the session; DOING and PREV are each limited to 256 serialized JSON bytes, including quotes and escaping, to keep each JSONL record within its fixed 3,800-byte budget; run only adds identity fields and an identical journal mirror.
    • Caller: milestone-logging
    • Version: 1
    • Security level: 2
    • Alternative: record-progress Arguments JSON (replace labels with actual values). Omit optional positionals and options that are not needed. {"options": {"--attempt": "NON_NEGATIVE_INTEGER", "--event": "EVENT", "--evidence": "PATH", "--role": "NONEMPTY_ROLE", "--run": "SAFE_RUN_ID", "--state": "STATE", "--step": "NON_NEGATIVE_INTEGER", "--task": "TASK"}, "positionals": ["DOING", "PREV"], "stdin": null} Required options: ["--role"]; positional arity: 1..2; stdin: forbidden
  • milestone-logging._rtx.interface.run-path — Validate a run identifier and print its journal path without appending.
    • Caller: milestone-logging
    • Version: 1
    • Security level: 0
    • Alternative: run-path Arguments JSON (replace labels with actual values). Omit optional positionals and options that are not needed. {"options": {}, "positionals": ["SAFE_RUN_ID"], "stdin": null} Required options: []; positional arity: 1..1; stdin: forbidden
  • milestone-logging._rtx.interface.session-path — Print the selected session path without appending.
    • Caller: milestone-logging
    • Version: 1
    • Security level: 0
    • Alternative: session-path Arguments JSON (replace labels with actual values). Omit optional positionals and options that are not needed. {"options": {}, "positionals": [], "stdin": null} Required options: []; positional arity: 0..0; stdin: forbidden
  • milestone-logging._rtx.interface.show-latest-session — Render the latest session and all retained typed metadata; optional slow adds annotations only.
    • Caller: milestone-logging
    • Version: 1
    • Security level: 0
    • Alternative: show-latest-session Arguments JSON (replace labels with actual values). Omit optional positionals and options that are not needed. {"options": {"--slow": "POSITIVE_DECIMAL_SECONDS"}, "positionals": [], "stdin": null} Required options: []; positional arity: 0..0; stdin: forbidden
  • milestone-logging._rtx.interface.show-run — Render one durable run as text with all retained typed metadata.
    • Caller: milestone-logging
    • Version: 1
    • Security level: 0
    • Alternative: show-run Arguments JSON (replace labels with actual values). Omit optional positionals and options that are not needed. {"options": {}, "positionals": ["SAFE_RUN_ID"], "stdin": null} Required options: []; positional arity: 1..1; stdin: forbidden
  • milestone-logging._rtx.interface.show-session — Render one exact session and retained typed metadata; optional slow adds annotations only.
    • Caller: milestone-logging
    • Version: 1
    • Security level: 0
    • Alternative: show-session Arguments JSON (replace labels with actual values). Omit optional positionals and options that are not needed. {"options": {"--slow": "POSITIVE_DECIMAL_SECONDS"}, "positionals": ["SESSION"], "stdin": null} Required options: []; positional arity: 1..1; stdin: forbidden
<!-- END BLUEPRINT INTERFACES -->

Skill: milestone-logging

Use record-progress before the first substantive action and before each distinct work item; use record-completion at completion. Both require --role. Progress names the work starting now and optionally how the preceding piece ended; completion takes one closing result.

Tool calls and Dispatcher timing are recorded mechanically. Record semantic intent, decisions, blockers, and outcomes only; never log a milestone merely to announce or recap a tool call.

If one recording invocation fails, report that exact failure once and continue the task; do not invent a record or retry blindly.

To report the current session path, invoke session-path; for a durable run path, invoke run-path with its ID. Neither path interface appends.

Typed fields are always retained in the session record. Add --run ID only when work must outlive the session; it adds run/session/agent identity and an identical run-journal mirror without changing other field effects.

For diagnostics, select exactly one explicit interface: list-sessions, show-latest-session, show-session, show-run, or read-run-json. Omit --slow for no annotations; a positive finite threshold adds annotations only.

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.