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
2 changes: 1 addition & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

## Project Structure & Module Organization

This is a Bash CLI project. The active runtime is the root `devloop` executable. `install.sh` links it into a local bin directory, `tests/devloop_test.sh` covers the shell runtime, `skills/spec/SKILL.md` is the spec-generation prompt asset, and `templates/spec.md` is the starter spec. Generated runtime output belongs under `.codex/` in target repositories and should not be committed here.
This is a Bash CLI project. The active runtime is the root `devloop` executable. `install.sh` links it into a local bin directory, `tests/devloop_test.sh` covers the shell runtime, `skills/devloop-spec/SKILL.md` is the spec-generation prompt asset, `skills/devloop-review/SKILL.md` is the review prompt asset, and `templates/spec.md` is the starter spec. Generated runtime output belongs under `.codex/` in target repositories and should not be committed here.

## Build, Test, and Development Commands

Expand Down
4 changes: 2 additions & 2 deletions devloop
Original file line number Diff line number Diff line change
Expand Up @@ -1081,7 +1081,7 @@ review_prompt() {
local criteria priors review_skill strict_rule
criteria="$(criteria_block "$criteria_file")"
priors="$(list_reviews "$slug" "$pass" "$max")"
review_skill="$(cat "$ROOT_DIR/skills/review/SKILL.md")"
review_skill="$(cat "$ROOT_DIR/skills/devloop-review/SKILL.md")"
strict_rule=""
if [ "$strict" = true ]; then
strict_rule="
Expand Down Expand Up @@ -1635,7 +1635,7 @@ spec_command() {
esac
done

local skill="$ROOT_DIR/skills/spec/SKILL.md"
local skill="$ROOT_DIR/skills/devloop-spec/SKILL.md"
case "$action" in
print-skill) cat "$skill"; return ;;
skill-path) printf '%s\n' "$skill"; return ;;
Expand Down
2 changes: 1 addition & 1 deletion skills/review/SKILL.md → skills/devloop-review/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: devloop-review
description: Review devloop implementation passes with separate spec and engineering gates.
description: Use this skill when reviewing a devloop implementation pass against a spec, track, diff, prior reviews, acceptance criteria, or engineering quality gates. Decide ACCEPT, REJECT, or UNCLEAR with concrete evidence and fix instructions.
---

# Devloop Review
Expand Down
2 changes: 1 addition & 1 deletion skills/spec/SKILL.md → skills/devloop-spec/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: devloop-spec
description: Interview from a cold start or distill existing material into one devloop-compatible implementation spec. Use when the user wants a concrete spec for devloop, whether they provide notes, a file, a URL, research, conversation context, or only a rough idea.
description: Use this skill when the user wants a devloop-ready implementation spec from a rough idea, notes, file, URL, issue, research, or conversation context. Interview from a cold start when source material is too thin; otherwise distill the provided material into one concrete spec.
---

# Devloop Spec
Expand Down
13 changes: 12 additions & 1 deletion tests/devloop_test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -39,10 +39,21 @@ contains "$help" "--create-pr" "help"
ok "help output"

skill_path="$("$ROOT/devloop" spec --skill-path)"
[[ "$skill_path" == "$ROOT/skills/spec/SKILL.md" ]] || fail "unexpected skill path: $skill_path"
[[ "$skill_path" == "$ROOT/skills/devloop-spec/SKILL.md" ]] || fail "unexpected skill path: $skill_path"
contains "$("$ROOT/devloop" spec --print-skill)" "name: devloop-spec" "spec skill"
ok "spec skill path"

for skill in "$ROOT"/skills/*/SKILL.md; do
name="$(sed -n 's/^name: *//p' "$skill" | head -n 1)"
description="$(sed -n 's/^description: *//p' "$skill" | head -n 1)"
dirname="$(basename "$(dirname "$skill")")"
[[ "$name" == "$dirname" ]] || fail "skill name mismatch: $skill declares $name"
[[ "$name" =~ ^[a-z0-9]+(-[a-z0-9]+)*$ ]] || fail "invalid skill name: $name"
[[ -n "$description" ]] || fail "missing skill description: $skill"
[[ "${#description}" -le 1024 ]] || fail "skill description too long: $skill"
done
ok "skill metadata"

work=$(mktemp -d "${TMPDIR:-/tmp}/devloop-test.XXXXXX")
trap 'rm -rf "$work"' EXIT

Expand Down