Project Instructions

Copy Markdown View Source

When :load_project_instructions is enabled (the default), Condukt inspects the project root configured by :cwd at startup and appends local guidance to the effective system prompt. This is how an agent picks up project specific conventions without you hard coding them.

What gets loaded

  • AGENTS.md at the project root
  • CLAUDE.md at the project root
  • .agents/skills/*/SKILL.md for each local skill

Discovered skills are listed in the prompt with their file paths so the agent can read the full SKILL.md instructions when it needs them. The files themselves are not pre loaded into context: the agent decides when to use a skill and reads it on demand.

Enabling and disabling

Project instructions are loaded by default when cwd is set:

{:ok, agent} =
  MyApp.CodingAgent.start_link(
    cwd: "/path/to/project",
    system_prompt: "You are a helpful coding assistant."
  )

Disable for fully static prompts:

{:ok, agent} =
  MyApp.CodingAgent.start_link(
    load_project_instructions: false
  )

Authoring AGENTS.md and CLAUDE.md

Both files use plain Markdown. Use them for things like:

  • Conventions ("Prefer MuonTrap over System.cmd/3.")
  • Workflows ("After every change, create a git commit and push it.")
  • Domain glossary
  • Pointers to important modules

Keep them short. They are prepended to every prompt, so they cost tokens on every turn.

Authoring skills

A skill is a directory with a SKILL.md file. The convention is one skill per folder under .agents/skills/:

.agents/skills/
  release/
    SKILL.md
  changelog/
    SKILL.md
    template.md

Each SKILL.md should describe:

  • What the skill does
  • When to use it
  • The exact steps the agent should follow
  • Any helper files it can read from the same folder

Skills are powerful because they keep specialised playbooks out of the main system prompt. Only the path and a one line description live in context; the agent loads the full skill when it needs it.