Ports four corrections these two skills received upstream after a second trial
run against a real repository. #2951 merged the snapshot taken before them. The
bundled scripts are already identical to their upstream versions and are not
touched here.
1. Neither skill told the agent that text read out of the audited repository is
data rather than instruction. These skills exist to read untrusted
repositories, so a README, a code comment, a commit message or a dependency
manifest reached the model with no framing -- and a line claiming a file is
approved, or telling the audit to skip a module, reads exactly like a
guardrail. Both skills now carry the rule and report such text as a finding
instead of following it.
2. The citation rule allowed anchors to land beside the symbol rather than on
it: the blank line above a definition, a decorator, or a line inside a
multi-line literal. In one trialled file every anchor sat two lines above the
def it named. The rule is now a single applicable test -- the line you cite
must literally contain the thing you name, and a cited range must contain it
on the first line. Quoted text is cited at the line the quoted characters are
on, because a comment has its own line number and it is usually not the line
of the code beside it.
3. "Never restate a count without the raw output in front of you" was ignored
twice in that trial, so the rule flips from prohibition to requirement: any
number stated must appear under Checks Run next to the command that produced
it. Unwilling to show the command means describing the pattern rather than
counting it.
4. Both Related Skills sections said the skill is one of seven and that the
other five cover the remaining ground. Six, not five. Each section now names
its sibling in this repository and links the remaining five out.
Front matter is unchanged, so the generated README tables do not move.
Update profile URLs in .all-contributorsrc and regenerate README.md and
website/src/pages/contributors.astro with `npm run contributors:generate`
(all-contributors-cli 6.26.1). Rebased onto current main.
Bug-bash fixes for the sentry-triage canvas extension:
- Model list: auto-refresh via session.rpc.model.list() with a static
fallback, instead of a hardcoded list that went stale.
- Plain-English toggle: gate the toggle until enrichPlainEnglish()
completes, fixing a race where it was interactive before enrichment
finished. Add a preparing hint while it runs.
- Copy: 'Plain-English titles' -> 'Plain-English messages'; simplify the
loading hint.
- Work status labels: distinguish 'starting Copilot fix session' vs
'filing tracking issue' instead of a generic 'working', and mark the
Fix-with-Copilot toast as non-blocking.
- Org project pagination: page the traversal as discrete queued tasks
bounded by page count, driven by the SDK envelope hasMore flag, so a
mega-org no longer starves interactive lookups and an incomplete
traversal is never cached as complete. No Promise.race timeout is used
because sentry@0.42.2 exposes no per-call cancellation and an abandoned
call would corrupt module-global cursor state.
Bump plugin to 1.2.0 and regenerate marketplace.json.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
* feat(skills): add test-gap-audit and docs-sync-audit
Two repo-agnostic review skills that answer questions the existing testing and
documentation skills do not.
test-gap-audit asks which behaviour is not covered, rather than how to write a
test in a given framework. Given no scope it audits the whole repository,
inventories the testable surfaces, and reports which routes, services, jobs and
contracts have no tests, too few assertions, or only indirect coverage. It
bundles coverage_map.py, which detects the test framework and naming convention,
then matches every source file to tests by name, by mirrored path, and by what
the test files actually import, and ranks the unmatched by risk keyword and size.
docs-sync-audit compares what the docs claim against what the code does. It
bundles docs_drift.py, which checks documented npm scripts and make targets
against the ones that exist, relative Markdown links against the filesystem, and
environment variable names in both directions. It also reports a documented
setting that is read only inside a module nothing imports, which is configuration
that reads as working but cannot take effect.
Both are read-only: they report and do not edit unless asked. Both emit the same
contract, so a finding always carries a P0-P3 severity and a path:line you can
open. Both scripts are Python standard library only, install nothing, and are
accelerators rather than requirements, so each skill still works when the script
cannot run.
The existing testing and docs skills here are framework-specific, which is where
most of the value is. These are the repo-agnostic complement: pytest-coverage
raises coverage inside a pytest project, and this decides where coverage is
missing across a repository regardless of language.
* fix: satisfy codespell and regenerate all generated docs
Two CI failures on the first push.
codespell flagged `testng` and `shouldBe` in coverage_map.py. Both are
legitimate identifiers rather than typos: TestNG is the Java test framework the
script detects by name, and shouldBe is the Kotlin and Scala assertion method
matched by its assertion-detection regex. Added both to ignore-words-list with a
comment each, following the convention already used for the other entries.
validate-readme failed because I had reverted docs/README.agents.md. `npm start`
rewrites a Dynatrace MCP URL there from re-fetched external plugin data, which is
unrelated to these skills, so I had excluded it to keep the diff scoped. That was
wrong: the check regenerates every generated file and compares, so the commit has
to carry whatever the build produces. Restored.
---------
Co-authored-by: Aaron Powell <me@aaron-powell.com>
trigger_live_flow now runs scheduled (Recurrence) flows on demand;
list_live_connections requires environmentName and applies top after search;
the ChatGPT/claude.ai connector path is documented in the mcp skill; the
brand reads FlowStudio (one word) across the skills and plugin README; the
build skill is back under the 500-line lint limit.
Co-authored-by: Aaron Powell <me@aaron-powell.com>
The last row carries eight <td> elements while all fifty-three others carry
seven. Each cell is fixed at width="14.28%" (one seventh), so eight of them
overflow the table: the final avatar renders narrower than the rest and sits
past the edge, reachable only by scrolling horizontally.
Moving that one cell onto its own row restores the invariant. Verified by
counting cells per row before and after: the distribution goes from {7, 8} to
{7, 1}, the 1 being the new trailing row that the next contributor fills.
* Add dev container configuration instructions
Twelve sourced rules for reviewing and authoring devcontainer.json, Dev
Container Features, and Codespaces lifecycle configuration. Every rule
cites the Dev Container specification, the reference CLI source, or
official vendor documentation, and needs only file reading rather than a
container build.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KZ5Ak8ifbxDC6zQvJQt26T
* Regenerate instructions index
Output of `npm start` (eng/update-readme.mjs + eng/generate-marketplace.mjs)
after adding instructions/devcontainers.instructions.md.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KZ5Ak8ifbxDC6zQvJQt26T
* Allow two source-faithful spellings in codespell
`implementors` is a path segment in the containers.dev specification URLs
that instructions/devcontainers.instructions.md cites, and `evaulated` is
spelled that way inside a verbatim quotation from the Dev Container
Features specification. Neither can be corrected without breaking a link
or falsifying a quote.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KZ5Ak8ifbxDC6zQvJQt26T
---------
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
* chore: bump keep-the-why to 0.10.0
* chore: bump keep-the-why to 0.10.1
0.10.1 released after this PR was opened for 0.10.0 - updates
version/source.ref to v0.10.1 and regenerates
.github/plugin/marketplace.json to match.
Points the listed rayfin entry at plugin-v0.4.0. That release sources the
getting-started template from the microsoft/awesome-rayfin gallery rather
than a personal repository, and puts the documented scaffold command back
on one line so it parses under PowerShell.
marketplace.json is regenerated via npm run build.
Co-authored-by: Chris Caruso <chcaruso@microsoft.com>
Points the figma external plugin entry at tag v2.2.96-figquery.1 in
figma/mcp-server-guide instead of tracking the default branch, and updates
the listed version to match the plugin manifests on that tag.
Regenerates .github/plugin/marketplace.json.
* Add research experiment discipline instructions
* Convert to a custom agent per review feedback
* Drop accidental generator churn from README.agents.md
`-f labels[]="bug"` fails under zsh, the default shell on macOS, because `[]`
is a glob pattern. The argument never reaches gh. Quote the whole
`name[]=value` pair instead.
The skill also states the MCP server cannot create, update, or comment on
issues. github-mcp-server ships issue_write, add_issue_comment, and
sub_issue_write. Documented them and reworded the CLI section; the gh api
examples are unchanged.
Regenerate the agentic workflow with gh-aw v0.86.2 so the Copilot CLI is resolved from PATH and staged in the runner temp directory.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 5135482d-49dc-4ff7-a2e8-c086ea1eeae4