Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 21 additions & 7 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -80,13 +80,27 @@ stable (non-prerelease) version. Downstream consumers can reference

## 7. Skill resolution

Skills declared in agent frontmatter `skills:` arrays are resolved at
runtime from multiple sources in priority order: repo-level
(`.agents/skills/`), org-level (`fullsend-ai/.fullsend/customized/skills/`),
and upstream platform (`fullsend-ai/fullsend/skills/`). A skill reference
in frontmatter is valid even if no matching directory exists in this repo.
Do not treat missing local skill directories as bugs without first
verifying the skill does not exist at org or platform level.
Skills listed in harness `skills:` arrays are resolved at runtime from
Comment thread
ralphbean marked this conversation as resolved.
multiple sources in priority order: repo-level (`.agents/skills/`) and
upstream platform (`fullsend-ai/fullsend/skills/`). A skill reference is
valid even if no matching directory exists in this repo. Do not treat
missing local skill directories as bugs without first verifying the skill
does not exist at platform level.

Comment thread
ralphbean marked this conversation as resolved.
To override an upstream skill, create a custom harness with `base:`
composition pointing to the upstream harness and include the replacement
skill in the `skills:` array. For example, to override `issue-labels`
for the review agent:

```yaml
# .fullsend/review.yaml
base: https://raw.githubusercontent.com/fullsend-ai/agents/<SHA>/harness/review.yaml#sha256=<sha256sum>
skills:
- .agents/skills/issue-labels
```

See [Custom sandbox image — How to configure](docs/code.md#how-to-configure)
for how to obtain the `<SHA>` and `<sha256sum>` values.

### Valid SKILL.md frontmatter fields

Expand Down
6 changes: 3 additions & 3 deletions FEATURES.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ Before writing code, answer:
|---------|-------------|---------|
| **Environment variable** | Runtime behavior toggle, simple values, specific to one agent — per ADR 0080 (fullsend-ai/fullsend), this is single-agent behavior tuning rather than a `config.yaml` field. Repo owners set it in their base-derived harness files, overriding via `base:` composition (ADR 0045). Per ADR 0049, it must use an `{AGENT}_` prefix. Per ADR 0081, the CI workflow `env:` block is reserved for infrastructure plumbing (credentials, project IDs, regions) — don't use workflow inputs to set a behavior knob's value, except for values only computable at CI runtime. We recommend picking one surface per option — either an env var or a `config.yaml` option, not both — to avoid two sources of truth. | `TRIAGE_AUTO_CODE` |
| **`config.yaml` option** | The option should be respected by *every* agent, not just one — no agent-specific prefix, and not configurable via env var. | the cross-repo allow list |
| **Skill override** | The behavior is best expressed as natural-language instructions to the agent. Repo owners drop a replacement skill in `.agents/skills/`. Org owners override via `base:` composition (ADR 0045) — inherit the upstream harness and add the skill under `skills:` with the same basename as the one being replaced, so the merge dedupes by basename (fullsend-ai/fullsend #5409) and it wins. The older `customized/skills/` overlay in the org `.fullsend` config repo is deprecated by ADR 0064. | `issue-labels` skill |
| **Skill override** | The behavior is best expressed as natural-language instructions to the agent. Repo owners drop a replacement skill in `.agents/skills/`. Org owners override via `base:` composition (ADR 0045) — inherit the upstream harness and add the skill under `skills:` with the same basename as the one being replaced, so the merge dedupes by basename (fullsend-ai/fullsend #5409) and it wins. | `issue-labels` skill |

Environment variables are the simplest for end users to configure.
Skills are more flexible — they let repo or org owners override
Expand Down Expand Up @@ -133,8 +133,8 @@ agent prompt:
- [ ] If the env var is agent-specific, consider whether or not it should be
baked into that skill. Keep agent-specific logic in the agent prompt;
keep reusable judgment in the skill.
- [ ] If you add a new skill, add it to `harness/<agent>.yaml` under
`skills:` and to the agent frontmatter `skills:` array.
- [ ] If you add a new skill, add it to the harness `skills:` array
in `harness/<agent>.yaml`.

## 9. Update documentation

Expand Down
18 changes: 15 additions & 3 deletions docs/review.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,9 +69,21 @@ labels and apply them to PRs during review. This is the same skill used by the
To overload the built-in skill, create your own `issue-labels` skill in
`.agents/skills/issue-labels/SKILL.md` and symlink `.claude/skills` to
`.agents/skills` so it's discoverable by both fullsend and local agent tooling.
You can also overload it at the org level in your `.fullsend` config repo at
`customized/skills/issue-labels/SKILL.md`. At runtime, your version replaces
the upstream default — no other configuration needed.
To override explicitly, create a custom harness with `base:`
composition and include the replacement skill in the `skills:` array.
At runtime, your version replaces the upstream default.

For example, to override `issue-labels` for the review agent:

```yaml
# .fullsend/review.yaml
base: https://raw.githubusercontent.com/fullsend-ai/agents/<SHA>/harness/review.yaml#sha256=<sha256sum>
skills:
- .agents/skills/issue-labels
```

See [Custom sandbox image — How to configure](code.md#how-to-configure)
for how to obtain the `<SHA>` and `<sha256sum>` values.

See [Customizing with AGENTS.md](https://fullsend.sh/docs/guides/user/customizing-with-agents-md) and
[Customizing with Skills](https://fullsend.sh/docs/guides/user/customizing-with-skills).
Expand Down
22 changes: 15 additions & 7 deletions docs/triage.md
Original file line number Diff line number Diff line change
Expand Up @@ -70,13 +70,21 @@ every agent).
To overload the built-in skill, create your own `issue-labels` skill in
`.agents/skills/issue-labels/SKILL.md` and symlink `.claude/skills` to
`.agents/skills` so it's discoverable by both fullsend and local agent tooling.
At the org level, override via `base:` composition (ADR 0045) — inherit
the upstream harness and add your skill under `skills:` with the same
basename (`issue-labels`) as the one you're replacing, so the merge
dedupes by basename (fullsend-ai/fullsend #5409) and yours wins. The
older `customized/skills/issue-labels/SKILL.md` overlay in the org
`.fullsend` config repo (and the per-repo `.fullsend/customized/skills/...`
equivalent) is deprecated by ADR 0064.
To override explicitly, create a custom harness with `base:`
composition and include the replacement skill in the `skills:` array.
At runtime, your version replaces the upstream default.

For example, to override `issue-labels` via a custom triage harness:

```yaml
# .fullsend/triage.yaml
base: https://raw.githubusercontent.com/fullsend-ai/agents/<SHA>/harness/triage.yaml#sha256=<sha256sum>
skills:
- .agents/skills/issue-labels
```

See [Custom sandbox image — How to configure](code.md#how-to-configure)
for how to obtain the `<SHA>` and `<sha256sum>` values.

Here's an example that encodes domain-specific labeling rules:

Expand Down
Loading