Skip to content

Commit 1073d16

Browse files
committed
feat: improve skill based on Claude Code insights analysis
Add improvements addressing user friction points: - Diagnostic/context-first workflows - Verification steps - CI debugging guidance - Approach explanations
1 parent 32e1cdd commit 1073d16

File tree

1 file changed

+74
-0
lines changed

1 file changed

+74
-0
lines changed

skills/typo3-conformance/SKILL.md

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,23 @@ When documentation validation is needed, delegate to the `typo3-docs` skill.
2121

2222
To evaluate an extension, follow these steps in order:
2323

24+
### Step 0: Understand Extension Context (ALWAYS FIRST)
25+
26+
Before checking any files, understand what you're evaluating:
27+
28+
1. **Purpose** - What does this extension do? Read the README and ext_emconf description
29+
2. **Target TYPO3 Version** - Is this for v12, v13, or v14? Multi-version support?
30+
3. **Target PHP Version** - What PHP version(s) does it support?
31+
4. **Extension Type** - Is it a plugin, module, site package, or library?
32+
5. **Criticality Assessment** - Is this production-critical or experimental?
33+
- Production extensions need stricter conformance (aim for 80+)
34+
- Experimental/proof-of-concept can have lower thresholds
35+
6. **Scope** - How large is the codebase? Set appropriate expectations
36+
37+
This context shapes how strictly to apply subsequent checks and what to prioritize.
38+
39+
### Steps 1-9: Conformance Checks
40+
2441
1. **Initial Assessment** - Identify extension key, target TYPO3 version, and extension type
2542
2. **File Structure** - Validate composer.json, ext_emconf.php, and required directories
2643
3. **Coding Standards** - Check strict_types, type declarations, and PSR-12 compliance
@@ -31,6 +48,17 @@ To evaluate an extension, follow these steps in order:
3148
8. **Best Practices** - Confirm DDEV setup, runTests.sh, quality tools, and CI/CD
3249
9. **TER Publishing** - Validate workflow, upload comment format, CI TER compatibility check
3350

51+
### Step 10: Verification Loop (After Fixes)
52+
53+
After implementing improvements, always re-run the conformance check:
54+
55+
1. **Re-score** - Run `scripts/check-conformance.sh` again
56+
2. **Compare** - Document score improvement (e.g., "Score improved: 58 → 82")
57+
3. **Validate** - Ensure no regressions in previously passing checks
58+
4. **Report** - Update the conformance report with before/after scores
59+
60+
Do not consider conformance work complete until verification confirms improvement.
61+
3462
## Scoring System
3563

3664
**Base Score (0-100):**
@@ -42,6 +70,52 @@ To evaluate an extension, follow these steps in order:
4270

4371
**Excellence Bonus (0-22):** Additional points for exceptional quality features.
4472

73+
### Severity Interpretation
74+
75+
Use these thresholds to guide recommendations:
76+
77+
| Score Range | Interpretation | Action |
78+
|-------------|----------------|--------|
79+
| 90-100+ | Excellent | Ready for production and TER publishing |
80+
| 80-89 | Good | Minor improvements recommended |
81+
| 70-79 | Acceptable | Address issues before major releases |
82+
| 50-69 | Needs Work | Significant improvements required |
83+
| Below 50 | Critical | Block deployment until resolved |
84+
85+
**Critical vs. Nice-to-Have:**
86+
- **Critical issues** (security, data loss, TYPO3 core incompatibility) block production deployment regardless of score
87+
- **Nice-to-have** (code style, minor optimizations) can be deferred to future releases
88+
89+
## CI Debugging: Extension Works Locally but CI Fails
90+
91+
When an extension passes locally but fails in CI, check these common causes:
92+
93+
1. **TYPO3 Version Mismatch** - CI matrix may test different TYPO3 versions than local
94+
- Check `composer.json` TYPO3 constraints match CI matrix
95+
- Ensure deprecated APIs work across all tested versions
96+
97+
2. **PHP Version Matrix** - CI tests multiple PHP versions
98+
- Verify type declarations work on oldest supported PHP
99+
- Check for PHP 8.x-only features if supporting PHP 7.4
100+
101+
3. **Dependency Locking** - composer.lock state differs
102+
- TYPO3 extensions should NOT commit composer.lock (add to .gitignore)
103+
- Without lock file, CI resolves versions appropriate for its PHP/TYPO3
104+
105+
4. **Test Environment Differences**
106+
- DDEV provides services (MySQL, Redis) that CI may not
107+
- Mock external services or use test fixtures
108+
109+
5. **Missing Test Database Setup**
110+
- Functional tests need database; ensure CI creates it
111+
- Check test bootstrap configuration
112+
113+
6. **File Path Assumptions**
114+
- Avoid absolute paths that differ between local and CI
115+
- Use TYPO3's path constants (Environment::getPublicPath())
116+
117+
Run `scripts/diagnose-ci-failure.sh` if available, or compare CI logs against local test output.
118+
45119
## Running Conformance Checks
46120

47121
To run a complete conformance check on an extension:

0 commit comments

Comments
 (0)