Skip to content

Claude skill tweaks#47

Open
andrewmumblebee wants to merge 16 commits into
work/dc/skillfrom
work/ah/skill-password
Open

Claude skill tweaks#47
andrewmumblebee wants to merge 16 commits into
work/dc/skillfrom
work/ah/skill-password

Conversation

@andrewmumblebee
Copy link
Copy Markdown
Contributor

@andrewmumblebee andrewmumblebee commented May 12, 2026

📋 Summary

Tweaks to the build-plugin Claude skill and repo config:

Config fields & correctness

  • importFrequencyMinutesfrequencyMinutes (correct property name)
  • Use id property for built-in datastream (was using incorrect property name)
  • Remove --suffix hint from skill — can cause Claude to create new plugins instead of updating the existing one
  • Remove built-in properties warning

Credential handling

  • Ensure Claude prefers password field type over plain text with allowEncryption
  • Move allowEncryption tip into key-value field section — it's the only field that actually supports this property (other fields have no UI for encrypting values)

Scaffolding improvements

  • Always create docs/README.md when scaffolding a new plugin
  • Ask for author handle before writing metadata.json
  • Ensure user is prompted for user handle during setup

Dashboard authoring

  • Ensure dashboard titles are unique — Claude was naming each perspective the same (e.g. "Overview"), which causes them to appear identically in the UI

Skill housekeeping

  • Deduplicate help property in skill for ui.json
  • Add version metadata to skill to track changes
  • Add .editorconfig to preserve indentation consistent with the product repo

🔍 Scope of change

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

📚 Checklist

@andrewmumblebee andrewmumblebee marked this pull request as ready for review May 12, 2026 14:37
@andrewmumblebee andrewmumblebee requested a review from clarkd May 12, 2026 14:37
Comment thread .claude/skills/build-plugin/SKILL.md Outdated
- `defaultValue` — pre-populated value
- `validation` — e.g. `{ "required": true }`
- `allowEncryption: true` — marks the field as a secret (encrypted at rest); use on any token, password, or key field
- `allowEncryption: true` — legacy way to mark a `text` field as a secret; **prefer `type: "password"` instead** for any token, password, or key field
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

would be tempted to remove entirely, not sure I've ever seen this used or see a valid use case

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Are fields of type password encrypted automatically?

Copy link
Copy Markdown
Contributor Author

@andrewmumblebee andrewmumblebee May 13, 2026

Choose a reason for hiding this comment

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

yes, they are automatically encrypted, rather than the user having to choose if they are or not

https://github.com/squaredup/saas/blob/3adbbb345bd290a9d9a629d2a096c1daae0b8509/packages/lambda-helper/src/Auth.ts#L273-L293

on further search, the only field that supports allowEncryption is the key-value field, i.e. the only one which shows the user UI to toggle encryption.

So i think it should be removed

Copy link
Copy Markdown

@claude claude Bot left a comment

Choose a reason for hiding this comment

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

LGTM — small documentation fixes to the build-plugin skill (prefer field type and corrected property name).

Extended reasoning...

Overview

This PR makes two targeted edits to .claude/skills/build-plugin/SKILL.md: (1) reframes the allowEncryption bullet/example as legacy, steering Claude toward the password field type for secrets, and (2) corrects the documented property name from importFrequencyMinutes to frequencyMinutes in the indexDefinitions section. No plugin code or schemas are touched.

Security risks

None. This is internal documentation guiding Claude when authoring plugins; if anything, it improves security posture by nudging contributors toward the dedicated password field type instead of the legacy text + allowEncryption pattern.

Level of scrutiny

Low. The repo's versioning rule only applies inside plugin directories, and this PR doesn't modify any plugin. The changes are localised, mechanical, and self-evidently correct on a quick read.

Other factors

The bug-hunting system flagged a pre-existing duplicate help bullet in the same list. It pre-dates this PR and isn't a blocker — leaving it as an inline nit is appropriate.

Comment thread .claude/skills/build-plugin/SKILL.md Outdated
This is the only field that actually supports this property currently, the other fields have no UI to support encrypting values
The skill previously used a placeholder @yourhandle in the metadata.json
template without prompting Claude to collect this from the user, meaning
plugins could be created with an unresolved placeholder. An explicit
AskUserQuestion instruction now ensures the author name is always gathered
at the point it is needed. The author type silently defaults to "community"
to keep the interaction minimal.
The build-plugin skill mentioned that the documentation link in
metadata.json should point to docs/README.md, but never explicitly
instructed Claude to create the file. This made it easy to skip.

The fix adds docs/README.md to the Phase 3 checklist entry, the
folder structure diagram, and a new section explaining what the
file should contain (prerequisites, config field descriptions,
object types, known limitations). The section also explains why
it matters — the file is surfaced directly in-product when users
add the plugin, so it needs to work as a self-contained setup
guide without relying on external links.
Otherwise Claude can name each perspective the same i.e. Overview, which show next to each other in the UI

---

## Required user inputs (always ask)
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

So this works, but if you use auto mode in Claude it still bypasses this, may remove

Similar to other AskUserQuestions, does use roughly my handle

Comment thread .claude/skills/build-plugin/SKILL.md Outdated
Comment thread .claude/skills/build-plugin/SKILL.md Outdated
> ⚠️ When using a data stream as the autocomplete source, the backing stream must return rows with `label` (string) and `value` columns, and those columns must have `"role": "label"` and `"role": "value"` declared in the stream's metadata — otherwise the dropdown won't populate correctly.

**`key-value`** — list of key/value pairs (useful for custom headers, tags):
**`key-value`** — list of key/value pairs (useful for custom headers, tags). Set `allowEncryption: true` to let users mark individual values as encrypted — use this when the field may contain sensitive data such as secret environment variables:
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Not supported for data streams - only plugin-level ui.json. Could clarify or remove this?

Comment thread .claude/skills/build-plugin/SKILL.md Outdated
Co-authored-by: Dave Clarke <02DClarke@gmail.com>
@github-actions
Copy link
Copy Markdown

🧩 Plugin PR Summary

ℹ️ No plugins were modified in this PR.

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.

2 participants