github-actions-testing.mdc in pr-pm/prpm runs 1,426 words across 43 headings.
The universal registry for AI coding tools
Covers
8 of the 20 section tags
In the order a file is read inHeadings
43 headings, in the order the file writes them
01Description
02Capabilities
03When to Use This Skill
04Usage
05Quick Validation
06Debugging Workflow Failures
07Setup New Repository
08Critical Rules I Enforce
091. Cache Configuration
10❌ WRONG
11✅ CORRECT
122. Monorepo Build Order
13❌ WRONG
14✅ CORRECT
153. npm ci in Monorepos
16❌ WRONG
17✅ CORRECT
184. Service Containers
19❌ WRONG
20✅ CORRECT
21Validation Tools
22Required Tools
23macOS
24Linux
25Validation Script
261. Static analysis
272. Cache configuration check
283. Path validation
294. Check for explicit cache paths
30Pre-Push Checklist
31Common Failure Patterns
32"Cannot find module '@prpm/types'"
33"Cache resolution error"
34"npm ci requires package-lock.json"
35Run from root
36Then use working-directory for commands
37"Service container not starting"
38Why act Alone Isn't Enough
39Interactive Debugging
40Example Interactions
41Continuous Improvement
42Best Practices
43Summary
Commands
6 commands this file writes down
Extracted from the file, verbatimdocker exec $(docker ps -q --filter ancestor=minio/minio:latest) \
pip install yamllint
node-version: '20'
npx tsc --noEmit
npm run build --workspace=@prpm/types
npm run build
The file
.cursor/rules/github-actions-testing.mdc
First 160 of 369 lines1---
2alwaysApply: true
3description: Expert guidance for testing and validating GitHub Actions workflows before deployment - catches cache errors, path issues, monorepo dependencies, and service container problems that local testing misses
4---
5
6## Description
7
8Interactive expert for testing and validating GitHub Actions workflows before deployment. Prevents common CI failures by catching cache configuration errors, path issues, monorepo dependency problems, and service container configuration mistakes.
9
10## Capabilities
11
12This skill provides:
13
141. **Pre-Push Validation**: Complete workflow validation before pushing to GitHub
152. **Cache Configuration**: Ensure cache-dependency-path is correctly specified
163. **Monorepo Build Order**: Validate workspace dependency build sequences
174. **Service Container Setup**: Guide proper service container configuration
185. **Path Validation**: Verify all paths exist and are accessible
196. **Local Testing**: Run workflows locally with act (Docker-based simulation)
207. **Static Analysis**: Lint workflows with actionlint and yamllint
21
22## When to Use This Skill
23
24Invoke this skill when:
25- Creating or modifying GitHub Actions workflows
26- Debugging workflow failures in CI
27- Setting up new repositories with CI/CD
28- Migrating to monorepo architecture
29- Adding service containers to workflows
30- Experiencing cache-related failures
31- Getting "module not found" errors in CI but not locally
32
33## Usage
34
35### Quick Validation
36
37"Validate my GitHub Actions workflows before I push"
38
39I'll:
401. Run actionlint on all workflow files
412. Check for missing cache-dependency-path configurations
423. Validate all working-directory paths exist
434. Verify monorepo build order is correct
445. Check service container configurations
456. Provide a pre-push checklist
46
47### Debugging Workflow Failures
48
49"My GitHub Actions workflow is failing with [error message]"
50
51I'll:
521. Analyze the error message
532. Identify the root cause
543. Explain why local testing didn't catch it
554. Provide the correct configuration
565. Show how to test the fix locally
57
58### Setup New Repository
59
60"Set up GitHub Actions testing for my new project"
61
62I'll:
631. Install required tools (act, actionlint, yamllint)
642. Create validation scripts
653. Set up pre-push hooks
664. Configure recommended workflows
675. Provide testing procedures
68
69## Critical Rules I Enforce
70
71### 1. Cache Configuration
72
73**ALWAYS specify cache-dependency-path explicitly:**
74
75```yaml
76# ❌ WRONG
77- uses: actions/setup-node@v4
78 with:
79 cache: 'npm'
80
81# ✅ CORRECT
82- uses: actions/setup-node@v4
83 with:
84 cache: 'npm'
85 cache-dependency-path: package-lock.json
86```
87
88**Why**: GitHub Actions cache resolution fails silently in local testing but errors in CI with "Some specified paths were not resolved, unable to cache dependencies."
89
90### 2. Monorepo Build Order
91
92**ALWAYS build workspace dependencies before type checking:**
93
94```yaml
95# ❌ WRONG
96- run: npm ci
97- run: npx tsc --noEmit
98
99# ✅ CORRECT
100- run: npm ci
101- run: npm run build --workspace=@prpm/types
102- run: npm run build --workspace=@prpm/registry-client
103- run: npx tsc --noEmit
104```
105
106**Why**: TypeScript needs compiled output from workspace dependencies. Local development has pre-built artifacts, but CI starts clean.
107
108### 3. npm ci in Monorepos
109
110**ALWAYS run npm ci from root, not workspace directories:**
111
112```yaml
113# ❌ WRONG
114- working-directory: packages/infra
115 run: npm ci
116
117# ✅ CORRECT
118- run: npm ci
119- working-directory: packages/infra
120 run: pulumi preview
121```
122
123**Why**: npm workspaces are managed from root. Workspace directories don't have their own package-lock.json.
124
125### 4. Service Containers
126
127**Service containers can't override CMD via options:**
128
129```yaml
130# ❌ WRONG
131services:
132 minio:
133 image: minio/minio:latest
134 options: server /data # Ignored!
135
136# ✅ CORRECT
137services:
138 minio:
139 image: minio/minio:latest
140
141steps:
142 - run: |
143 docker exec $(docker ps -q --filter ancestor=minio/minio:latest) \
144 sh -c "minio server /data &"
145```
146
147**Why**: GitHub Actions service containers ignore custom commands. They must be started manually in steps.
148
149## Validation Tools
150
151### Required Tools
152
153```bash
154# macOS
155brew install act actionlint yamllint
156
157# Linux
158curl https://raw.githubusercontent.com/nektos/act/master/install.sh | sudo bash
159bash <(curl https://raw.githubusercontent.com/rhysd/actionlint/main/scripts/download-actionlint.bash)
160pip install yamllint
209 more lines are in the file. Read the raw file.
The rest of the repository
pr-pm/prpm ships 15 other instruction files
.cursor/rules/prpm-json-best-practices.mdc.cursor/rules/typescript-type-safety.mdc.cursor/rules/typescript-type-specialist.mdcCLAUDE.md.cursor/rules/creating-kiro-agents.mdc.cursor/rules/beanstalk-deploy.mdc.cursor/rules/core-principles.mdc.cursor/rules/creating-agents-md.mdc.cursor/rules/creating-cursor-rules.mdc.cursor/rules/creating-skills.mdc.cursor/rules/format-conversion.mdc.cursor/rules/karen-repo-reviewer.mdc.cursor/rules/self-improve-cursor.mdc.cursor/rules/testing-patterns.mdcAGENTS.md
A row that is not a link is a file this repository ships that this app did not freeze a sheet for. It is listed because the corpus knows it exists, and it is not linked because there is nothing here to open.
This listing
Whoever runs pr-pm/prpm can claim it
This is yours? Claim this config and we will write to you when the measurement moves. The check is one token placed where only you can place it, and there is no account and no password.