Update how Copilot prompts are created

This commit is contained in:
Den Delimarsky 🌺
2025-09-11 22:46:21 -07:00
parent 15917c2094
commit b31ca19962
2 changed files with 30 additions and 18 deletions

View File

@@ -96,27 +96,16 @@ jobs:
name=$(basename "$template" .md) name=$(basename "$template" .md)
description=$(awk '/^description:/ {gsub(/^description: *"?/, ""); gsub(/"$/, ""); print; exit}' "$template" | tr -d '\r') description=$(awk '/^description:/ {gsub(/^description: *"?/, ""); gsub(/"$/, ""); print; exit}' "$template" | tr -d '\r')
content=$(awk '/^---$/{if(++count==2) start=1; next} start' "$template" | sed "s/{ARGS}/$arg_format/g") content=$(awk '/^---$/{if(++count==2) start=1; next} start' "$template" | sed "s/{ARGS}/$arg_format/g")
case $ext in case $ext in
"toml") "toml")
{ { echo "description = \"$description\""; echo ""; echo "prompt = \"\"\""; echo "$content"; echo "\"\"\""; } > "$output_dir/$name.$ext" ;;
echo "description = \"$description\""
echo ""
echo "prompt = \"\"\""
echo "$content"
echo "\"\"\""
} > "$output_dir/$name.$ext"
;;
"md") "md")
echo "$content" > "$output_dir/$name.$ext" echo "$content" > "$output_dir/$name.$ext" ;;
;;
"prompt.md") "prompt.md")
{ # Preserve original front matter + body with argument substitution for Copilot
echo "# $(echo "$description" | sed 's/\. .*//')" # Simply copy the entire template, replacing {ARGS}
echo "" # This keeps YAML so tooling can parse metadata
echo "$content" sed "s/{ARGS}/$arg_format/g" "$template" > "$output_dir/$name.$ext" ;;
} > "$output_dir/$name.$ext"
;;
esac esac
fi fi
done done

View File

@@ -61,6 +61,28 @@ git push origin your-feature-branch
uvx --from git+https://github.com/github/spec-kit.git@your-feature-branch specify init demo-branch-test uvx --from git+https://github.com/github/spec-kit.git@your-feature-branch specify init demo-branch-test
``` ```
### 4a. Absolute Path uvx (Run From Anywhere)
If you're in another directory, use an absolute path instead of `.`:
```bash
uvx --from /mnt/c/GitHub/spec-kit specify --help
uvx --from /mnt/c/GitHub/spec-kit specify init demo-anywhere --ai copilot --ignore-agent-tools
```
Set an environment variable for convenience:
```bash
export SPEC_KIT_SRC=/mnt/c/GitHub/spec-kit
uvx --from "$SPEC_KIT_SRC" specify init demo-env --ai copilot --ignore-agent-tools
```
(Optional) Define a shell function:
```bash
specify-dev() { uvx --from /mnt/c/GitHub/spec-kit specify "$@"; }
# Then
specify-dev --help
```
## 5. Testing Script Permission Logic ## 5. Testing Script Permission Logic
After running an `init`, check that shell scripts are executable on POSIX systems: After running an `init`, check that shell scripts are executable on POSIX systems:
@@ -114,7 +136,8 @@ specify init demo --skip-tls --ai gemini --ignore-agent-tools
|--------|---------| |--------|---------|
| Run CLI directly | `python -m src.specify_cli --help` | | Run CLI directly | `python -m src.specify_cli --help` |
| Editable install | `uv pip install -e .` then `specify ...` | | Editable install | `uv pip install -e .` then `specify ...` |
| Local uvx run | `uvx --from . specify ...` | | Local uvx run (repo root) | `uvx --from . specify ...` |
| Local uvx run (abs path) | `uvx --from /mnt/c/GitHub/spec-kit specify ...` |
| Git branch uvx | `uvx --from git+URL@branch specify ...` | | Git branch uvx | `uvx --from git+URL@branch specify ...` |
| Build wheel | `uv build` | | Build wheel | `uv build` |