Skip to content

fix(skills): derive the two remaining Airflow literals from project config - #1144

Open
dpol1 wants to merge 1 commit into
apache:mainfrom
dpol1:fix/1139-airflow-literals
Open

fix(skills): derive the two remaining Airflow literals from project config#1144
dpol1 wants to merge 1 commit into
apache:mainfrom
dpol1:fix/1139-airflow-literals

Conversation

@dpol1

@dpol1 dpol1 commented Sep 2, 2026

Copy link
Copy Markdown
Member

Summary

  • pr-management-stats/fetch.md queried repository(owner:"apache",name:"airflow") in its GraphQL batch-fetch recipe, and release-announce-draft pinned the download URL to closer.lua?path=airflow/<version>/. Both are operative instructions, not examples — an agent following them against any other adopter queries the wrong repository and points the announce at the wrong dist tree.
  • Both values now come from configuration that already exists: the query binds $owner / $repo from <upstream> the way the other GraphQL recipes (contributor-*, pr-management-code-review) already do, and the dist path renders from <project>, which the same announce skill already uses for dist/release/<project>/<version>/. No new placeholder.
  • check-placeholders.sh learns the two lowercase forms (name:"airflow", path=airflow). Before this change it passed on both lines — which is how they survived the template clean-up in fix(_template): drop Apache Airflow residue from the templates #1132.

Type of change

  • Skill change (.claude/skills/<name>/) — eval fixtures updated below
  • Tool / bridge contract (tools/<system>/*.md)
  • Python package (tools/*/ with pyproject.toml)
  • Groovy reference impl
  • Cross-cutting (RFC, AGENTS.md, sandbox, privacy-LLM)
  • Documentation (docs/, README.md, CONTRIBUTING.md)
  • Project template (projects/_template/)
  • CI / dev loop (prek, workflows, validators)
  • Other:

Test plan

  • prek run --all-files passes
  • Linter first, fix second: with the two patterns added, tools/dev/check-placeholders.sh fails on exactly fetch.md:213 and release-announce-draft/SKILL.md:363 and nothing else; after the two edits it passes again.
  • Eval suites: both edits are prose inside example blocks — no step behaviour changes — so no fixture update is needed per AGENTS.md § When the rule fires (pure prose edits).
  • grep -rn 'airflow' skills/ sweep: the remaining hits are marked examples (candidate-rules.md, the issue-triage JIRA-key example, slop-detection fixtures) and stay as they are.

RFC-AI-0004 compliance

  • Vendor neutrality — placeholders (<PROJECT>, <tracker>, <upstream>, <security-list>) used in all skill / tool prose (the check-placeholders prek hook is the mechanical gate)

Linked issues

Fixes apache/magpie#1139.

…onfig

`pr-management-stats/fetch.md` queried `repository(owner:"apache",name:"airflow")`
in its GraphQL batch-fetch recipe, and `release-announce-draft` pinned the
download URL to `closer.lua?path=airflow/<version>/`. Both are operative
instructions, not examples, so an agent following them against another
adopter queries the wrong repository and points at the wrong dist tree.

Bind the query's owner/name from `<upstream>` the way the other GraphQL
recipes already do, and render the dist path from `<project>` as the rest
of the announce skill does. Teach `check-placeholders.sh` the two lowercase
forms (`name:"airflow"`, `path=airflow`) so this class is caught at commit
time — before this change the linter passed on both lines.

Fixes [apache#1139](apache#1139).

Signed-off-by: Davide Polato <dpol1@apache.org>
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.

fix(skills): two hardcoded Airflow values slip past check-placeholders.sh

1 participant