agentleFS
MicrosoftKnown publishermicrosoft/amplifier-bundle-skills/modules/tool-skills/tests/fixtures/skills/amplifier-philosophy/SKILL.md

amplifier-philosophy

Skill12 starsChanged 7 months agoMITView on GitHub

Amplifier design philosophy using Linux kernel metaphor. Covers mechanism vs policy, module architecture, event-driven design, and kernel principles. Use when designing new modules or making architectural decisions.

We split this skill into the rules it gives an agent

6 rules. About 0 are common, 6 are distinctive, and 0 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈6

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 0

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    When creating a new module:

    line 77
  2. Distinctive:

    Ask: "Would every team use this the exact same way?"

    line 89
  3. Distinctive:

    No opinion baked in

    line 99
  4. Distinctive:

    Update spec, rebuild module: - Not line-by-line edits

    line 105
  5. Distinctive:

    Ruthless simplicity: If two designs solve it, pick the one with fewer moving parts and clearer failure modes.

    line 109
  6. Distinctive:

    Observability is mandatory: If it's not in the logs, it didn't happen.

    line 113

≈ “Common” is an estimate: at least 1 in 5 of the 308,232 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

Amplifier Philosophy: The Linux Kernel Metaphor

Core Principle: Mechanism Not Policy

If two teams might want different behavior, it belongs in a module, not the kernel.

The kernel provides mechanisms (mount, emit, dispatch). Modules provide policies (what to mount, when to emit, how to handle).

Architecture Patterns

Kernel (amplifier-core)

Keep it minimal and stable:

  • Session management (session_create, mount, unmount)
  • Event emission (emit)
  • Hook registration
  • Context access

Never add to kernel:

  • Provider selection
  • Tool routing
  • Plan generation
  • Default behaviors
  • File I/O

Modules (Everything Else)

All capabilities as modules:

  • Providers: LLM backends (Anthropic, OpenAI, Ollama)
  • Tools: Capabilities (filesystem, bash, web)
  • Orchestrators: Execution strategies
  • Context Managers: State management
  • Hooks: Lifecycle observers

Mount Point System

Think of modules as devices mounted at paths:

/mnt/providers/{name}  - LLM backends
/mnt/tools/{name}      - Agent capabilities
/mnt/hooks/{event}     - Lifecycle observers
/mnt/context           - Conversation state
/mnt/orchestrator      - Execution loop

Each mount point has a stable connector (Protocol interface).

Event-Driven Design

If it's important, emit an event:

  • session:start, session:end
  • prompt:submit, prompt:complete
  • provider:request, provider:response
  • tool:pre, tool:post
  • context:pre_compact, context:post_compact

Hooks observe, never interfere:

  • Logging hooks record events
  • Approval hooks check permissions
  • Cost tracking hooks monitor usage
  • Failures in hooks never stop execution

Module Development Checklist

When creating a new module:

  1. ✅ Implements Protocol only - No kernel internals
  2. ✅ Emits canonical events - Observable lifecycle
  3. ✅ Handles own failures - Never crash kernel
  4. ✅ Configuration via mount() - No hard-coded defaults
  5. ✅ Entry point registration - Discoverable

Decision Framework

Is This Kernel Work?

Ask: "Would every team use this the exact same way?"

  • Yes → Might be kernel (rare)
  • No → Definitely a module

Extract to Kernel?

Only after:

  • Two real implementations exist
  • Clear convergence on mechanism
  • No opinion baked in

Prefer Regeneration

  • Don't patch modules - Regenerate from spec
  • Keep connectors stable - Module internals can change
  • Update spec, rebuild module - Not line-by-line edits

Remember

Ruthless simplicity. If two designs solve it, pick the one with fewer moving parts and clearer failure modes.

Modules compete at edges. The kernel enables them, doesn't choose between them.

Observability is mandatory. If it's not in the logs, it didn't happen.

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.