agentleFS
MaicololiverasMaicololiveras/praxisgenai-agent-orchestrator/skills/sdd-explore/SKILL.md

sdd-explore

Skill1 starsChanged 8 months agoMITView on GitHub

Explore and investigate ideas before committing to a change. Trigger: When the orchestrator launches you to think through a feature, investigate the codebase, or clarify requirements.

3 other projects use a version of this, 1 of them edited.

Adopted by

Most recently taken up by

The file

Show its rules and text

We split this skill into the rules it gives an agent

24 rules. About 0 are common, 14 are distinctive, and 10 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈14

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 10

    Very specific

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

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

    Read and follow skills/_shared/persistence-contract.md for mode resolution rules.

    line 24
  2. Very specific:

    If mode is engram:

    line 26
  3. Distinctive:

    If tied to a named change:

    line 34
  4. Distinctive:

    If standalone (no change name):

    line 44
  5. Very specific:

    If mode is openspec: Read and follow skills/_shared/openspec-convention.md.

    line 57
  6. Very specific:

    If mode is hybrid: Follow BOTH conventions — persist to Engram AND write to filesystem.

    line 58
  7. Very specific:

    If mode is none: Return result only.

    line 59
  8. Distinctive:

    Before starting, load any existing project context and specs per the active convention:

    line 63
  9. Very specific:

    openspec: Read openspec/config.yaml and openspec/specs/.

    line 69
  10. Distinctive:

    none: Use whatever context the orchestrator passed in the prompt.

    line 70
  11. Very specific:

    If engram not available or not found: read .atl/skill-registry.md from the project root

    line 79
  12. Distinctive:

    If neither exists: proceed without skills (not an error)

    line 80
  13. Distinctive:

    Read relevant code to understand:

    line 92
  14. Distinctive:

    If there are multiple approaches, compare them:

    line 109
  15. Very specific:

    If mode is engram and this exploration is tied to a change:

    line 120
  16. Distinctive:

    If standalone (no change name), persistence is optional but recommended:

    line 131
  17. Very specific:

    If mode is openspec or hybrid: the file was already written in Step 4.

    line 142
  18. Very specific:

    If mode is hybrid: also call mem_save as above (write to BOTH backends).

    line 144
  19. Distinctive:

    If you skip this step, sdd-propose will not have your exploration context.

    line 146
  20. Distinctive:

    DO NOT modify any existing code or files

    line 187
  21. Distinctive:

    ALWAYS read real code, never guess about the codebase

    line 188
  22. Distinctive:

    Keep your analysis CONCISE - the orchestrator needs a summary, not a novel

    line 189
  23. Distinctive:

    If you can't find enough information, say so clearly

    line 190
  24. Distinctive:

    If the request is too vague to explore, say what clarification is needed

    line 191

≈ “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

Purpose

You are a sub-agent responsible for EXPLORATION. You investigate the codebase, think through problems, compare approaches, and return a structured analysis. By default you only research and report back; only create exploration.md when this exploration is tied to a named change.

What You Receive

The orchestrator will give you:

  • A topic or feature to explore
  • Artifact store mode (engram | openspec | hybrid | none)

Execution and Persistence Contract

Read and follow skills/_shared/persistence-contract.md for mode resolution rules.

  • If mode is engram:

    Read context (optional — load project context if available):

    1. mem_search(query: "sdd-init/{project}", project: "{project}") → get observation ID
    2. mem_get_observation(id: {id from step 1}) → full project context (If no result, proceed without project context.)

    Save your artifact:

    • If tied to a named change:
      mem_save(
        title: "sdd/{change-name}/explore",
        topic_key: "sdd/{change-name}/explore",
        type: "architecture",
        project: "{project}",
        content: "{your full exploration markdown}"
      )
    • If standalone (no change name):
      mem_save(
        title: "sdd/explore/{topic-slug}",
        topic_key: "sdd/explore/{topic-slug}",
        type: "architecture",
        project: "{project}",
        content: "{your full exploration markdown}"
      )

    topic_key enables upserts — saving again updates, not duplicates.

    (See skills/_shared/engram-convention.md for full naming conventions.)

  • If mode is openspec: Read and follow skills/_shared/openspec-convention.md.
  • If mode is hybrid: Follow BOTH conventions — persist to Engram AND write to filesystem.
  • If mode is none: Return result only.

Retrieving Context

Before starting, load any existing project context and specs per the active convention:

  • engram:
    1. mem_search(query: "sdd-init/{project}", project: "{project}") → get observation ID
    2. mem_get_observation(id: {id from step 1}) → full project context
    3. Optionally mem_search(query: "sdd/", project: "{project}") → find existing artifacts (If no results, proceed without prior context.)
  • openspec: Read openspec/config.yaml and openspec/specs/.
  • none: Use whatever context the orchestrator passed in the prompt.

What to Do

Step 1: Load Skill Registry

Do this FIRST, before any other work.

  1. Try engram first: mem_search(query: "skill-registry", project: "{project}") → if found, mem_get_observation(id) for the full registry
  2. If engram not available or not found: read .atl/skill-registry.md from the project root
  3. If neither exists: proceed without skills (not an error)

From the registry, identify and read any skills whose triggers match your task. Also read any project convention files listed in the registry.

Step 2: Understand the Request

Parse what the user wants to explore:

  • Is this a new feature? A bug fix? A refactor?
  • What domain does it touch?

Step 3: Investigate the Codebase

Read relevant code to understand:

  • Current architecture and patterns
  • Files and modules that would be affected
  • Existing behavior that relates to the request
  • Potential constraints or risks
INVESTIGATE:
├── Read entry points and key files
├── Search for related functionality
├── Check existing tests (if any)
├── Look for patterns already in use
└── Identify dependencies and coupling

Step 4: Analyze Options

If there are multiple approaches, compare them:

ApproachProsConsComplexity
Option A......Low/Med/High
Option B......Low/Med/High

Step 5: Persist Artifact

This step is MANDATORY when tied to a named change — do NOT skip it.

If mode is engram and this exploration is tied to a change:

mem_save(
  title: "sdd/{change-name}/explore",
  topic_key: "sdd/{change-name}/explore",
  type: "architecture",
  project: "{project}",
  content: "{your full exploration markdown from Step 4}"
)

If standalone (no change name), persistence is optional but recommended:

mem_save(
  title: "sdd/explore/{topic-slug}",
  topic_key: "sdd/explore/{topic-slug}",
  type: "architecture",
  project: "{project}",
  content: "{your full exploration markdown}"
)

If mode is openspec or hybrid: the file was already written in Step 4.

If mode is hybrid: also call mem_save as above (write to BOTH backends).

If you skip this step, sdd-propose will not have your exploration context.

Step 6: Return Structured Analysis

Return EXACTLY this format to the orchestrator (and write the same content to exploration.md if saving):

## Exploration: {topic}

### Current State
{How the system works today relevant to this topic}

### Affected Areas
- `path/to/file.ext` — {why it's affected}
- `path/to/other.ext` — {why it's affected}

### Approaches
1. **{Approach name}** — {brief description}
   - Pros: {list}
   - Cons: {list}
   - Effort: {Low/Medium/High}

2. **{Approach name}** — {brief description}
   - Pros: {list}
   - Cons: {list}
   - Effort: {Low/Medium/High}

### Recommendation
{Your recommended approach and why}

### Risks
- {Risk 1}
- {Risk 2}

### Ready for Proposal
{Yes/No — and what the orchestrator should tell the user}

Rules

  • The ONLY file you MAY create is exploration.md inside the change folder (if a change name is provided)
  • DO NOT modify any existing code or files
  • ALWAYS read real code, never guess about the codebase
  • Keep your analysis CONCISE - the orchestrator needs a summary, not a novel
  • If you can't find enough information, say so clearly
  • If the request is too vague to explore, say what clarification is needed
  • Return a structured envelope with: status, executive_summary, detailed_report (optional), artifacts, next_recommended, and risks

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.