@@ -78,72 +78,72 @@ jobs:
7878 git config user.name "github-actions[bot]"
7979 git config user.email "github-actions[bot]@users.noreply.github.com"
8080
81- # - name: Generate resource with Claude (research + implement)
82- # uses: anthropics/claude-code-action@v1
83- # with:
84- # claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
85- # claude_args: "--allowedTools Bash,Read,Edit,Write,WebSearch,WebFetch --max-turns 60"
86- # prompt: |
87- # You are implementing a new Codify resource requested by the community.
88- #
89- # Issue #${{ github.event.issue.number }}: ${{ github.event.issue.title }}
90- #
91- # Issue details:
92- # ${{ github.event.issue.body }}
93- #
94- # Resource slug: ${{ steps.extract-info.outputs.resource-name }}
95- #
96- # ═══════════════════════════════════════
97- # ## PHASE 1: RESEARCH
98- # ═══════════════════════════════════════
99- #
100- # Use WebSearch and WebFetch to thoroughly research this tool. If those tools
101- # are unavailable, use bash curl to fetch pages.
102- #
103- # Research must cover:
104- # - Official installation method for macOS (homebrew preferred if available)
105- # - Official installation method for Linux (apt/snap/manual/script)
106- # - Any dependencies or prerequisites
107- # - Key CLI commands and configuration options users would manage declaratively
108- # - Common use cases — identify if sub-resources or stateful parameters make sense
109- # (e.g. homebrew manages packages via formulae/casks stateful params;
110- # asdf manages plugins and versions as sub-resources)
111- # - Default values for any configuration settings
112- #
113- # Write your complete research to /tmp/research-notes.md before proceeding.
114- #
115- # ═══════════════════════════════════════
116- # ## PHASE 2: IMPLEMENTATION
117- # ═══════════════════════════════════════
118- #
119- # Read /tmp/research-notes.md, then read CLAUDE.md in the repo root. Follow
120- # every convention described in CLAUDE.md — it is the authoritative guide.
121- #
122- # Implement the complete resource:
123- #
124- # 1. Create src/resources/<category>/<resource-slug>/ containing:
125- # - Resource class (TypeScript) extending Resource<Config>
126- # - Use Zod schema (not JSON Schema) — types are inferred automatically
127- # - Implement getSettings(), refresh(), create(), modify(), destroy()
128- # - Add defaultConfig and exampleConfigs following CLAUDE.md spec exactly
129- # - Use Utils from @codifycli/plugin-core (not local utils) for OS detection
130- # and package installation
131- # - Never hardcode brew/apt commands — use Utils.installViaPkgMgr()
132- #
133- # 2. Register the new resource in src/index.ts (import + add to Plugin.create array)
134- #
135- # 3. Write an integration test in test/<category>/<resource-slug>.test.ts
136- # - Follow the PluginTester.fullTest() pattern from other test files
137- # - Include validateApply, testModify (where applicable), and validateDestroy
138- #
139- # 4. Write documentation in docs/resources/<resource-slug>/
140- # - Match the structure of existing resource docs
141- #
142- # 5. Verify TypeScript is clean:
143- # Run: npx tsx --noEmit src/index.ts
144- # Fix all TypeScript errors before finishing.
145- #
146- # Do NOT run any git commands — the workflow handles committing.
81+ - name : Generate resource with Claude (research + implement)
82+ uses : anthropics/claude-code-action@v1
83+ with :
84+ claude_code_oauth_token : ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
85+ claude_args : " --allowedTools Bash,Read,Edit,Write,WebSearch,WebFetch --max-turns 60"
86+ prompt : |
87+ You are implementing a new Codify resource requested by the community.
88+
89+ Issue #${{ github.event.issue.number }}: ${{ github.event.issue.title }}
90+
91+ Issue details:
92+ ${{ github.event.issue.body }}
93+
94+ Resource slug: ${{ steps.extract-info.outputs.resource-name }}
95+
96+ ═══════════════════════════════════════
97+ ## PHASE 1: RESEARCH
98+ ═══════════════════════════════════════
99+
100+ Use WebSearch and WebFetch to thoroughly research this tool. If those tools
101+ are unavailable, use bash curl to fetch pages.
102+
103+ Research must cover:
104+ - Official installation method for macOS (homebrew preferred if available)
105+ - Official installation method for Linux (apt/snap/manual/script)
106+ - Any dependencies or prerequisites
107+ - Key CLI commands and configuration options users would manage declaratively
108+ - Common use cases — identify if sub-resources or stateful parameters make sense
109+ (e.g. homebrew manages packages via formulae/casks stateful params;
110+ asdf manages plugins and versions as sub-resources)
111+ - Default values for any configuration settings
112+
113+ Write your complete research to /tmp/research-notes.md before proceeding.
114+
115+ ═══════════════════════════════════════
116+ ## PHASE 2: IMPLEMENTATION
117+ ═══════════════════════════════════════
118+
119+ Read /tmp/research-notes.md, then read CLAUDE.md in the repo root. Follow
120+ every convention described in CLAUDE.md — it is the authoritative guide.
121+
122+ Implement the complete resource:
123+
124+ 1. Create src/resources/<category>/<resource-slug>/ containing:
125+ - Resource class (TypeScript) extending Resource<Config>
126+ - Use Zod schema (not JSON Schema) — types are inferred automatically
127+ - Implement getSettings(), refresh(), create(), modify(), destroy()
128+ - Add defaultConfig and exampleConfigs following CLAUDE.md spec exactly
129+ - Use Utils from @codifycli/plugin-core (not local utils) for OS detection
130+ and package installation
131+ - Never hardcode brew/apt commands — use Utils.installViaPkgMgr()
132+
133+ 2. Register the new resource in src/index.ts (import + add to Plugin.create array)
134+
135+ 3. Write an integration test in test/<category>/<resource-slug>.test.ts
136+ - Follow the PluginTester.fullTest() pattern from other test files
137+ - Include validateApply, testModify (where applicable), and validateDestroy
138+
139+ 4. Write documentation in docs/resources/<resource-slug>/
140+ - Match the structure of existing resource docs
141+
142+ 5. Verify TypeScript is clean:
143+ Run: npx tsx --noEmit src/index.ts
144+ Fix all TypeScript errors before finishing.
145+
146+ Do NOT run any git commands — the workflow handles committing.
147147
148148 - name : Restore git remote auth
149149 env :
0 commit comments