Skip to content

feat: add agent skill for bare implementation#127

Open
californiandreamer wants to merge 1 commit intocallstackincubator:mainfrom
californiandreamer:feat/create-agent-skills
Open

feat: add agent skill for bare implementation#127
californiandreamer wants to merge 1 commit intocallstackincubator:mainfrom
californiandreamer:feat/create-agent-skills

Conversation

@californiandreamer
Copy link
Copy Markdown

@californiandreamer californiandreamer commented Feb 20, 2026

Summary

This PR adds the first agent skill for bare React Native integration of react-native-legal.

What’s done

  • Added skill for bare workflow in:
    • skills/integrating-rn-legal-bare/SKILL.md
  • Added Codex/Claude references:
    • .agents/skills/integrating-rn-legal-bare/**
    • .claude/skills/integrating-rn-legal-bare/**
  • Added skill metadata:
    • agents/openai.yaml
  • Added implementation guidance references:
    • references/decision-tree.md
    • references/commands.md
    • references/implementation.md
    • references/validation-checklist.md
    • references/known-limitations.md
  • Added helper script:
    • scripts/verify-bare-artifacts.mjs. It verifies:
      • android/config exists
      • ios/Settings.bundle/Root.plist exists
      • Generate licenses with LicensePlist build phase exists
  • Documented bare plugin flag semantics and defaults:
    • --dev-deps-mode
    • --include-optional-deps
    • --transitive-deps-mode

Notes

  • This is a template implementation to validate the skill architecture and benchmark agent behavior on the bare workflow.
  • The final skill model proposal will be published in Discussion Create agent skills #126.

Approach

Skill structure and guidance were designed using agent-skill best practices for Codex and Claude, including progressive disclosure (SKILL.md + references/), explicit routing/validation rules, and deterministic helper scripts.

@thymikee
Copy link
Copy Markdown
Contributor

let's name the skill just react-native-legal

for (const filePath of pbxprojCandidates) {
const content = fs.readFileSync(filePath, 'utf8');

if (content.includes('Generate licenses with LicensePlist')) {
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

that seems to be very weak check

to provide better check this we would need to use some pbxproj parser (e.g. ancient npm xcode package that's already used in the lib's implementation) and verify that:

  1. There is a PBXShellScriptBuildPhase with such name/title
  2. Such PBXShellScriptBuildPhase is correctly linked to all required PBXNativeTarget targets with com.apple.product-type.application productType

},
{
name: 'iOS Settings.bundle Root.plist',
pass: fs.existsSync(path.join(root, 'ios', 'Settings.bundle', 'Root.plist')),
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

And here this is weak as well, since we don't check if the bundle is linked within actual .pbxproj

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.

3 participants