faf-taf-git 2.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/.faf +126 -0
  2. package/.faf-dna +95 -0
  3. package/.fafignore +41 -0
  4. package/.taf +21 -0
  5. package/CHANGELOG.md +208 -0
  6. package/CLAUDE.md +30 -0
  7. package/CONTRIBUTING.md +286 -0
  8. package/LICENSE +21 -0
  9. package/README.md +496 -0
  10. package/action.yml +42 -0
  11. package/dist/bundle/index.js +36554 -0
  12. package/dist/cli.d.ts +31 -0
  13. package/dist/cli.d.ts.map +1 -0
  14. package/dist/cli.js +380 -0
  15. package/dist/cli.js.map +1 -0
  16. package/dist/index.d.ts +7 -0
  17. package/dist/index.d.ts.map +1 -0
  18. package/dist/index.js +36560 -0
  19. package/dist/index.js.map +1 -0
  20. package/dist/licenses.txt +148 -0
  21. package/dist/main.d.ts +7 -0
  22. package/dist/main.d.ts.map +1 -0
  23. package/dist/main.js +147 -0
  24. package/dist/main.js.map +1 -0
  25. package/dist/parsers/jest.d.ts +38 -0
  26. package/dist/parsers/jest.d.ts.map +1 -0
  27. package/dist/parsers/jest.js +87 -0
  28. package/dist/parsers/jest.js.map +1 -0
  29. package/dist/sourcemap-register.js +1 -0
  30. package/dist/taf-core.d.ts +12 -0
  31. package/dist/taf-core.d.ts.map +1 -0
  32. package/dist/taf-core.js +136 -0
  33. package/dist/taf-core.js.map +1 -0
  34. package/docs/RELEASE-NOTES.md +200 -0
  35. package/docs/USER-GUIDE.md +301 -0
  36. package/jest.config.js +13 -0
  37. package/package.json +47 -0
  38. package/project.faf +259 -0
  39. package/src/cli.ts +393 -0
  40. package/src/index.ts +131 -0
  41. package/src/parsers/jest.ts +104 -0
  42. package/src/taf-core.ts +139 -0
  43. package/test-mcp.ts +83 -0
  44. package/test-standalone.ts +87 -0
  45. package/tests/jest-parser.test.ts +122 -0
  46. package/tests/wjttc-taf.test.ts +470 -0
  47. package/tsconfig.json +18 -0
package/.faf ADDED
@@ -0,0 +1,126 @@
1
+ faf_version: 2.5.0
2
+ ai_scoring_system: 2025-09-20
3
+ ai_score: 65%
4
+ ai_confidence: MODERATE
5
+ ai_value: 30_seconds_replaces_20_minutes_of_questions
6
+ ai_tldr:
7
+ project: faf-taf-git - Platform-agnostic TAF updater for ANY CI/CD
8
+ stack: TypeScript (core + wrappers architecture)
9
+ quality_bar: ZERO_ERRORS_F1_STANDARDS
10
+ current_focus: Ready for npm publication and GitHub release
11
+ your_role: Build features with perfect context
12
+ instant_context:
13
+ what_building: Platform-agnostic CLI + GitHub Action for TAF updates
14
+ tech_stack: TypeScript
15
+ main_language: TypeScript
16
+ deployment: npm + GitHub Actions Marketplace
17
+ key_files:
18
+ - src/cli.ts (core)
19
+ - src/index.ts (GitHub wrapper)
20
+ - src/taf-core.ts (MCP-portable)
21
+ - package.json
22
+ context_quality:
23
+ slots_filled: 11/21 (52%)
24
+ ai_confidence: LOW
25
+ handoff_ready: false
26
+ missing_context:
27
+ - CI/CD pipeline
28
+ - Database
29
+ project:
30
+ name: faf-taf-git
31
+ goal: Platform-agnostic TAF updater - works in ANY CI/CD
32
+ main_language: TypeScript
33
+ type: typescript
34
+ generated: 2025-10-28T01:26:05.656Z
35
+ mission: ๐Ÿš€ Make Your AI Happy! ๐Ÿงก Trust-Driven ๐Ÿค–
36
+ revolution: 30 seconds replaces 20 minutes of questions
37
+ brand: F1-Inspired Software Engineering - Championship AI Context
38
+ ai_instructions:
39
+ priority_order:
40
+ - 1. Read THIS .faf file first
41
+ - 2. Check CLAUDE.md for session context
42
+ - 3. Review package.json for dependencies
43
+ working_style:
44
+ code_first: true
45
+ explanations: minimal
46
+ quality_bar: zero_errors
47
+ testing: required
48
+ warnings:
49
+ - Never modify dial components without approval
50
+ - All TypeScript must pass strict mode
51
+ - Test coverage required for new features
52
+ stack:
53
+ frontend: None
54
+ css_framework: None
55
+ ui_library: None
56
+ state_management: None
57
+ backend: None
58
+ runtime: None
59
+ database: None
60
+ build: None
61
+ package_manager: npm
62
+ api_type: REST
63
+ hosting: None
64
+ cicd: None
65
+ preferences:
66
+ quality_bar: zero_errors
67
+ commit_style: conventional_emoji
68
+ response_style: concise_code_first
69
+ explanation_level: minimal
70
+ communication: direct
71
+ testing: required
72
+ documentation: as_needed
73
+ state:
74
+ phase: development
75
+ version: 1.0.0
76
+ focus: production_deployment
77
+ status: green_flag
78
+ next_milestone: npm_publication
79
+ blockers: null
80
+ tags:
81
+ auto_generated:
82
+ - faf-taf-action
83
+ - none
84
+ - typescript
85
+ smart_defaults:
86
+ - .faf
87
+ - ai-ready
88
+ - "2025"
89
+ - software
90
+ - open-source
91
+ user_defined: null
92
+ human_context:
93
+ who: Development teams
94
+ what: infinite loops
95
+ why: Improve development efficiency
96
+ where: Cloud platform
97
+ when: timeline [skip ci]`
98
+ how: Test-driven development
99
+ additional_context: null
100
+ context_score: 0
101
+ total_prd_score: 65
102
+ success_rate: 50%
103
+ scores:
104
+ faf_score: 50
105
+ slot_based_percentage: 52
106
+ ai_score: 65
107
+ total_slots: 21
108
+ filled_slots: 11
109
+ scoring_method: Honest percentage - no fake minimums
110
+ trust_embedded: COUNT ONCE architecture - trust MY embedded scores
111
+ ai_scoring_details:
112
+ system_date: 2025-09-20
113
+ slot_based_percentage: 52
114
+ ai_score: 65
115
+ total_slots: 21
116
+ filled_slots: 11
117
+ scoring_method: Honest percentage - no fake minimums
118
+ trust_embedded: COUNT ONCE architecture - trust MY embedded scores
119
+ faf_dna:
120
+ birth_dna: 22
121
+ birth_certificate: FAF-2025-FAFTAFAC-TMZU
122
+ birth_date: 2025-10-28T01:26:05.692Z
123
+ current_score: 50
124
+ projectName: faf-taf-git
125
+ projectGoal: Platform-agnostic TAF (Testing Activity Feed) updater - works in ANY CI/CD
126
+ generated: 2025-10-28T17:48:24.837Z
package/.faf-dna ADDED
@@ -0,0 +1,95 @@
1
+ {
2
+ "birthCertificate": {
3
+ "born": "2025-10-28T01:26:05.692Z",
4
+ "birthDNA": 22,
5
+ "birthDNASource": "CLAUDE.md",
6
+ "projectDNA": "1785d1ac1c20876b",
7
+ "authenticated": false,
8
+ "certificate": "FAF-2025-FAFTAFAC-TMZU"
9
+ },
10
+ "versions": [
11
+ {
12
+ "version": "v1.0.0",
13
+ "timestamp": "2025-10-28T01:26:05.693Z",
14
+ "score": 22,
15
+ "changes": [
16
+ "Initial context from CLAUDE.md"
17
+ ],
18
+ "approved": false,
19
+ "growth": 0,
20
+ "growthRate": 0
21
+ },
22
+ {
23
+ "version": "v1.0.1",
24
+ "timestamp": "2025-10-28T01:26:05.721Z",
25
+ "score": 50,
26
+ "changes": [
27
+ "Initial .faf generation from project"
28
+ ],
29
+ "approved": false,
30
+ "growth": 28,
31
+ "growthRate": 28
32
+ }
33
+ ],
34
+ "current": {
35
+ "version": "v1.0.1",
36
+ "score": 50,
37
+ "approved": false,
38
+ "lastSync": "2025-10-28T01:26:05.721Z"
39
+ },
40
+ "recovery": {
41
+ "claudeMD": "/Users/wolfejam/FAF/faf-taf-action/CLAUDE.md",
42
+ "lastBackup": "2025-10-28T01:26:05.693Z",
43
+ "syncStatus": "active",
44
+ "autoRecover": true
45
+ },
46
+ "growth": {
47
+ "totalGrowth": 28,
48
+ "daysActive": 0,
49
+ "averageDailyGrowth": 28,
50
+ "bestDay": {
51
+ "date": "2025-10-28T01:26:05.721Z",
52
+ "growth": 28
53
+ },
54
+ "bestWeek": {
55
+ "start": "2025-10-28T01:26:05.693Z",
56
+ "growth": 0
57
+ },
58
+ "milestones": [
59
+ {
60
+ "type": "birth",
61
+ "score": 22,
62
+ "date": "2025-10-28T01:26:05.693Z",
63
+ "version": "v1.0.0",
64
+ "label": "Birth",
65
+ "emoji": "๐Ÿฃ"
66
+ },
67
+ {
68
+ "type": "doubled",
69
+ "score": 50,
70
+ "date": "2025-10-28T01:26:05.721Z",
71
+ "version": "v1.0.1",
72
+ "label": "Doubled",
73
+ "emoji": "2๏ธโƒฃ"
74
+ },
75
+ {
76
+ "type": "peak",
77
+ "score": 50,
78
+ "date": "2025-10-28T01:26:05.721Z",
79
+ "version": "v1.0.1",
80
+ "label": "Peak",
81
+ "emoji": "๐Ÿ”๏ธ"
82
+ },
83
+ {
84
+ "type": "current",
85
+ "score": 50,
86
+ "date": "2025-10-28T01:26:05.721Z",
87
+ "version": "v1.0.1",
88
+ "label": "Current",
89
+ "emoji": "๐Ÿ“"
90
+ }
91
+ ]
92
+ },
93
+ "lastModified": "2025-10-28T01:26:05.721Z",
94
+ "format": "faf-dna-v1"
95
+ }
package/.fafignore ADDED
@@ -0,0 +1,41 @@
1
+ # .fafignore - Exclude files/directories from .faf context
2
+ # Similar to .gitignore syntax
3
+ # Lines starting with # are comments
4
+
5
+ # Dependencies and build outputs
6
+ node_modules/
7
+ dist/
8
+ build/
9
+ coverage/
10
+
11
+ # Python environments
12
+ __pycache__/
13
+ venv/
14
+ .venv/
15
+
16
+ # IDE and system files
17
+ .vscode/
18
+ .idea/
19
+ .DS_Store
20
+
21
+ # Sensitive files
22
+ .env
23
+ .env.*
24
+ *.key
25
+ *.pem
26
+
27
+ # Logs and temporary files
28
+ *.log
29
+ logs/
30
+ tmp/
31
+ temp/
32
+
33
+ # Large media files
34
+ *.jpg
35
+ *.png
36
+ *.mp4
37
+ *.pdf
38
+
39
+ # Custom exclusions (add your own below)
40
+ # example: my-large-data-folder/
41
+ # example: *.generated.ts
package/.taf ADDED
@@ -0,0 +1,21 @@
1
+ format_version: 1.0.0
2
+ project: faf-taf-git
3
+ created: 2025-10-28T01:26:12.944Z
4
+ last_updated: 2025-10-28T01:40:23.937Z
5
+ faf_associated: true
6
+ faf_location: .faf
7
+ faf_score: 65
8
+ test_history:
9
+ - timestamp: 2025-10-28T01:28:38.600Z
10
+ result: PASSED
11
+ tests:
12
+ total: 7
13
+ passed: 7
14
+ failed: 0
15
+ - timestamp: 2025-10-28T01:40:23.935Z
16
+ result: PASSED
17
+ tests:
18
+ total: 7
19
+ passed: 7
20
+ failed: 0
21
+ trigger: github-actions
package/CHANGELOG.md ADDED
@@ -0,0 +1,208 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [2.0.4] - 2026-02-17
9
+
10
+ ### Fixed
11
+ - **Parser now correctly identifies Jest summary line** - fixes "Could not parse test output" error
12
+ - Parser pattern now matches "Tests:" lines containing "total" (Jest summary format)
13
+ - Prevents matching test descriptions like "Brake Tests: Critical dogfooding scenarios"
14
+ - TAF Receipt now works end-to-end in GitHub Actions CI โœ…
15
+
16
+ ### Changed
17
+ - Pattern: `/Tests:\s+(.+?\d+\s+total)/im` (more specific than previous `/Tests:\s*(.+?)/`)
18
+
19
+ ## [2.0.3] - 2026-02-17
20
+
21
+ ### Added
22
+ - Debug logging to diagnose parser failures
23
+ - Shows sample of summary line if found, or last 20 lines if not found
24
+ - Revealed root cause: parser was matching test descriptions instead of Jest summary
25
+
26
+ ## [2.0.2] - 2026-02-17
27
+
28
+ ### Fixed
29
+ - **Fixed action.yml bundle path** - now points to `dist/index.js` (correct build output location)
30
+ - Previous versions pointed to `dist/bundle/index.js` which caused "Cannot find module" errors
31
+
32
+ ## [2.0.1] - 2026-02-17
33
+
34
+ ### Fixed
35
+ - Attempted bundle location fix (incomplete - see v2.0.2)
36
+
37
+ ## [2.0.0] - 2026-02-17
38
+
39
+ ### Changed
40
+ - **ARCHITECTURAL REDESIGN: Pre-capture pattern** ๐ŸŽฏ
41
+ - Separate test execution from receipt generation
42
+ - Step 1: Run tests in normal shell with output redirect (`npm test 2>&1 | tee test-output.txt`)
43
+ - Step 2: Read file and generate receipt
44
+ - **Breaking change:** Replaces `test-command` input with `test-output-file` input
45
+
46
+ ### Why
47
+ - GitHub Actions execution context corruption after `@actions/exec.getExecOutput()`
48
+ - ALL logging and filesystem operations failed silently after subprocess execution
49
+ - Tested 19 different methods (console.log, console.error, fs.writeFileSync, etc.) - all failed
50
+ - No canary files found anywhere despite writing to 4 different locations
51
+ - Pre-capture pattern bypasses the problematic execution context entirely
52
+
53
+ ### Removed
54
+ - Removed 400+ lines of @actions/exec complexity
55
+ - Bundle size reduced by 11KB
56
+ - No more subprocess execution in receipt generation step
57
+
58
+ ### Migration
59
+ ```yaml
60
+ # OLD (v1.x):
61
+ - name: Generate TAF Receipt
62
+ uses: Wolfe-Jam/faf-taf-git@v1
63
+ with:
64
+ test-command: npm test
65
+
66
+ # NEW (v2.x):
67
+ - name: Run Tests and Capture Output
68
+ run: npm test 2>&1 | tee test-output.txt
69
+
70
+ - name: Generate TAF Receipt
71
+ uses: Wolfe-Jam/faf-taf-git@v2.0.4
72
+ with:
73
+ test-output-file: test-output.txt
74
+ ```
75
+
76
+ ## [1.2.2] - 2026-02-17
77
+
78
+ ### Added
79
+ - Multi-location canary file attempts (4 different paths)
80
+ - Result: NO files found anywhere - confirmed execution context corruption
81
+
82
+ ## [1.2.1] - 2026-02-17
83
+
84
+ ### Added
85
+ - Nuclear canary: Direct filesystem write after getExecOutput
86
+ - Result: File never created - filesystem operations completely fail
87
+
88
+ ## [1.2.0] - 2026-02-17
89
+
90
+ ### Added
91
+ - Direct console.error logging attempt
92
+ - Result: Still suppressed by GitHub Actions
93
+
94
+ ## [1.1.6] - 2026-02-17
95
+
96
+ ### Added
97
+ - Dual logging (core.info + console.log)
98
+ - Result: Both methods failed silently
99
+
100
+ ## [1.1.5] - 2026-02-17
101
+
102
+ ### Fixed
103
+ - JavaScript 'this' binding with arrow function wrapper
104
+ - Result: Not the issue - logging still failed
105
+
106
+ ## [1.1.4] - 2026-02-17
107
+
108
+ ### Added
109
+ - CHECKPOINT debug logs at multiple locations
110
+ - Result: Logs before getExecOutput worked, logs after failed
111
+
112
+ ## [1.1.3] - 2026-02-17
113
+
114
+ ### Added
115
+ - Unconditional debug logs (no conditionals)
116
+ - Result: Still no output in GitHub Actions
117
+
118
+ ## [1.1.2] - 2026-02-17
119
+
120
+ ### Changed
121
+ - Use `exec.getExecOutput()` instead of `exec.exec()` to capture stdout/stderr
122
+ - Result: Still failing - deeper execution context issue
123
+
124
+ ## [1.1.1] - 2026-02-17
125
+
126
+ ### Fixed
127
+ - Command parsing edge case (split "npm test" into executable + args)
128
+ - Result: Still failing - execution context corruption
129
+
130
+ ## [1.1.0] - 2026-02-17
131
+
132
+ ### Changed
133
+ - Switch from `child_process` to `@actions/exec` for GitHub Actions compatibility
134
+ - Result: Still failing - wrong function used
135
+
136
+ ## [1.0.9] - 2026-02-17
137
+
138
+ ### Added
139
+ - Write captured test output to /tmp/taf-debug-output.txt for inspection
140
+ - Enhanced debug logging to show last 10 lines when Tests: line not found
141
+
142
+ ## [1.0.8] - 2026-02-17
143
+
144
+ ### Fixed
145
+ - Improved Jest output parser robustness (handles carriage returns, multiple line endings, flexible pattern matching)
146
+ - Parser now tries multiple patterns to find test summary line
147
+ - Better handling of padded output from CI environments
148
+
149
+ ## [1.0.7] - 2026-02-17
150
+
151
+ ### Added
152
+ - Use core.info for GitHub Actions logging (console.log doesn't show in Actions)
153
+
154
+ ## [1.0.6] - 2026-02-17
155
+
156
+ ### Added
157
+ - Debug logging to troubleshoot Jest output parsing issues in CI
158
+
159
+ ## [1.0.5] - 2026-02-17
160
+
161
+ ### Fixed
162
+ - Rebuild action bundle with ANSI stripping fix (v1.0.4 had the code but not the bundle)
163
+
164
+ ## [1.0.4] - 2026-02-17
165
+
166
+ ### Fixed
167
+ - Strip ANSI color codes from Jest output before parsing (fixes CI parsing failures)
168
+ - Parser now handles Jest output with ANSI codes from GitHub Actions and other CI systems
169
+ - Case-insensitive matching for test status keywords (passed, failed, skipped, total)
170
+
171
+ ## [1.0.0] - 2025-10-28
172
+
173
+ ### Added
174
+ - Initial release of faf-taf-git
175
+ - Platform-agnostic TAF updater (works in ANY CI/CD)
176
+ - Jest parser with comprehensive format support
177
+ - Standalone CLI mode (`npx faf-taf-git`)
178
+ - GitHub Action wrapper (`uses: Wolfe-Jam/faf-taf-git@v1`)
179
+ - Auto-commit functionality for .taf updates
180
+ - MCP-portable TAF core operations
181
+
182
+ ### Architecture
183
+ - Core + wrappers design for universal CI/CD support
184
+ - Thin GitHub Action wrapper (60 lines)
185
+ - Platform-agnostic core (277 lines)
186
+ - Pure functions, no CI-specific dependencies
187
+
188
+ ### Testing
189
+ - 7/7 unit tests passing
190
+ - Integration tested in faf-cli and claude-faf-mcp
191
+ - Jest parser handles all output formats
192
+
193
+ ### Documentation
194
+ - Comprehensive README with platform examples
195
+ - CONTRIBUTING guide for developers
196
+ - CLAUDE.md project DNA
197
+ - .faf and .taf files (Golden Triangle complete)
198
+
199
+ ### Platform Support
200
+ - GitHub Actions
201
+ - GitLab CI
202
+ - Bitbucket Pipelines
203
+ - Jenkins
204
+ - CircleCI
205
+ - Local development
206
+ - Any CI/CD that runs Node.js
207
+
208
+ [1.0.0]: https://github.com/Wolfe-Jam/faf-taf-git/releases/tag/v1.0.0
package/CLAUDE.md ADDED
@@ -0,0 +1,30 @@
1
+ # ๐ŸŽ๏ธ CLAUDE.md - faf-taf-git Persistent Context & Intelligence
2
+
3
+ ## PROJECT STATE: GOOD ๐Ÿš€
4
+ **Current Position:** Platform-agnostic TAF (Testing Activity Feed) updater - works in ANY CI/CD
5
+ **Tyre Compound:** ULTRASOFT C5 (Maximum Performance)
6
+
7
+ ---
8
+
9
+ ## ๐ŸŽจ CORE CONTEXT
10
+
11
+ ### Project Identity
12
+ - **Name:** faf-taf-git
13
+ - **Stack:** TypeScript
14
+ - **Quality:** F1-INSPIRED (Championship Performance)
15
+
16
+ ### Technical Architecture
17
+ - **What Building:** Platform-agnostic CLI + GitHub Action for TAF updates
18
+ - **Main Language:** TypeScript
19
+
20
+ ### ๐Ÿ“Š Context Quality Status
21
+ - **Overall Assessment:** Good
22
+ - **Last Updated:** 2026-02-17
23
+
24
+ ---
25
+
26
+ **STATUS: BI-SYNC ACTIVE ๐Ÿ”— - Synchronized with .faf context!**
27
+
28
+ *Last Sync: 2026-02-17T20:14:09.496Z*
29
+ *Sync Engine: F1-Inspired Software Engineering*
30
+ *๐ŸŽ๏ธโšก๏ธ_championship_sync*