@defai.digital/automatosx 12.8.7 → 13.1.3

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 (130) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +48 -754
  3. package/dist/bin.d.ts +8 -0
  4. package/dist/bin.d.ts.map +1 -0
  5. package/dist/bin.js +16 -0
  6. package/dist/bin.js.map +1 -0
  7. package/dist/index.d.ts +8 -2
  8. package/dist/index.d.ts.map +1 -0
  9. package/dist/index.js +7 -74239
  10. package/dist/index.js.map +1 -0
  11. package/package.json +35 -160
  12. package/.github/assets/ax-cli.png +0 -0
  13. package/.github/assets/axlogo.png +0 -0
  14. package/CHANGELOG.md +0 -81
  15. package/SECURITY.md +0 -173
  16. package/dist/mcp/index.d.ts +0 -2
  17. package/dist/mcp/index.js +0 -43627
  18. package/examples/AGENTS_INFO.md +0 -187
  19. package/examples/README.md +0 -434
  20. package/examples/abilities/accessibility.md +0 -115
  21. package/examples/abilities/api-design.md +0 -168
  22. package/examples/abilities/best-practices.md +0 -102
  23. package/examples/abilities/caching-strategy.md +0 -165
  24. package/examples/abilities/ci-cd.md +0 -61
  25. package/examples/abilities/clean-code.md +0 -398
  26. package/examples/abilities/code-generation.md +0 -333
  27. package/examples/abilities/code-review.md +0 -51
  28. package/examples/abilities/component-architecture.md +0 -112
  29. package/examples/abilities/content-creation.md +0 -97
  30. package/examples/abilities/data-modeling.md +0 -171
  31. package/examples/abilities/data-validation.md +0 -50
  32. package/examples/abilities/db-modeling.md +0 -167
  33. package/examples/abilities/debugging.md +0 -52
  34. package/examples/abilities/design-patterns.md +0 -437
  35. package/examples/abilities/design-system-implementation.md +0 -126
  36. package/examples/abilities/documentation.md +0 -54
  37. package/examples/abilities/etl-pipelines.md +0 -44
  38. package/examples/abilities/feasibility-study.md +0 -20
  39. package/examples/abilities/general-assistance.md +0 -26
  40. package/examples/abilities/idea-evaluation.md +0 -21
  41. package/examples/abilities/infra-as-code.md +0 -57
  42. package/examples/abilities/job-orchestration.md +0 -44
  43. package/examples/abilities/literature-review.md +0 -19
  44. package/examples/abilities/longform-report.md +0 -25
  45. package/examples/abilities/mathematical-reasoning.md +0 -170
  46. package/examples/abilities/observability.md +0 -61
  47. package/examples/abilities/orbital-mechanics.md +0 -50
  48. package/examples/abilities/our-architecture-decisions.md +0 -180
  49. package/examples/abilities/our-code-review-checklist.md +0 -149
  50. package/examples/abilities/our-coding-standards.md +0 -369
  51. package/examples/abilities/our-project-structure.md +0 -183
  52. package/examples/abilities/performance.md +0 -89
  53. package/examples/abilities/problem-solving.md +0 -50
  54. package/examples/abilities/propulsion-systems.md +0 -50
  55. package/examples/abilities/quantum-algorithm-design.md +0 -54
  56. package/examples/abilities/quantum-error-correction.md +0 -56
  57. package/examples/abilities/quantum-frameworks-transpilation.md +0 -53
  58. package/examples/abilities/quantum-noise-modeling.md +0 -58
  59. package/examples/abilities/refactoring.md +0 -223
  60. package/examples/abilities/release-strategy.md +0 -58
  61. package/examples/abilities/secrets-policy.md +0 -61
  62. package/examples/abilities/secure-coding-review.md +0 -60
  63. package/examples/abilities/software-architecture.md +0 -394
  64. package/examples/abilities/solid-principles.md +0 -341
  65. package/examples/abilities/sql-optimization.md +0 -84
  66. package/examples/abilities/state-management.md +0 -96
  67. package/examples/abilities/task-planning.md +0 -65
  68. package/examples/abilities/technical-writing.md +0 -77
  69. package/examples/abilities/telemetry-diagnostics.md +0 -51
  70. package/examples/abilities/testing.md +0 -56
  71. package/examples/abilities/threat-modeling.md +0 -58
  72. package/examples/abilities/troubleshooting.md +0 -80
  73. package/examples/abilities/typescript-zod-validation.md +0 -830
  74. package/examples/agents/AGENTS_INTEGRATION.md +0 -99
  75. package/examples/agents/aerospace-scientist.yaml +0 -159
  76. package/examples/agents/architecture.yaml +0 -244
  77. package/examples/agents/automatosx.config.json +0 -286
  78. package/examples/agents/backend.yaml +0 -141
  79. package/examples/agents/ceo.yaml +0 -105
  80. package/examples/agents/creative-marketer.yaml +0 -173
  81. package/examples/agents/cto.yaml +0 -118
  82. package/examples/agents/data-scientist.yaml +0 -200
  83. package/examples/agents/data.yaml +0 -106
  84. package/examples/agents/design.yaml +0 -115
  85. package/examples/agents/devops.yaml +0 -124
  86. package/examples/agents/frontend.yaml +0 -171
  87. package/examples/agents/fullstack.yaml +0 -172
  88. package/examples/agents/mobile.yaml +0 -185
  89. package/examples/agents/product.yaml +0 -103
  90. package/examples/agents/quality.yaml +0 -117
  91. package/examples/agents/quantum-engineer.yaml +0 -166
  92. package/examples/agents/researcher.yaml +0 -122
  93. package/examples/agents/security.yaml +0 -115
  94. package/examples/agents/standard.yaml +0 -214
  95. package/examples/agents/writer.yaml +0 -122
  96. package/examples/providers/README.md +0 -117
  97. package/examples/providers/claude/CLAUDE_INTEGRATION.md +0 -302
  98. package/examples/providers/claude/mcp/automatosx.json +0 -244
  99. package/examples/providers/codex/CODEX_INTEGRATION.md +0 -593
  100. package/examples/providers/codex/README.md +0 -349
  101. package/examples/providers/codex/usage-examples.ts +0 -421
  102. package/examples/providers/gemini/GEMINI_INTEGRATION.md +0 -236
  103. package/examples/providers/gemini/README.md +0 -76
  104. package/examples/providers/openai-codex-example.ts +0 -421
  105. package/examples/pytorch_resnet50_training.py +0 -289
  106. package/examples/specs/automatosx-release.ax.yaml +0 -380
  107. package/examples/specs/enterprise.ax.yaml +0 -121
  108. package/examples/specs/enterprise.yaml.mustache +0 -121
  109. package/examples/specs/government.ax.yaml +0 -148
  110. package/examples/specs/government.yaml.mustache +0 -148
  111. package/examples/specs/minimal.ax.yaml +0 -21
  112. package/examples/specs/minimal.yaml.mustache +0 -21
  113. package/examples/teams/business.yaml +0 -56
  114. package/examples/teams/core.yaml +0 -60
  115. package/examples/teams/design.yaml +0 -58
  116. package/examples/teams/engineering.yaml +0 -69
  117. package/examples/teams/research.yaml +0 -56
  118. package/examples/use-cases/01-web-app-development.md +0 -374
  119. package/examples/workflows/analyst.yaml +0 -60
  120. package/examples/workflows/assistant.yaml +0 -48
  121. package/examples/workflows/basic-agent.yaml +0 -28
  122. package/examples/workflows/code-reviewer.yaml +0 -52
  123. package/examples/workflows/debugger.yaml +0 -63
  124. package/examples/workflows/designer.yaml +0 -69
  125. package/examples/workflows/developer.yaml +0 -60
  126. package/examples/workflows/fullstack-developer.yaml +0 -395
  127. package/examples/workflows/qa-specialist.yaml +0 -71
  128. package/schema/ability-metadata.json +0 -21
  129. package/schema/config.json +0 -703
  130. package/schema/spec-schema.json +0 -608
@@ -1,437 +0,0 @@
1
- # Design Patterns Ability
2
-
3
- Expert knowledge and application of software design patterns from the Gang of Four and beyond.
4
-
5
- ## Overview
6
-
7
- Design patterns are proven solutions to common software design problems. They provide a shared vocabulary and best practices for object-oriented design.
8
-
9
- ## Creational Patterns
10
-
11
- Patterns for object creation mechanisms.
12
-
13
- ### Factory Method
14
-
15
- **Problem**: Need to create objects without specifying exact class
16
- **Solution**: Define interface for creating objects, let subclasses decide which class to instantiate
17
-
18
- **When to use**:
19
- - Class can't anticipate the type of objects it needs to create
20
- - Subclasses specify the objects to create
21
- - Delegate creation responsibility to helper subclasses
22
-
23
- **Example**:
24
- ```typescript
25
- interface Logger {
26
- log(message: string): void;
27
- }
28
-
29
- abstract class LoggerFactory {
30
- abstract createLogger(): Logger;
31
-
32
- logMessage(message: string) {
33
- const logger = this.createLogger();
34
- logger.log(message);
35
- }
36
- }
37
-
38
- class ConsoleLoggerFactory extends LoggerFactory {
39
- createLogger(): Logger {
40
- return new ConsoleLogger();
41
- }
42
- }
43
-
44
- class FileLoggerFactory extends LoggerFactory {
45
- createLogger(): Logger {
46
- return new FileLogger();
47
- }
48
- }
49
- ```
50
-
51
- ### Abstract Factory
52
-
53
- **Problem**: Create families of related objects without specifying concrete classes
54
- **Solution**: Provide interface for creating families of related objects
55
-
56
- **When to use**:
57
- - System should be independent of how products are created
58
- - System should be configured with one of multiple families of products
59
- - Family of related products should be used together
60
-
61
- ### Singleton
62
-
63
- **Problem**: Ensure a class has only one instance with global access point
64
- **Solution**: Private constructor, static instance method
65
-
66
- **When to use**:
67
- - Exactly one instance needed (configuration, connection pool)
68
- - Controlled access to sole instance required
69
- - Instance should be extensible by subclassing
70
-
71
- **Caution**: Often considered anti-pattern; prefer dependency injection
72
-
73
- **Example**:
74
- ```typescript
75
- class DatabaseConnection {
76
- private static instance: DatabaseConnection;
77
- private constructor() { }
78
-
79
- static getInstance(): DatabaseConnection {
80
- if (!DatabaseConnection.instance) {
81
- DatabaseConnection.instance = new DatabaseConnection();
82
- }
83
- return DatabaseConnection.instance;
84
- }
85
- }
86
- ```
87
-
88
- ### Builder
89
-
90
- **Problem**: Construct complex objects step by step
91
- **Solution**: Separate construction from representation
92
-
93
- **When to use**:
94
- - Object creation involves many steps
95
- - Same construction process should create different representations
96
- - Avoid telescoping constructors
97
-
98
- **Example**:
99
- ```typescript
100
- class QueryBuilder {
101
- private query = '';
102
-
103
- select(fields: string[]): this {
104
- this.query = `SELECT ${fields.join(', ')}`;
105
- return this;
106
- }
107
-
108
- from(table: string): this {
109
- this.query += ` FROM ${table}`;
110
- return this;
111
- }
112
-
113
- where(condition: string): this {
114
- this.query += ` WHERE ${condition}`;
115
- return this;
116
- }
117
-
118
- build(): string {
119
- return this.query;
120
- }
121
- }
122
-
123
- const query = new QueryBuilder()
124
- .select(['name', 'email'])
125
- .from('users')
126
- .where('age > 18')
127
- .build();
128
- ```
129
-
130
- ### Prototype
131
-
132
- **Problem**: Create new objects by copying existing ones
133
- **Solution**: Specify kinds of objects using prototypical instance
134
-
135
- ## Structural Patterns
136
-
137
- Patterns for composing classes and objects.
138
-
139
- ### Adapter
140
-
141
- **Problem**: Make incompatible interfaces work together
142
- **Solution**: Convert interface of class into another interface clients expect
143
-
144
- **When to use**:
145
- - Use existing class with incompatible interface
146
- - Create reusable class cooperating with unrelated classes
147
- - Need to use several existing subclasses with incompatible interfaces
148
-
149
- **Example**:
150
- ```typescript
151
- // Legacy API
152
- class LegacyLogger {
153
- logMessage(msg: string) { console.log(msg); }
154
- }
155
-
156
- // New interface
157
- interface ModernLogger {
158
- log(level: string, message: string): void;
159
- }
160
-
161
- // Adapter
162
- class LoggerAdapter implements ModernLogger {
163
- constructor(private legacy: LegacyLogger) {}
164
-
165
- log(level: string, message: string) {
166
- this.legacy.logMessage(`[${level}] ${message}`);
167
- }
168
- }
169
- ```
170
-
171
- ### Decorator
172
-
173
- **Problem**: Add responsibilities to objects dynamically
174
- **Solution**: Wrap object in decorator that adds behavior
175
-
176
- **When to use**:
177
- - Add responsibilities to individual objects dynamically
178
- - Responsibilities can be withdrawn
179
- - Extension by subclassing is impractical
180
-
181
- **Example**:
182
- ```typescript
183
- interface Coffee {
184
- cost(): number;
185
- description(): string;
186
- }
187
-
188
- class SimpleCoffee implements Coffee {
189
- cost() { return 5; }
190
- description() { return 'Simple coffee'; }
191
- }
192
-
193
- class MilkDecorator implements Coffee {
194
- constructor(private coffee: Coffee) {}
195
- cost() { return this.coffee.cost() + 2; }
196
- description() { return this.coffee.description() + ', milk'; }
197
- }
198
-
199
- class SugarDecorator implements Coffee {
200
- constructor(private coffee: Coffee) {}
201
- cost() { return this.coffee.cost() + 1; }
202
- description() { return this.coffee.description() + ', sugar'; }
203
- }
204
-
205
- const coffee = new SugarDecorator(new MilkDecorator(new SimpleCoffee()));
206
- // Cost: 8, Description: "Simple coffee, milk, sugar"
207
- ```
208
-
209
- ### Facade
210
-
211
- **Problem**: Provide simplified interface to complex subsystem
212
- **Solution**: Higher-level interface that makes subsystem easier to use
213
-
214
- **When to use**:
215
- - Simplify complex subsystem
216
- - Layer your subsystems
217
- - Reduce coupling between subsystems
218
-
219
- ### Proxy
220
-
221
- **Problem**: Provide surrogate or placeholder for another object
222
- **Solution**: Control access to the original object
223
-
224
- **When to use**:
225
- - Lazy initialization (virtual proxy)
226
- - Access control (protection proxy)
227
- - Remote object access (remote proxy)
228
- - Caching (cache proxy)
229
-
230
- ### Composite
231
-
232
- **Problem**: Treat individual objects and compositions uniformly
233
- **Solution**: Compose objects into tree structures
234
-
235
- ## Behavioral Patterns
236
-
237
- Patterns for communication between objects.
238
-
239
- ### Strategy
240
-
241
- **Problem**: Define family of algorithms, make them interchangeable
242
- **Solution**: Encapsulate each algorithm, make them interchangeable
243
-
244
- **When to use**:
245
- - Many related classes differ only in behavior
246
- - Need different variants of algorithm
247
- - Algorithm uses data clients shouldn't know about
248
- - Class defines many behaviors as conditional statements
249
-
250
- **Example**:
251
- ```typescript
252
- interface PaymentStrategy {
253
- pay(amount: number): void;
254
- }
255
-
256
- class CreditCardPayment implements PaymentStrategy {
257
- pay(amount: number) {
258
- console.log(`Paid ${amount} with credit card`);
259
- }
260
- }
261
-
262
- class PayPalPayment implements PaymentStrategy {
263
- pay(amount: number) {
264
- console.log(`Paid ${amount} with PayPal`);
265
- }
266
- }
267
-
268
- class ShoppingCart {
269
- constructor(private paymentStrategy: PaymentStrategy) {}
270
-
271
- checkout(amount: number) {
272
- this.paymentStrategy.pay(amount);
273
- }
274
- }
275
- ```
276
-
277
- ### Observer
278
-
279
- **Problem**: Define one-to-many dependency between objects
280
- **Solution**: When one object changes state, all dependents are notified
281
-
282
- **When to use**:
283
- - Change to one object requires changing others
284
- - Object should notify others without assumptions about who they are
285
- - Abstraction has two aspects, one dependent on the other
286
-
287
- **Example**:
288
- ```typescript
289
- interface Observer {
290
- update(data: any): void;
291
- }
292
-
293
- class Subject {
294
- private observers: Observer[] = [];
295
-
296
- attach(observer: Observer) {
297
- this.observers.push(observer);
298
- }
299
-
300
- notify(data: any) {
301
- this.observers.forEach(obs => obs.update(data));
302
- }
303
- }
304
-
305
- class DataLogger implements Observer {
306
- update(data: any) {
307
- console.log('Data logged:', data);
308
- }
309
- }
310
-
311
- class DataDisplay implements Observer {
312
- update(data: any) {
313
- console.log('Data displayed:', data);
314
- }
315
- }
316
- ```
317
-
318
- ### Command
319
-
320
- **Problem**: Encapsulate request as object
321
- **Solution**: Parameterize clients with different requests, queue/log requests
322
-
323
- **When to use**:
324
- - Parameterize objects with actions
325
- - Specify, queue, and execute requests at different times
326
- - Support undo
327
- - Support logging changes
328
-
329
- ### Template Method
330
-
331
- **Problem**: Define skeleton of algorithm, let subclasses override steps
332
- **Solution**: Define algorithm structure, defer some steps to subclasses
333
-
334
- **When to use**:
335
- - Implement invariant parts of algorithm once
336
- - Common behavior among subclasses should be factored
337
- - Control subclass extensions
338
-
339
- ### Iterator
340
-
341
- **Problem**: Access elements of aggregate object sequentially without exposing representation
342
- **Solution**: Provide way to access elements without exposing structure
343
-
344
- ### State
345
-
346
- **Problem**: Allow object to alter behavior when internal state changes
347
- **Solution**: Object appears to change its class
348
-
349
- ### Chain of Responsibility
350
-
351
- **Problem**: Avoid coupling sender to receiver
352
- **Solution**: Give more than one object chance to handle request
353
-
354
- ## Pattern Selection Guide
355
-
356
- ### Choosing the Right Pattern
357
-
358
- **Creating Objects:**
359
- - Simple object creation → Factory Method
360
- - Family of related objects → Abstract Factory
361
- - Complex construction → Builder
362
- - Copy existing object → Prototype
363
- - Single instance → Singleton
364
-
365
- **Structuring Code:**
366
- - Incompatible interfaces → Adapter
367
- - Add behavior dynamically → Decorator
368
- - Simplify complex system → Facade
369
- - Control access → Proxy
370
- - Tree structure → Composite
371
-
372
- **Defining Behavior:**
373
- - Interchangeable algorithms → Strategy
374
- - Notify multiple objects → Observer
375
- - Encapsulate requests → Command
376
- - Algorithm skeleton → Template Method
377
- - Sequential access → Iterator
378
- - State-based behavior → State
379
- - Chain of handlers → Chain of Responsibility
380
-
381
- ## Anti-patterns to Avoid
382
-
383
- ### Pattern Overuse
384
- - Don't force patterns where they don't fit
385
- - Simpler solutions often better
386
- - Patterns add complexity and abstraction
387
-
388
- ### Singleton Abuse
389
- - Global state is problematic
390
- - Tight coupling
391
- - Difficult to test
392
- - Consider dependency injection instead
393
-
394
- ### God Object
395
- - Object that knows/does too much
396
- - Violates Single Responsibility Principle
397
- - Hard to maintain and test
398
-
399
- ### Premature Optimization
400
- - Don't optimize before measuring
401
- - Pattern complexity should solve real problems
402
- - YAGNI (You Aren't Gonna Need It)
403
-
404
- ## Best Practices
405
-
406
- 1. **Understand the Problem First**
407
- - Identify the actual problem
408
- - Consider simpler solutions
409
- - Pattern should solve real need
410
-
411
- 2. **Know the Trade-offs**
412
- - Every pattern adds complexity
413
- - Balance flexibility vs. simplicity
414
- - Consider maintainability
415
-
416
- 3. **Use Patterns as Communication**
417
- - Shared vocabulary
418
- - Document intent
419
- - Aid team understanding
420
-
421
- 4. **Refactor to Patterns**
422
- - Don't design patterns upfront
423
- - Let patterns emerge
424
- - Refactor when pattern becomes clear
425
-
426
- 5. **Combine Patterns**
427
- - Patterns often work together
428
- - Strategy + Factory Method
429
- - Decorator + Composite
430
- - Observer + Mediator
431
-
432
- ## Further Reading
433
-
434
- - "Design Patterns: Elements of Reusable Object-Oriented Software" by Gang of Four
435
- - "Head First Design Patterns" by Freeman et al.
436
- - "Patterns of Enterprise Application Architecture" by Martin Fowler
437
- - "Refactoring to Patterns" by Joshua Kerievsky
@@ -1,126 +0,0 @@
1
- # Design System Implementation
2
-
3
- ## Overview
4
- Implement and maintain consistent design systems using tokens, components, and documentation. Ensure brand consistency and developer efficiency across the application.
5
-
6
- ## Core Concepts
7
-
8
- ### Design Tokens
9
- Centralized design decisions (colors, typography, spacing) as code.
10
-
11
- **Token Categories**:
12
- - Colors (primary, secondary, success, danger)
13
- - Spacing (xs, sm, md, lg, xl)
14
- - Typography (font families, sizes)
15
- - Breakpoints (mobile, tablet, desktop)
16
-
17
- ### Theme System
18
- - Light/Dark theme support
19
- - Consistent color schemes
20
- - Themeable components
21
- - Runtime theme switching
22
-
23
- ## Component Library Structure
24
-
25
- ```
26
- /design-system
27
- /tokens
28
- colors.ts
29
- spacing.ts
30
- typography.ts
31
- /components
32
- /Button
33
- Button.tsx
34
- Button.test.tsx
35
- Button.stories.tsx
36
- /Input
37
- /Card
38
- /hooks
39
- useTheme.ts
40
- /utils
41
- themed.ts
42
- ```
43
-
44
- ## Best Practices
45
-
46
- ### 1. Use Design Tokens
47
- - Reference tokens, not magic values
48
- - Maintain consistency across app
49
- - Single source of truth
50
-
51
- ### 2. Variant System
52
- - Consistent variants (primary, secondary, ghost)
53
- - Size variants (sm, md, lg)
54
- - Type-safe props
55
-
56
- ### 3. Component Composition
57
- - Build complex components from simpler ones
58
- - Reusable building blocks
59
- - Clear component hierarchy
60
-
61
- ### 4. Accessibility First
62
- - Include ARIA attributes
63
- - Keyboard navigation
64
- - Screen reader support
65
- - Color contrast compliance
66
-
67
- ### 5. Responsive Design
68
- - Use responsive tokens
69
- - Breakpoint consistency
70
- - Mobile-first approach
71
-
72
- ### 6. Documentation
73
- - Storybook for components
74
- - Usage examples
75
- - Props documentation
76
- - Visual regression tests
77
-
78
- ## Do's ✅
79
-
80
- - Use design tokens consistently
81
- - Create variant systems for flexibility
82
- - Document all components in Storybook
83
- - Test accessibility requirements
84
- - Maintain component library structure
85
- - Version components properly
86
-
87
- ## Don'ts ❌
88
-
89
- ### Inconsistent Spacing
90
- Avoid random spacing values—use spacing scale
91
-
92
- ### Hardcoded Colors
93
- Use semantic color names from tokens
94
-
95
- ### Component Duplication
96
- Single component with variants > multiple implementations
97
-
98
- ### Missing Documentation
99
- Every component needs Storybook stories
100
-
101
- ## Component Checklist
102
-
103
- - [ ] Uses design tokens
104
- - [ ] Has variant system
105
- - [ ] TypeScript interfaces defined
106
- - [ ] Accessibility attributes included
107
- - [ ] Responsive design implemented
108
- - [ ] Storybook stories created
109
- - [ ] Unit tests written
110
- - [ ] Visual regression tests
111
- - [ ] Documentation complete
112
- - [ ] Breaking changes versioned
113
-
114
- ## Tools
115
-
116
- - **Storybook**: Component documentation and testing
117
- - **Styled Components / Tailwind**: Styling solutions
118
- - **Figma**: Design source of truth
119
- - **Chromatic**: Visual regression testing
120
-
121
- ## Resources
122
-
123
- - [Material Design System](https://m3.material.io/)
124
- - [Ant Design](https://ant.design/)
125
- - [Chakra UI](https://chakra-ui.com/)
126
- - [Radix UI](https://www.radix-ui.com/)
@@ -1,54 +0,0 @@
1
- # Documentation Ability
2
-
3
- Create clear, comprehensive, and useful documentation.
4
-
5
- ## Documentation Types
6
-
7
- 1. **API Documentation**
8
- - Function/method signatures
9
- - Parameters and return values
10
- - Usage examples
11
- - Error conditions
12
-
13
- 2. **README Files**
14
- - Project overview
15
- - Installation instructions
16
- - Quick start guide
17
- - Links to detailed docs
18
-
19
- 3. **User Guides**
20
- - Feature explanations
21
- - Step-by-step tutorials
22
- - Screenshots and diagrams
23
- - Troubleshooting section
24
-
25
- 4. **Technical Specifications**
26
- - Architecture overview
27
- - Design decisions
28
- - System requirements
29
- - API contracts
30
-
31
- 5. **Code Comments**
32
- - Explain why (not what)
33
- - Document complex logic
34
- - Add TODOs and FIXMEs
35
- - Use JSDoc/docstrings
36
-
37
- ## Writing Principles
38
-
39
- - **Clarity**: Use simple, direct language
40
- - **Completeness**: Cover all necessary information
41
- - **Accuracy**: Keep docs up to date
42
- - **Usability**: Structure for easy navigation
43
- - **Examples**: Show, don't just tell
44
-
45
- ## Documentation Checklist
46
-
47
- - [ ] Project purpose clear
48
- - [ ] Installation steps complete
49
- - [ ] Usage examples included
50
- - [ ] API documented
51
- - [ ] Configuration options explained
52
- - [ ] Troubleshooting guide provided
53
- - [ ] Links to related resources
54
- - [ ] Version/changelog maintained
@@ -1,44 +0,0 @@
1
- # ETL Pipelines
2
-
3
- Build robust Extract, Transform, Load pipelines for data integration. Handle incremental loading, error recovery, and monitoring.
4
-
5
- ## Do's ✅
6
-
7
- ```python
8
- # ✅ Good: Incremental loading
9
- last_sync = get_last_sync_timestamp()
10
- new_data = source.extract(where=f"updated_at > '{last_sync}'")
11
- transformed = transform(new_data)
12
- warehouse.upsert(transformed, key_columns=['id'])
13
-
14
- # ✅ Good: Idempotent operations
15
- warehouse.upsert(data, key_columns=['id'], update_columns=['name', 'updated_at'])
16
-
17
- # ✅ Good: Error handling with retry
18
- try:
19
- data = extract_from_api()
20
- load_to_warehouse(transform(data))
21
- except APIError as e:
22
- log_error(e)
23
- save_failed_batch(data) # Retry later
24
- ```
25
-
26
- ## Don'ts ❌
27
-
28
- ```python
29
- # ❌ Bad: Full table reload every time
30
- data = source.extract_all() # Millions of rows!
31
- warehouse.truncate()
32
- warehouse.insert(data)
33
-
34
- # ❌ Bad: No schema validation
35
- for row in data:
36
- warehouse.insert(row['id'], row['name']) # What if fields missing?
37
- ```
38
-
39
- ## Best Practices
40
- - Use orchestration tools (Airflow, Prefect, Dagster)
41
- - Implement data quality checks
42
- - Monitor pipeline SLAs
43
- - Version control transformation logic
44
- - Document data lineage
@@ -1,20 +0,0 @@
1
- Goal
2
- - Assess technical, operational, and economic feasibility with timelines and costs.
3
-
4
- How to do it
5
- - Define scope, constraints, and success criteria.
6
- - Technical: stack fit, complexity, integration risks.
7
- - Operational: processes, skills, SLAs, compliance.
8
- - Economic: cost drivers (build/run), ROI windows, sensitivities.
9
-
10
- Do
11
- - Provide a small matrix (dimension × 1–5 score) and rationale.
12
- - Add timeline bands (e.g., 2–4 weeks, 1–2 quarters) with key assumptions.
13
-
14
- Don’t
15
- - Don’t present estimates without assumptions.
16
- - Don’t ignore maintenance/operational costs.
17
-
18
- Output
19
- - A feasibility summary with scores, assumptions, timeline bands, and go/no‑go recommendation.
20
-
@@ -1,26 +0,0 @@
1
- # General Assistance
2
-
3
- ## Description
4
-
5
- Provide helpful assistance for general tasks and inquiries.
6
-
7
- ## Capabilities
8
-
9
- - Answer questions on various topics
10
- - Provide explanations and clarifications
11
- - Offer suggestions and recommendations
12
- - Break down complex problems into manageable steps
13
-
14
- ## Usage Guidelines
15
-
16
- - Be clear and concise in responses
17
- - Ask clarifying questions when needed
18
- - Provide examples to illustrate concepts
19
- - Adapt communication style to user needs
20
-
21
- ## Best Practices
22
-
23
- - Listen carefully to user requests
24
- - Provide accurate and reliable information
25
- - Be patient and understanding
26
- - Follow up to ensure user satisfaction