cfsa-antigravity 2.0.0 → 2.2.0

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 (116) hide show
  1. package/README.md +14 -0
  2. package/package.json +1 -1
  3. package/template/.agent/instructions/commands.md +8 -32
  4. package/template/.agent/instructions/example.md +21 -0
  5. package/template/.agent/instructions/patterns.md +3 -3
  6. package/template/.agent/instructions/tech-stack.md +71 -23
  7. package/template/.agent/instructions/workflow.md +12 -1
  8. package/template/.agent/rules/completion-checklist.md +6 -0
  9. package/template/.agent/rules/security-first.md +3 -3
  10. package/template/.agent/rules/vertical-slices.md +1 -1
  11. package/template/.agent/skill-library/MANIFEST.md +6 -0
  12. package/template/.agent/skill-library/stack/devops/git-advanced/SKILL.md +972 -0
  13. package/template/.agent/skill-library/stack/devops/git-workflow/SKILL.md +420 -0
  14. package/template/.agent/skills/api-versioning/SKILL.md +44 -298
  15. package/template/.agent/skills/api-versioning/references/typescript.md +157 -0
  16. package/template/.agent/skills/architecture-mapping/SKILL.md +13 -13
  17. package/template/.agent/skills/bootstrap-agents/SKILL.md +151 -152
  18. package/template/.agent/skills/clean-code/SKILL.md +64 -118
  19. package/template/.agent/skills/clean-code/references/typescript.md +126 -0
  20. package/template/.agent/skills/database-schema-design/SKILL.md +93 -317
  21. package/template/.agent/skills/database-schema-design/references/relational.md +228 -0
  22. package/template/.agent/skills/error-handling-patterns/SKILL.md +62 -557
  23. package/template/.agent/skills/error-handling-patterns/references/go.md +162 -0
  24. package/template/.agent/skills/error-handling-patterns/references/python.md +262 -0
  25. package/template/.agent/skills/error-handling-patterns/references/rust.md +112 -0
  26. package/template/.agent/skills/error-handling-patterns/references/typescript.md +178 -0
  27. package/template/.agent/skills/idea-extraction/SKILL.md +322 -224
  28. package/template/.agent/skills/logging-best-practices/SKILL.md +108 -767
  29. package/template/.agent/skills/logging-best-practices/references/go.md +49 -0
  30. package/template/.agent/skills/logging-best-practices/references/python.md +52 -0
  31. package/template/.agent/skills/logging-best-practices/references/typescript.md +215 -0
  32. package/template/.agent/skills/migration-management/SKILL.md +127 -311
  33. package/template/.agent/skills/migration-management/references/relational.md +214 -0
  34. package/template/.agent/skills/parallel-feature-development/SKILL.md +34 -43
  35. package/template/.agent/skills/pipeline-rubrics/references/be-rubric.md +1 -1
  36. package/template/.agent/skills/pipeline-rubrics/references/ia-rubric.md +2 -2
  37. package/template/.agent/skills/pipeline-rubrics/references/scoring.md +1 -1
  38. package/template/.agent/skills/pipeline-rubrics/references/vision-rubric.md +2 -1
  39. package/template/.agent/skills/prd-templates/SKILL.md +23 -6
  40. package/template/.agent/skills/prd-templates/references/be-spec-template.md +2 -2
  41. package/template/.agent/skills/prd-templates/references/decomposition-templates.md +2 -2
  42. package/template/.agent/skills/prd-templates/references/engineering-standards-template.md +2 -0
  43. package/template/.agent/skills/prd-templates/references/fe-spec-template.md +1 -1
  44. package/template/.agent/skills/prd-templates/references/fractal-cx-template.md +58 -0
  45. package/template/.agent/skills/prd-templates/references/fractal-feature-template.md +93 -0
  46. package/template/.agent/skills/prd-templates/references/fractal-node-index-template.md +55 -0
  47. package/template/.agent/skills/prd-templates/references/ideation-crosscut-template.md +26 -47
  48. package/template/.agent/skills/prd-templates/references/ideation-index-template.md +47 -31
  49. package/template/.agent/skills/prd-templates/references/operational-templates.md +1 -1
  50. package/template/.agent/skills/prd-templates/references/placeholder-workflow-mapping.md +50 -21
  51. package/template/.agent/skills/prd-templates/references/skill-loading-protocol.md +32 -0
  52. package/template/.agent/skills/prd-templates/references/slice-completion-gates.md +29 -0
  53. package/template/.agent/skills/prd-templates/references/spec-coverage-sweep.md +3 -3
  54. package/template/.agent/skills/prd-templates/references/tdd-testing-policy.md +39 -0
  55. package/template/.agent/skills/prd-templates/references/vision-template.md +8 -8
  56. package/template/.agent/skills/regex-patterns/SKILL.md +122 -540
  57. package/template/.agent/skills/regex-patterns/references/go.md +44 -0
  58. package/template/.agent/skills/regex-patterns/references/javascript.md +63 -0
  59. package/template/.agent/skills/regex-patterns/references/python.md +77 -0
  60. package/template/.agent/skills/regex-patterns/references/rust.md +43 -0
  61. package/template/.agent/skills/resolve-ambiguity/SKILL.md +1 -1
  62. package/template/.agent/skills/session-continuity/SKILL.md +11 -9
  63. package/template/.agent/skills/session-continuity/protocols/02-progress-generation.md +2 -2
  64. package/template/.agent/skills/session-continuity/protocols/04-pattern-extraction.md +1 -1
  65. package/template/.agent/skills/session-continuity/protocols/05-session-close.md +1 -1
  66. package/template/.agent/skills/session-continuity/protocols/09-parallel-claim.md +1 -1
  67. package/template/.agent/skills/session-continuity/protocols/10-placeholder-verification-gate.md +57 -78
  68. package/template/.agent/skills/session-continuity/protocols/11-parallel-synthesis.md +1 -1
  69. package/template/.agent/skills/spec-writing/SKILL.md +1 -1
  70. package/template/.agent/skills/tdd-workflow/SKILL.md +94 -317
  71. package/template/.agent/skills/tdd-workflow/references/typescript.md +231 -0
  72. package/template/.agent/skills/testing-strategist/SKILL.md +74 -687
  73. package/template/.agent/skills/testing-strategist/references/typescript.md +328 -0
  74. package/template/.agent/skills/workflow-automation/SKILL.md +62 -154
  75. package/template/.agent/skills/workflow-automation/references/inngest.md +88 -0
  76. package/template/.agent/skills/workflow-automation/references/temporal.md +64 -0
  77. package/template/.agent/workflows/bootstrap-agents-fill.md +85 -143
  78. package/template/.agent/workflows/bootstrap-agents-provision.md +90 -107
  79. package/template/.agent/workflows/create-prd-architecture.md +23 -16
  80. package/template/.agent/workflows/create-prd-compile.md +11 -12
  81. package/template/.agent/workflows/create-prd-design-system.md +1 -1
  82. package/template/.agent/workflows/create-prd-security.md +9 -11
  83. package/template/.agent/workflows/create-prd-stack.md +10 -4
  84. package/template/.agent/workflows/create-prd.md +9 -9
  85. package/template/.agent/workflows/decompose-architecture-structure.md +4 -6
  86. package/template/.agent/workflows/decompose-architecture-validate.md +18 -1
  87. package/template/.agent/workflows/decompose-architecture.md +18 -3
  88. package/template/.agent/workflows/evolve-contract.md +11 -11
  89. package/template/.agent/workflows/evolve-feature-classify.md +14 -6
  90. package/template/.agent/workflows/ideate-discover.md +72 -107
  91. package/template/.agent/workflows/ideate-extract.md +84 -63
  92. package/template/.agent/workflows/ideate-validate.md +26 -22
  93. package/template/.agent/workflows/ideate.md +9 -9
  94. package/template/.agent/workflows/implement-slice-setup.md +25 -23
  95. package/template/.agent/workflows/implement-slice-tdd.md +73 -89
  96. package/template/.agent/workflows/implement-slice.md +4 -4
  97. package/template/.agent/workflows/plan-phase-preflight.md +6 -2
  98. package/template/.agent/workflows/plan-phase-write.md +6 -8
  99. package/template/.agent/workflows/remediate-pipeline-assess.md +2 -1
  100. package/template/.agent/workflows/resolve-ambiguity.md +2 -2
  101. package/template/.agent/workflows/update-architecture-map.md +22 -5
  102. package/template/.agent/workflows/validate-phase-quality.md +155 -0
  103. package/template/.agent/workflows/validate-phase-readiness.md +167 -0
  104. package/template/.agent/workflows/validate-phase.md +19 -157
  105. package/template/.agent/workflows/verify-infrastructure.md +10 -10
  106. package/template/.agent/workflows/write-architecture-spec-design.md +23 -14
  107. package/template/.agent/workflows/write-be-spec-classify.md +25 -21
  108. package/template/.agent/workflows/write-be-spec.md +1 -1
  109. package/template/.agent/workflows/write-fe-spec-classify.md +6 -12
  110. package/template/.agent/workflows/write-fe-spec-write.md +1 -1
  111. package/template/AGENTS.md +6 -2
  112. package/template/GEMINI.md +5 -3
  113. package/template/docs/README.md +10 -10
  114. package/template/docs/kit-architecture.md +126 -33
  115. package/template/docs/plans/ideation/README.md +8 -3
  116. package/template/.agent/skills/prd-templates/references/ideation-domain-template.md +0 -55
@@ -0,0 +1,49 @@
1
+ # Go Logging Patterns
2
+
3
+ Language-specific patterns for the `logging-best-practices` skill. Read `SKILL.md` first for universal methodology.
4
+
5
+ ---
6
+
7
+ ## Libraries
8
+
9
+ | Library | Use Case |
10
+ |---------|----------|
11
+ | **zap** | High-performance structured logging |
12
+ | **zerolog** | Zero-allocation JSON logger |
13
+
14
+ ## zap Setup
15
+
16
+ ```go
17
+ package main
18
+
19
+ import "go.uber.org/zap"
20
+
21
+ func main() {
22
+ // Production config (JSON output)
23
+ logger, _ := zap.NewProduction()
24
+ defer logger.Sync()
25
+
26
+ // Development config (human-readable)
27
+ // logger, _ := zap.NewDevelopment()
28
+
29
+ logger.Info("User created",
30
+ zap.String("userId", user.ID),
31
+ zap.String("email", user.Email),
32
+ zap.String("requestId", req.ID),
33
+ )
34
+
35
+ logger.Error("Payment processing failed",
36
+ zap.Error(err),
37
+ zap.String("orderId", order.ID),
38
+ zap.Float64("amount", order.Total),
39
+ zap.String("userId", user.ID),
40
+ )
41
+
42
+ // Sugared logger for convenience (slightly slower)
43
+ sugar := logger.Sugar()
44
+ sugar.Infow("User login",
45
+ "userId", user.ID,
46
+ "ip", req.IP,
47
+ )
48
+ }
49
+ ```
@@ -0,0 +1,52 @@
1
+ # Python Logging Patterns
2
+
3
+ Language-specific patterns for the `logging-best-practices` skill. Read `SKILL.md` first for universal methodology.
4
+
5
+ ---
6
+
7
+ ## Libraries
8
+
9
+ | Library | Use Case |
10
+ |---------|----------|
11
+ | **structlog** | Structured logging with processors |
12
+ | **logging** | Standard library (structlog wraps it) |
13
+
14
+ ## structlog Setup
15
+
16
+ ```python
17
+ import structlog
18
+ import logging
19
+
20
+ structlog.configure(
21
+ processors=[
22
+ structlog.stdlib.filter_by_level,
23
+ structlog.stdlib.add_logger_name,
24
+ structlog.stdlib.add_log_level,
25
+ structlog.stdlib.PositionalArgumentsFormatter(),
26
+ structlog.processors.TimeStamper(fmt="iso"),
27
+ structlog.processors.StackInfoRenderer(),
28
+ structlog.processors.format_exc_info,
29
+ structlog.processors.UnicodeDecoder(),
30
+ structlog.processors.JSONRenderer()
31
+ ],
32
+ context_class=dict,
33
+ logger_factory=structlog.stdlib.LoggerFactory(),
34
+ cache_logger_on_first_use=True,
35
+ )
36
+
37
+ logger = structlog.get_logger()
38
+
39
+ # Usage
40
+ logger.info("user_created",
41
+ user_id=user.id,
42
+ email=user.email,
43
+ request_id=request.id
44
+ )
45
+
46
+ logger.error("payment_failed",
47
+ error=str(error),
48
+ order_id=order.id,
49
+ amount=order.total,
50
+ user_id=user.id
51
+ )
52
+ ```
@@ -0,0 +1,215 @@
1
+ # TypeScript Logging Patterns
2
+
3
+ Language-specific patterns for the `logging-best-practices` skill. Read `SKILL.md` first for universal methodology.
4
+
5
+ ---
6
+
7
+ ## Libraries
8
+
9
+ | Library | Use Case |
10
+ |---------|----------|
11
+ | **Winston** | Versatile, multi-transport, production-ready |
12
+ | **Pino** | High-performance JSON logger |
13
+ | **OpenTelemetry SDK** | Distributed tracing |
14
+
15
+ ## Winston Setup
16
+
17
+ ```typescript
18
+ import winston from 'winston';
19
+
20
+ const logger = winston.createLogger({
21
+ level: process.env.LOG_LEVEL || 'info',
22
+ format: winston.format.combine(
23
+ winston.format.timestamp(),
24
+ winston.format.errors({ stack: true }),
25
+ winston.format.json()
26
+ ),
27
+ defaultMeta: {
28
+ service: 'user-service',
29
+ environment: process.env.NODE_ENV
30
+ },
31
+ transports: [
32
+ new winston.transports.Console({
33
+ format: winston.format.combine(
34
+ winston.format.colorize(),
35
+ winston.format.simple()
36
+ )
37
+ }),
38
+ new winston.transports.File({
39
+ filename: 'logs/error.log',
40
+ level: 'error',
41
+ maxsize: 5242880, maxFiles: 5
42
+ }),
43
+ new winston.transports.File({
44
+ filename: 'logs/combined.log',
45
+ maxsize: 5242880, maxFiles: 5
46
+ })
47
+ ]
48
+ });
49
+
50
+ logger.info('User created', { userId: user.id, requestId: req.id });
51
+ logger.error('Payment failed', { error: error.message, stack: error.stack, orderId: order.id });
52
+ ```
53
+
54
+ ## Request Context Middleware
55
+
56
+ ```typescript
57
+ import { v4 as uuidv4 } from 'uuid';
58
+ import { AsyncLocalStorage } from 'async_hooks';
59
+
60
+ const asyncLocalStorage = new AsyncLocalStorage();
61
+
62
+ export function requestLogger(req, res, next) {
63
+ const requestId = req.headers['x-request-id'] || uuidv4();
64
+ const context = {
65
+ requestId, method: req.method, path: req.path,
66
+ ip: req.ip, userId: req.user?.id
67
+ };
68
+
69
+ asyncLocalStorage.run(context, () => {
70
+ logger.info('Request started', context);
71
+ res.on('finish', () => {
72
+ logger.info('Request completed', {
73
+ ...context, statusCode: res.statusCode,
74
+ duration: Date.now() - req.startTime
75
+ });
76
+ });
77
+ req.startTime = Date.now();
78
+ next();
79
+ });
80
+ }
81
+
82
+ export function getLogger() {
83
+ const context = asyncLocalStorage.getStore();
84
+ return {
85
+ info: (message: string, meta?: object) =>
86
+ logger.info(message, { ...context, ...meta }),
87
+ error: (message: string, error: Error, meta?: object) =>
88
+ logger.error(message, { ...context, error, ...meta }),
89
+ warn: (message: string, meta?: object) =>
90
+ logger.warn(message, { ...context, ...meta }),
91
+ debug: (message: string, meta?: object) =>
92
+ logger.debug(message, { ...context, ...meta })
93
+ };
94
+ }
95
+ ```
96
+
97
+ ## PII Sanitization
98
+
99
+ ```typescript
100
+ const SENSITIVE_FIELDS = ['password', 'token', 'apiKey', 'ssn', 'creditCard', 'email', 'phone'];
101
+
102
+ function sanitize(obj: any): any {
103
+ if (typeof obj !== 'object' || obj === null) return obj;
104
+ if (Array.isArray(obj)) return obj.map(sanitize);
105
+
106
+ const sanitized = {};
107
+ for (const [key, value] of Object.entries(obj)) {
108
+ if (SENSITIVE_FIELDS.some(f => key.toLowerCase().includes(f.toLowerCase()))) {
109
+ sanitized[key] = '[REDACTED]';
110
+ } else if (typeof value === 'object') {
111
+ sanitized[key] = sanitize(value);
112
+ } else {
113
+ sanitized[key] = value;
114
+ }
115
+ }
116
+ return sanitized;
117
+ }
118
+
119
+ function maskEmail(email: string): string {
120
+ const [local, domain] = email.split('@');
121
+ return `${local[0]}${'*'.repeat(local.length - 2)}${local[local.length - 1]}@${domain}`;
122
+ }
123
+ ```
124
+
125
+ ## Performance Logger
126
+
127
+ ```typescript
128
+ class PerformanceLogger {
129
+ private timers = new Map<string, number>();
130
+
131
+ start(op: string) { this.timers.set(op, Date.now()); }
132
+
133
+ end(op: string, meta?: object) {
134
+ const start = this.timers.get(op);
135
+ if (!start) return;
136
+ const duration = Date.now() - start;
137
+ this.timers.delete(op);
138
+ logger.info(`Performance: ${op}`, { operation: op, durationMs: duration, ...meta });
139
+ if (duration > 1000) {
140
+ logger.warn(`Slow operation: ${op}`, { operation: op, durationMs: duration, threshold: 1000, ...meta });
141
+ }
142
+ }
143
+
144
+ async measure<T>(op: string, fn: () => Promise<T>, meta?: object): Promise<T> {
145
+ this.start(op);
146
+ try { return await fn(); } finally { this.end(op, meta); }
147
+ }
148
+ }
149
+ ```
150
+
151
+ ## Distributed Tracing (OpenTelemetry)
152
+
153
+ ```typescript
154
+ import opentelemetry from '@opentelemetry/api';
155
+ import { NodeTracerProvider } from '@opentelemetry/node';
156
+ import { SimpleSpanProcessor } from '@opentelemetry/tracing';
157
+ import { JaegerExporter } from '@opentelemetry/exporter-jaeger';
158
+
159
+ const provider = new NodeTracerProvider();
160
+ provider.addSpanProcessor(
161
+ new SimpleSpanProcessor(new JaegerExporter({
162
+ serviceName: 'user-service',
163
+ endpoint: 'http://jaeger:14268/api/traces'
164
+ }))
165
+ );
166
+ provider.register();
167
+
168
+ const tracer = opentelemetry.trace.getTracer('user-service');
169
+
170
+ app.get('/api/users/:id', async (req, res) => {
171
+ const span = tracer.startSpan('get-user', {
172
+ attributes: { 'http.method': req.method, 'http.url': req.url }
173
+ });
174
+ try {
175
+ const user = await fetchUser(req.params.id);
176
+ span.setStatus({ code: opentelemetry.SpanStatusCode.OK });
177
+ res.json(user);
178
+ } catch (error) {
179
+ span.setStatus({ code: opentelemetry.SpanStatusCode.ERROR, message: error.message });
180
+ res.status(500).json({ error: 'Internal server error' });
181
+ } finally {
182
+ span.end();
183
+ }
184
+ });
185
+ ```
186
+
187
+ ## Centralized Logging (ELK + Winston)
188
+
189
+ ```typescript
190
+ import 'winston-logstash';
191
+
192
+ const elkLogger = winston.createLogger({
193
+ transports: [
194
+ new winston.transports.Logstash({
195
+ port: 5000, host: 'logstash',
196
+ node_name: 'user-service', max_connect_retries: -1
197
+ })
198
+ ]
199
+ });
200
+ ```
201
+
202
+ ## Log Sampling
203
+
204
+ ```typescript
205
+ class SamplingLogger {
206
+ constructor(private logger: Logger, private sampleRate = 0.1) {}
207
+
208
+ info(message: string, meta?: object) {
209
+ if (Math.random() < this.sampleRate) this.logger.info(message, meta);
210
+ }
211
+
212
+ warn(message: string, meta?: object) { this.logger.warn(message, meta); }
213
+ error(message: string, error: Error, meta?: object) { this.logger.error(message, error, meta); }
214
+ }
215
+ ```