Skip to content

Update build-plugin skill's readme template#98

Open
andrewmumblebee wants to merge 1 commit into
mainfrom
work/ah/skill-readme-template
Open

Update build-plugin skill's readme template#98
andrewmumblebee wants to merge 1 commit into
mainfrom
work/ah/skill-readme-template

Conversation

@andrewmumblebee

@andrewmumblebee andrewmumblebee commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

📋 Summary

The readme generated by the skill, could do with some order changes as noted in a lot of the PRs.

The old structure

1. What the plugin monitors — objects imported, what dashboards show
2. Prerequisites / getting credentials — step-by-step, include required scopes/permissions
3. Configuration fields — table explaining every `ui.json` field: what it is, where to find the value, whether required
4. What gets indexed — list object types and what they represent
5. Known limitations — rate limits, permission requirements, API quirks

This led to sections like

# Plugin name
## What the plugin monitors
## Prerequisites / getting credentials
## Configuration fields
## What gets indexed
## Known limitations

This could mean there was a lot of text before it gave guidance on actually setting up the plugin, unlike our docs site where it normally shows a short paragraph and goes straight into setup.

i.e. https://docs.squaredup.com/data-sources/jira-plugin

The new structure

<Overview: 1–3 sentences — what the plugin monitors, via which vendor API(s),
linking the product and the API docs.>

> ⚠️ <Optional: scope warning — editions/tiers/APIs the plugin does NOT
> cover. Omit the blockquote entirely if there's nothing to warn about.>

## Setup

<Numbered walkthrough from signing in to the vendor to pasting the credential
into the named config field. State required roles/scopes/permissions at the
step where the user grants them. Link every vendor page a step mentions.>

## Configuration fields

| Field | What it is | Where to find it | Required |
| ----- | ---------- | ---------------- | -------- |

<One row per ui.json field, bold field name matching its label exactly. After
the table: one sentence on what happens on save (the configValidation call)
and what a failure means.>

## What this plugin monitors

<Bullets grouping the data the way a user thinks about it, not the way the
API organizes it. Close with one line naming the out-of-the-box dashboards.>

## Data streams

<One bullet per stream: **displayName** — what it returns and its scope
(per-object or account-wide).>

## What gets indexed

| Object type | API source | Represents |
| ----------- | ---------- | ---------- |

<One row per objectType. Follow with a **Relationships:** line if objects
link to each other.>

## Known limitations

<Bullets: granularity/timeframe caps, rate limits, import count caps, data
freshness, permission constraints, and a read-only note if the plugin never
writes to the vendor.>

🔍 Scope of change

  • Documentation only
  • Repository metadata or configuration
  • CI / automation
  • Other (please describe):

📚 Checklist

@github-actions

Copy link
Copy Markdown

🧩 Plugin PR Summary

ℹ️ No plugins were modified in this PR.

@coderabbitai

coderabbitai Bot commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

The build-plugin skill is updated to version 0.0.12 and now defines a two-phase README process. A new reference template specifies structure, writing rules, an example, and a Phase 9 completion checklist before deployment.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Title check ✅ Passed The title matches the main change: updating the build-plugin skill's README template.
Description check ✅ Passed The description clearly covers the documentation-only change with summary, scope, and checklist sections.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai 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.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.claude/skills/build-plugin/references/readme.md:
- Around line 143-144: Extend the README completion checklist entry for Known
limitations to explicitly require user-facing documentation of authentication
quirks, permission constraints, data freshness, and read-only behavior,
alongside the existing timeframe, payload, import-count, and rate-limit
constraints.

In @.claude/skills/build-plugin/SKILL.md:
- Around line 317-321: Update the Phase 9 workflow to require the README
completion checklist to pass in full and obtain explicit approval before
invoking deploy-plugin. Ensure deploy-plugin’s validation also passes before
deployment or re-indexing, and prevent any tenant-affecting change when either
the checklist, validation, or approval gate fails.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI (base), Organization UI (inherited)

Review profile: ASSERTIVE

Plan: Pro

Run ID: 781f06ee-0b55-4c5b-b199-84695f933023

📥 Commits

Reviewing files that changed from the base of the PR and between 6d50ec4 and c6f0ccb.

📒 Files selected for processing (2)
  • .claude/skills/build-plugin/SKILL.md
  • .claude/skills/build-plugin/references/readme.md

Comment on lines +143 to +144
- [ ] Every constraint that forced a Phase 5–6 fix (restricted `timeframes`, payload caps, import caps, rate limits) appears in **Known limitations** in user-facing words.
- [ ] No `<!-- finalized in Phase 9 -->` placeholders remain.

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.

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Extend the checklist to cover all required limitation categories.

The template requires documenting authentication quirks, permission constraints, freshness, and read-only behavior, but this checklist only names timeframe, payload, import-count, and rate-limit constraints. A README can therefore pass the checklist while still omitting required user-facing limitations.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.claude/skills/build-plugin/references/readme.md around lines 143 - 144,
Extend the README completion checklist entry for Known limitations to explicitly
require user-facing documentation of authentication quirks, permission
constraints, data freshness, and read-only behavior, alongside the existing
timeframe, payload, import-count, and rate-limit constraints.

Comment on lines +317 to +321
## Phase 9: Finalize README, validate & deploy

**Finalize `docs/README.md` first** — complete the placeholder sections (What this plugin monitors, Data streams, What gets indexed, Known limitations) and run the completion checklist in [readme.md](references/readme.md). Source Known limitations from the reconciliation passes' API-level discoveries: every constraint that forced a fix in Phases 5–6 belongs there in user-facing words.

Invoke the `deploy-plugin` skill for the final validate, version bump, and deploy.
Then invoke the `deploy-plugin` skill for the final validate, version bump, and deploy.

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.

🔒 Security & Privacy | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

# Locate the referenced skill and related deployment instructions.
fd -a "SKILL.md" .claude/skills | sed -n '1,120p'
printf '\n---\n'
fd -a "readme.md" .claude/skills | sed -n '1,120p'
printf '\n---\n'

# Show the relevant section around the cited lines.
python3 - <<'PY'
from pathlib import Path
p = Path('.claude/skills/build-plugin/SKILL.md')
lines = p.read_text().splitlines()
for start,end in [(300,340)]:
    for i in range(start-1, min(end, len(lines))):
        print(f"{i+1}: {lines[i]}")
PY

Repository: squaredup/plugins

Length of output: 3015


🏁 Script executed:

#!/bin/bash
set -euo pipefail

# Find deploy-plugin skill and inspect its user-confirmation / validation behavior.
fd -a "deploy-plugin" .claude/skills
printf '\n---\n'
rg -n "confirm|confirmation|checklist|validate|deploy|re-index|reindex|version bump|stop|fail" .claude/skills/build-plugin .claude/skills/deploy-plugin -S

Repository: squaredup/plugins

Length of output: 33966


🏁 Script executed:

#!/bin/bash
set -euo pipefail

# Inspect the deploy-plugin skill and any confirmation requirements.
fd -a "SKILL.md" .claude/skills/deploy-plugin
printf '\n---\n'
python3 - <<'PY'
from pathlib import Path
for path in [Path('.claude/skills/deploy-plugin/SKILL.md')]:
    if path.exists():
        lines = path.read_text().splitlines()
        print(f"FILE: {path}")
        for i,l in enumerate(lines,1):
            if any(k in l.lower() for k in ["confirm", "confirmation", "checklist", "validate", "deploy", "re-index", "reindex", "version bump", "stop", "fail"]):
                print(f"{i}: {l}")
PY

Repository: squaredup/plugins

Length of output: 2648


🏁 Script executed:

#!/bin/bash
set -euo pipefail

python3 - <<'PY'
from pathlib import Path
p = Path('.claude/skills/build-plugin/references/readme.md')
lines = p.read_text().splitlines()
for start,end in [(136,220)]:
    for i in range(start-1, min(end, len(lines))):
        print(f"{i+1}: {lines[i]}")
PY

Repository: squaredup/plugins

Length of output: 832


🏁 Script executed:

#!/bin/bash
set -euo pipefail

python3 - <<'PY'
from pathlib import Path
p = Path('.claude/skills/build-plugin/references/readme.md')
lines = p.read_text().splitlines()
for i,l in enumerate(lines,1):
    if 136 <= i <= 220:
        print(f"{i}: {l}")
PY

Repository: squaredup/plugins

Length of output: 832


Gate the final deploy and re-index on a passing checklist and explicit approval.
Phase 9 only says to run the README checklist before invoking deploy-plugin; it doesn’t require every item to pass, and deploy-plugin only validates before deploying. Make both steps hard gates before any tenant-affecting change.

🧰 Tools
🪛 SkillSpector (2.3.11)

[warning] 269: [EA2] Autonomous Decision Making: Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.

Remediation: Add human-in-the-loop confirmation for destructive, irreversible, or high-impact operations. Never auto-execute commands that modify files, send data, or alter system state.

(Excessive Agency (EA2))


[warning] 32: [MP2] Context Window Stuffing: Skill attempts to fill the context window with filler content, displacing legitimate instructions and safety constraints. This can degrade agent performance or bypass safety boundaries.

Remediation: Implement context-window management that detects and rejects padding or stuffing attempts. Prioritize system instructions over user-injected content.

(Memory Poisoning (MP2))


[warning] 32: [MP2] Context Window Stuffing: Skill attempts to fill the context window with filler content, displacing legitimate instructions and safety constraints. This can degrade agent performance or bypass safety boundaries.

Remediation: Implement context-window management that detects and rejects padding or stuffing attempts. Prioritize system instructions over user-injected content.

(Memory Poisoning (MP2))


[warning] 42: [RA2] Session Persistence: Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.

Remediation: Remove any persistence mechanisms (cron jobs, startup scripts, state files). Skills should not maintain state across sessions without explicit user consent.

(Rogue Agent (RA2))

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.claude/skills/build-plugin/SKILL.md around lines 317 - 321, Update the
Phase 9 workflow to require the README completion checklist to pass in full and
obtain explicit approval before invoking deploy-plugin. Ensure deploy-plugin’s
validation also passes before deployment or re-indexing, and prevent any
tenant-affecting change when either the checklist, validation, or approval gate
fails.

Source: Linters/SAST tools

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant