Summary
Files under .github/agents/pharaoh.*.agent.md are copied into user projects by pharaoh-setup. Three of them surface as review-time issues on downstream PRs and were flagged by GitHub Copilot Code Review on useblocks/sphinx-needs-demo#51.
(1) Truncated description: fields
pharaoh.write-plan.agent.md line 4:
description: Use when you have an intent (e.
pharaoh.toctree-emit.agent.md line 4:
description: Use when a composition skill has just emitted a set of RST files into a directory and needs to add (or regenerate) an `index.
Both end mid-sentence and break Markdown rendering (unmatched parenthesis in the first, unclosed backtick in the second). The pattern looks like the generator splits the source skill description on the first . character, which incorrectly catches e.g. and `index.rst`. The body of each file (line 7) shows the same truncation, suggesting both fields are derived from the same source string.
Likely root cause: the agent-frontmatter generator uses something like description.split('.', 1)[0] instead of a sentence-aware splitter or just-take-the-full-first-line.
(2) pharaoh.setup.agent.md contradicts skills/pharaoh-setup/SKILL.md
pharaoh.setup.agent.md line 71:
### Step 3: Configure .gitignore
Add `.pharaoh/` to `.gitignore` if not already present.
But skills/pharaoh-setup/SKILL.md Step 4b explicitly says:
Ignoring the whole tree is wrong, it hides .pharaoh/project/ tailoring which IS shared across the team. The skill ignores only the ephemeral subpaths.
The agent file therefore instructs Copilot to write a .gitignore rule that the skill itself rejects. Downstream PRs reviewed by Copilot flag the inconsistency.
Suggested fixes
- Replace the generator's first-period split with a sentence-aware splitter, or take the full first line of the description verbatim.
- Regenerate
pharaoh.setup.agent.md from the SKILL.md spec, or hand-rewrite Step 3 to mirror Step 4b of the skill: narrow ignores only (.pharaoh/runs/, .pharaoh/plans/, .pharaoh/session.json, .pharaoh/cache/), with .pharaoh/project/ left tracked.
Repro
See review comments on useblocks/sphinx-needs-demo#51.
Summary
Files under
.github/agents/pharaoh.*.agent.mdare copied into user projects bypharaoh-setup. Three of them surface as review-time issues on downstream PRs and were flagged by GitHub Copilot Code Review onuseblocks/sphinx-needs-demo#51.(1) Truncated
description:fieldspharaoh.write-plan.agent.mdline 4:pharaoh.toctree-emit.agent.mdline 4:Both end mid-sentence and break Markdown rendering (unmatched parenthesis in the first, unclosed backtick in the second). The pattern looks like the generator splits the source skill description on the first
.character, which incorrectly catchese.g.and`index.rst`. The body of each file (line 7) shows the same truncation, suggesting both fields are derived from the same source string.Likely root cause: the agent-frontmatter generator uses something like
description.split('.', 1)[0]instead of a sentence-aware splitter or just-take-the-full-first-line.(2)
pharaoh.setup.agent.mdcontradictsskills/pharaoh-setup/SKILL.mdpharaoh.setup.agent.mdline 71:But
skills/pharaoh-setup/SKILL.mdStep 4b explicitly says:The agent file therefore instructs Copilot to write a
.gitignorerule that the skill itself rejects. Downstream PRs reviewed by Copilot flag the inconsistency.Suggested fixes
pharaoh.setup.agent.mdfrom theSKILL.mdspec, or hand-rewrite Step 3 to mirror Step 4b of the skill: narrow ignores only (.pharaoh/runs/,.pharaoh/plans/,.pharaoh/session.json,.pharaoh/cache/), with.pharaoh/project/left tracked.Repro
See review comments on
useblocks/sphinx-needs-demo#51.