Skip to content

skills: retire scan-new-specs and remove write-feature-docs ambient mode - #77

Merged
rachaelrenk merged 6 commits into
mainfrom
rrenk/retire-scan-new-specs
Aug 26, 2026
Merged

skills: retire scan-new-specs and remove write-feature-docs ambient mode#77
rachaelrenk merged 6 commits into
mainfrom
rrenk/retire-scan-new-specs

Conversation

@rachaelrenk

@rachaelrenk rachaelrenk commented Aug 20, 2026

Copy link
Copy Markdown
Contributor

Summary

Retires scan-new-specs and removes ambient mode from write-feature-docs.

scan-new-specs fired on spec merge, which happens before a feature ships. That single design choice produced both failure modes we saw in warpdotdev/docs:

  • Docs drafted for unreleased and sometimes abandoned work. A merged spec is not a shipped feature. The agent had no evidence of what users actually received, so pages were written for behavior that had not landed, had landed differently, or never landed.
  • Every spec treated as a docs task. Nothing asked whether a change warranted documentation, so pure UI changes and behind-the-scenes work became draft PRs and the docs repo accumulated content debt faster than anyone could review it.

Its schedule (0ITuF9vNJ1RiO00Szlm1fW) has been paused since 2026-07-31 and stays paused.

Changes

scan-new-specs → deprecation notice

Replaces the skill body with a notice explaining why it was retired and where to go instead. The description field leads with DEPRECATED so an agent scanning descriptions to pick a skill does not select it, and the body names the three cases someone might arrive with (looking for docs gaps, wanting docs for their feature, setting up a scheduled agent) and redirects each.

write-feature-docs — ambient mode removed

Ambient mode existed only so scan-new-specs could drive the skill headlessly, and it worked by skipping the outline confirmation — the one checkpoint where a human could redirect a draft before the prose was written. It also had to treat all TECH.md-derived content as unpublishable, because no engineer was present to say what was confidential.

The section is replaced with an explicit statement that there is no unattended path, plus a note not to re-add one. Without that, the next author rebuilds it.

The skill stays useful for its original purpose: an engineer invoking it directly, present to confirm the outline and the TECH.md boundary. Its description now says so, and points automated callers at missing_docs.

Step 5 additionally requires two things from the docs repo before opening a PR:

  • Gate 0 of the worthiness criteria — is the feature shipped and GA, on a public surface? Worth verifying even though the engineer asked, because someone close to the work can easily be a release ahead of their users, and drafting for something unshipped was the most common failure in the retired pipeline.
  • A content design plan in the PR body.

The remaining worthiness gates are judgment calls that govern the automated pipeline, not this skill. An engineer asking for docs on their own shipped feature has context the gate cannot see, so the skill does not decline on those grounds.

Replacement

missing_docs in warpdotdev/docs, running in drift-watch mode. It differs in the two ways that mattered:

  • Release-triggered — gated on a new stable release, so the pipeline sees what actually shipped rather than what was planned.
  • Worthiness-gated — every candidate evaluated against .agents/references/docs-worthiness-criteria.md before anything is drafted, with verdicts recorded so rejections are not re-litigated.

Merge order

Merge warpdotdev/docs#586 first. This PR references .agents/references/docs-worthiness-criteria.md and .agents/references/content-design-plan.md by path, and both are created there.

There is no urgency on this one: scan-new-specs is already paused and cannot fire, so this PR documents a decision already in effect rather than being the thing that stops the flooding.

Validation

  • Frontmatter validated on both skills.
  • No remaining references to scan-new-specs anywhere else in the repo.
  • No remaining references to ambient mode in write-feature-docs, including the TECH.md handling note and the engineer-handle lookup path that both previously branched on it.

Co-Authored-By: Warp agent@warp.dev

scan-new-specs fired on spec merge, which happens before a feature ships. That
one design choice produced both failure modes we saw: docs drafted for
unreleased and sometimes abandoned work, and every spec treated as a docs task
with nothing asking whether the change warranted documentation.

Replace the skill body with a deprecation notice that explains why it was
retired and redirects to the replacement. The description field leads with
DEPRECATED so an agent scanning descriptions does not select it. Its schedule
(0ITuF9vNJ1RiO00Szlm1fW) stays paused.

Remove ambient mode from write-feature-docs. It existed only so scan-new-specs
could drive the skill headlessly, and it worked by skipping the outline
confirmation -- the one checkpoint where a human could redirect a draft before
the prose was written. Replace the section with an explicit statement that there
is no unattended path and a note not to re-add one, so the next author does not
rebuild it.

write-feature-docs stays useful for its original purpose: an engineer invoking
it directly, present to confirm the outline and the TECH.md boundary. Its
Step 5 now also requires the docs repo's worthiness gateStep 5 now also requires the docs repo's worthiness gateStep 5 now also requia page is not by itself
evidence the page should exist -- the most common failure is drafting for
something that has not shipped.

Co-AuthoreCo-AuthoreCo-AuthoreCo-AuthoreCo-AuthoreCo-AuthoreCo-AuthoreCo-AuthoreCotxt
@warp-for-oss

warp-for-oss Bot commented Aug 20, 2026

Copy link
Copy Markdown
Contributor

@rachaelrenk

I'm starting a first review of this pull request.

You can view the conversation on Warp.

I completed the review and no human review was requested for this pull request.

Comment /oz-review on this pull request to retrigger a review (up to 3 times on the same pull request).

Powered by Oz

@warp-for-oss warp-for-oss Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overview

This PR retires scan-new-specs and removes the unattended ambient path from write-feature-docs, redirecting automated docs gap detection to missing_docs and adding docs-worthiness/content-design requirements before PR creation.

Concerns

  • The updated write-feature-docs skill description drops the existing starting the eng-docs workflow trigger phrase even though the skill remains the direct, engineer-led eng-docs workflow. That can make agents fail to select this skill for an existing supported request shape.
  • No security findings were identified in the changed skill text.
  • spec_context.md contains no approved or repository spec context, so no material spec drift was found.

Verdict

Found: 0 critical, 1 important, 0 suggestions

Request changes

Comment /oz-review on this pull request to retrigger a review (up to 3 times on the same pull request).

Powered by Oz

Comment thread .agents/skills/write-feature-docs/SKILL.md Outdated
rachaelrenk and others added 3 commits August 20, 2026 12:37
Step 5 required the full worthiness gate before opening a PR, including the
judgment gates about whether a change warrants docs at all. That is the wrong
bar for this skill: it is invoked by an engineer who wrote the feature and
usually knows more about who needs the docs than the gate can infer.

Keep the factual half. "Has this shipped and is the surface public" is worth
verifying regardless of who asked, because an engineer close to the work can
easily be a release ahead of their users, and drafting for something unshipped
was the most common failure in the retired pipeline.

Drop the judgment half. Those gates govern the automated pipeline in
warpdotdev/docs, not an engineer asking for docs on their own shipped feature.

Co-Authored-By: Warp <agent@warp.dev>
…in Step 3

Step 5 asked for a content design plan at PR time, which is too late to be
useful. By then the prose exists, so the engineer can only react to a finished
page -- the plan becomes a form to fill in rather than a decision to make.

The skill already has the right checkpoint. Step 3 presents an outline and waits
for confirmation before drafting. Present the plan there too, in the same
message, so the engineer confirms audience and shape in one pass.

They answer different questions and both are worth confirming early: the outline
says what sections the page will have, the plan says who it is for and which
scenarios it deliberately leaves out. Getting either wrong after the draft
exists means rewriting it.

Step 5 now just carries the confirmed plan into the PR body, and points at
.agents/templates/content-design-plan.md rather than restating the fields.

Co-Authored-By: Warp <agent@warp.dev>
…e it

Presenting the content design plan and the outline in one message was the same
mistake as putting the plan in the PR body, one level down: showing a derived
artifact before the decision it derives from has been agreed.

The outline is downstream of the plan. The plan picks the content type, and the
content type determines what sections the outline has. Presenting both at once
shows the engineer an outline built on an audience they have not approved, and
invites them to anchor on the concrete sections in front of them instead of
questioning the audience above them. If they then change the reader, the outline
was wasted work.

Split into two sequential checkpoints:

  3. Present the content design plan, wait for confirmation -- who the page is for
  4. Present the outline, wait for confirmation -- what the page will contain

Drafting, screenshots, and the PR renumber to 5, 5.5, and 6. Cross-references
updated; the Step 1-4 labels inside the screenshot capture protocol are local
sub-steps and deliberately left alone.

Step 4 also now says to revise the plan if outline feedback contradicts it. The
plan travels into the PR body, so a stale one misleads the reviewer.

The cost is one extra round trip. The plan is seven short fields, and the
alternative is redrafting an outline built on the wrong reader.

Also fixed the embedded MDX sketch in the drafting step, which still showed a
body "# [Feature name]" H1 and no frontmatter title -- the exact pattern just
removed from the docs repo templates. It now points at the canonical templates
in .agents/templates/ as the source of truth rather than carrying a duplicate
that drifts, and calls out the two rules easiest to get wrong from memory.

Co-Authored-By: Warp <agent@warp.dev>
rachaelrenk and others added 2 commits August 21, 2026 17:56
Dropping "starting the eng-docs workflow" from the description removed a
routing surface. The interactive engineer-led workflow is still supported, so
an engineer who asks for it by its old name should still land here. Agents match
on the description, and that phrase was the only thing catching the legacy name.

Caught by warp-for-oss[bot] on PR #77.

Restored, with "eng-owned docs" added alongside it since both names are in use
for the same workflow.

Did not apply the bot's suggestion verbatim. It was generated against an earlier
commit and still said "confirms an outline before drafting", so accepting it
would have reverted the two-checkpoint change to confirm the content design plan
before the outline. Took the intent and left the rest of the description alone.

The phrase is now ambiguous in one direction -- it could mean the retired
auto-draft-on-merged-spec trigger rather than interactive drafting. That is
already handled: the description says the skill requires an interactive session
and points automated, release-triggered work at missing_docs.

Co-Authored-By: Warp <agent@warp.dev>
The phrase was never in circulation outside the two people who coined it, so
it adds no routing value and reads as an artifact of a name we are moving away
from. Keeping only 'eng-docs workflow', which was the phrase actually shipped
in the description and the one warp-for-oss[bot] asked to preserve.

Co-Authored-By: Warp <agent@warp.dev>
@rachaelrenk rachaelrenk self-assigned this Aug 24, 2026
@rachaelrenk
rachaelrenk merged commit 59d10d6 into main Aug 26, 2026
3 checks passed
common-skills-sync Bot added a commit to warpdotdev/warp that referenced this pull request Aug 26, 2026
## Description

Updates `skills-lock.json` to distribute the common skills from
[warpdotdev/common-skills#77](warpdotdev/common-skills#77).

## Testing

Generated with `scripts/update_common_skills_lock`.

Co-authored-by: rachaelrenk <91027132+rachaelrenk@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants