claude-code-orchestrator-kit 1.4.1 → 1.4.15
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.
- package/.claude/agents/business/workers/lead-research-assistant.md +199 -0
- package/.claude/agents/database/workers/database-architect.md +3 -3
- package/.claude/agents/database/workers/supabase-auditor.md +7 -7
- package/.claude/agents/development/workers/code-reviewer.md +17 -2
- package/.claude/agents/frontend/workers/nextjs-ui-designer.md +30 -0
- package/.claude/agents/health/workers/bug-fixer.md +31 -2
- package/.claude/agents/health/workers/bug-hunter.md +0 -1
- package/.claude/agents/health/workers/dead-code-hunter.md +167 -75
- package/.claude/agents/health/workers/dead-code-remover.md +217 -66
- package/.claude/agents/health/workers/dependency-auditor.md +83 -24
- package/.claude/agents/health/workers/dependency-updater.md +0 -1
- package/.claude/agents/health/workers/security-scanner.md +0 -1
- package/.claude/agents/infrastructure/workers/deployment-engineer.md +446 -0
- package/.claude/agents/infrastructure/workers/infrastructure-specialist.md +2 -2
- package/.claude/agents/meta/workers/meta-agent-v3.md +22 -0
- package/.claude/agents/testing/workers/integration-tester.md +1 -1
- package/.claude/agents/testing/workers/test-writer.md +16 -0
- package/.claude/commands/health-bugs.md +14 -281
- package/.claude/commands/health-cleanup.md +14 -281
- package/.claude/commands/health-deps.md +14 -281
- package/.claude/commands/health-metrics.md +51 -709
- package/.claude/commands/health-reuse.md +14 -311
- package/.claude/commands/health-security.md +14 -281
- package/.claude/commands/push.md +17 -3
- package/.claude/commands/speckit.implement.md +0 -11
- package/.claude/commands/worktree.md +150 -0
- package/.claude/scripts/gates/check-bundle-size.sh +0 -0
- package/.claude/scripts/gates/check-coverage.sh +0 -0
- package/.claude/scripts/gates/check-security.sh +0 -0
- package/.claude/scripts/release.sh +469 -94
- package/.claude/skills/algorithmic-art/LICENSE.txt +202 -0
- package/.claude/skills/algorithmic-art/SKILL.md +405 -0
- package/.claude/skills/algorithmic-art/templates/generator_template.js +223 -0
- package/.claude/skills/algorithmic-art/templates/viewer.html +599 -0
- package/.claude/skills/artifacts-builder/LICENSE.txt +202 -0
- package/.claude/skills/artifacts-builder/SKILL.md +74 -0
- package/.claude/skills/artifacts-builder/scripts/bundle-artifact.sh +54 -0
- package/.claude/skills/artifacts-builder/scripts/init-artifact.sh +322 -0
- package/.claude/skills/artifacts-builder/scripts/shadcn-components.tar.gz +0 -0
- package/.claude/skills/bug-health-inline/SKILL.md +221 -0
- package/.claude/skills/bug-health-inline/references/worker-prompts.md +182 -0
- package/.claude/skills/canvas-design/LICENSE.txt +202 -0
- package/.claude/skills/canvas-design/SKILL.md +130 -0
- package/.claude/skills/canvas-design/canvas-fonts/ArsenalSC-OFL.txt +93 -0
- package/.claude/skills/canvas-design/canvas-fonts/ArsenalSC-Regular.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/BigShoulders-Bold.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/BigShoulders-OFL.txt +93 -0
- package/.claude/skills/canvas-design/canvas-fonts/BigShoulders-Regular.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/Boldonse-OFL.txt +93 -0
- package/.claude/skills/canvas-design/canvas-fonts/Boldonse-Regular.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/BricolageGrotesque-OFL.txt +93 -0
- package/.claude/skills/canvas-design/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/CrimsonPro-Bold.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/CrimsonPro-Italic.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/CrimsonPro-OFL.txt +93 -0
- package/.claude/skills/canvas-design/canvas-fonts/CrimsonPro-Regular.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/DMMono-OFL.txt +93 -0
- package/.claude/skills/canvas-design/canvas-fonts/DMMono-Regular.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/EricaOne-OFL.txt +94 -0
- package/.claude/skills/canvas-design/canvas-fonts/EricaOne-Regular.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/GeistMono-Bold.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/GeistMono-OFL.txt +93 -0
- package/.claude/skills/canvas-design/canvas-fonts/GeistMono-Regular.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/Gloock-OFL.txt +93 -0
- package/.claude/skills/canvas-design/canvas-fonts/Gloock-Regular.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/IBMPlexMono-Bold.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/IBMPlexMono-OFL.txt +93 -0
- package/.claude/skills/canvas-design/canvas-fonts/IBMPlexMono-Regular.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/IBMPlexSerif-Bold.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/IBMPlexSerif-BoldItalic.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/IBMPlexSerif-Italic.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/IBMPlexSerif-Regular.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/InstrumentSans-OFL.txt +93 -0
- package/.claude/skills/canvas-design/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/Italiana-OFL.txt +93 -0
- package/.claude/skills/canvas-design/canvas-fonts/Italiana-Regular.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/JetBrainsMono-OFL.txt +93 -0
- package/.claude/skills/canvas-design/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/Jura-Light.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/Jura-Medium.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/Jura-OFL.txt +93 -0
- package/.claude/skills/canvas-design/canvas-fonts/LibreBaskerville-OFL.txt +93 -0
- package/.claude/skills/canvas-design/canvas-fonts/LibreBaskerville-Regular.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/Lora-Bold.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/Lora-BoldItalic.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/Lora-Italic.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/Lora-OFL.txt +93 -0
- package/.claude/skills/canvas-design/canvas-fonts/Lora-Regular.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/NationalPark-Bold.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/NationalPark-OFL.txt +93 -0
- package/.claude/skills/canvas-design/canvas-fonts/NationalPark-Regular.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/NothingYouCouldDo-OFL.txt +93 -0
- package/.claude/skills/canvas-design/canvas-fonts/NothingYouCouldDo-Regular.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/Outfit-Bold.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/Outfit-OFL.txt +93 -0
- package/.claude/skills/canvas-design/canvas-fonts/Outfit-Regular.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/PixelifySans-Medium.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/PixelifySans-OFL.txt +93 -0
- package/.claude/skills/canvas-design/canvas-fonts/PoiretOne-OFL.txt +93 -0
- package/.claude/skills/canvas-design/canvas-fonts/PoiretOne-Regular.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/RedHatMono-Bold.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/RedHatMono-OFL.txt +93 -0
- package/.claude/skills/canvas-design/canvas-fonts/RedHatMono-Regular.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/Silkscreen-OFL.txt +93 -0
- package/.claude/skills/canvas-design/canvas-fonts/Silkscreen-Regular.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/SmoochSans-Medium.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/SmoochSans-OFL.txt +93 -0
- package/.claude/skills/canvas-design/canvas-fonts/Tektur-Medium.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/Tektur-OFL.txt +93 -0
- package/.claude/skills/canvas-design/canvas-fonts/Tektur-Regular.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/WorkSans-Bold.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/WorkSans-BoldItalic.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/WorkSans-Italic.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/WorkSans-OFL.txt +93 -0
- package/.claude/skills/canvas-design/canvas-fonts/WorkSans-Regular.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/YoungSerif-OFL.txt +93 -0
- package/.claude/skills/canvas-design/canvas-fonts/YoungSerif-Regular.ttf +0 -0
- package/.claude/skills/changelog-generator/SKILL.md +104 -0
- package/.claude/skills/cleanup-health-inline/SKILL.md +224 -0
- package/.claude/skills/code-reviewer/SKILL.md +209 -0
- package/.claude/skills/code-reviewer/references/code_review_checklist.md +103 -0
- package/.claude/skills/code-reviewer/references/coding_standards.md +103 -0
- package/.claude/skills/code-reviewer/references/common_antipatterns.md +103 -0
- package/.claude/skills/code-reviewer/scripts/code_quality_checker.py +114 -0
- package/.claude/skills/code-reviewer/scripts/pr_analyzer.py +114 -0
- package/.claude/skills/code-reviewer/scripts/review_report_generator.py +114 -0
- package/.claude/skills/content-research-writer/SKILL.md +538 -0
- package/.claude/skills/deps-health-inline/SKILL.md +227 -0
- package/.claude/skills/frontend-aesthetics/SKILL.md +51 -396
- package/.claude/skills/git-commit-helper/SKILL.md +203 -0
- package/.claude/skills/lead-research-assistant/SKILL.md +199 -0
- package/.claude/skills/reuse-health-inline/SKILL.md +248 -0
- package/.claude/skills/rollback-changes/SKILL.md +50 -524
- package/.claude/skills/run-quality-gate/SKILL.md +36 -346
- package/.claude/skills/security-health-inline/SKILL.md +224 -0
- package/.claude/skills/senior-devops/SKILL.md +209 -0
- package/.claude/skills/senior-devops/references/cicd_pipeline_guide.md +103 -0
- package/.claude/skills/senior-devops/references/deployment_strategies.md +103 -0
- package/.claude/skills/senior-devops/references/infrastructure_as_code.md +103 -0
- package/.claude/skills/senior-devops/scripts/deployment_manager.py +114 -0
- package/.claude/skills/senior-devops/scripts/pipeline_generator.py +114 -0
- package/.claude/skills/senior-devops/scripts/terraform_scaffolder.py +114 -0
- package/.claude/skills/senior-prompt-engineer/SKILL.md +226 -0
- package/.claude/skills/senior-prompt-engineer/references/agentic_system_design.md +80 -0
- package/.claude/skills/senior-prompt-engineer/references/llm_evaluation_frameworks.md +80 -0
- package/.claude/skills/senior-prompt-engineer/references/prompt_engineering_patterns.md +80 -0
- package/.claude/skills/senior-prompt-engineer/scripts/agent_orchestrator.py +100 -0
- package/.claude/skills/senior-prompt-engineer/scripts/prompt_optimizer.py +100 -0
- package/.claude/skills/senior-prompt-engineer/scripts/rag_evaluator.py +100 -0
- package/.claude/skills/setup-knip/SKILL.md +372 -0
- package/.claude/skills/systematic-debugging/CREATION-LOG.md +119 -0
- package/.claude/skills/systematic-debugging/SKILL.md +296 -0
- package/.claude/skills/systematic-debugging/condition-based-waiting-example.ts +158 -0
- package/.claude/skills/systematic-debugging/condition-based-waiting.md +115 -0
- package/.claude/skills/systematic-debugging/defense-in-depth.md +122 -0
- package/.claude/skills/systematic-debugging/find-polluter.sh +63 -0
- package/.claude/skills/systematic-debugging/root-cause-tracing.md +169 -0
- package/.claude/skills/systematic-debugging/test-academic.md +14 -0
- package/.claude/skills/systematic-debugging/test-pressure-1.md +58 -0
- package/.claude/skills/systematic-debugging/test-pressure-2.md +68 -0
- package/.claude/skills/systematic-debugging/test-pressure-3.md +69 -0
- package/.claude/skills/theme-factory/LICENSE.txt +202 -0
- package/.claude/skills/theme-factory/SKILL.md +59 -0
- package/.claude/skills/theme-factory/theme-showcase.pdf +0 -0
- package/.claude/skills/theme-factory/themes/arctic-frost.md +19 -0
- package/.claude/skills/theme-factory/themes/botanical-garden.md +19 -0
- package/.claude/skills/theme-factory/themes/desert-rose.md +19 -0
- package/.claude/skills/theme-factory/themes/forest-canopy.md +19 -0
- package/.claude/skills/theme-factory/themes/golden-hour.md +19 -0
- package/.claude/skills/theme-factory/themes/midnight-galaxy.md +19 -0
- package/.claude/skills/theme-factory/themes/modern-minimalist.md +19 -0
- package/.claude/skills/theme-factory/themes/ocean-depths.md +19 -0
- package/.claude/skills/theme-factory/themes/sunset-boulevard.md +19 -0
- package/.claude/skills/theme-factory/themes/tech-innovation.md +19 -0
- package/.claude/skills/ui-design-system/SKILL.md +32 -0
- package/.claude/skills/ui-design-system/scripts/design_token_generator.py +529 -0
- package/.claude/skills/ux-researcher-designer/SKILL.md +30 -0
- package/.claude/skills/ux-researcher-designer/scripts/persona_generator.py +508 -0
- package/.claude/skills/webapp-testing/LICENSE.txt +202 -0
- package/.claude/skills/webapp-testing/SKILL.md +96 -0
- package/.claude/skills/webapp-testing/examples/console_logging.py +35 -0
- package/.claude/skills/webapp-testing/examples/element_discovery.py +40 -0
- package/.claude/skills/webapp-testing/examples/static_html_automation.py +33 -0
- package/.claude/skills/webapp-testing/scripts/with_server.py +106 -0
- package/.gitignore +4 -0
- package/README.md +492 -1093
- package/README.ru.md +719 -0
- package/docs/Agents Ecosystem/AGENT-ORCHESTRATION.md +2 -2
- package/docs/COMMANDS-GUIDE.md +0 -15
- package/docs/reports/skills/new-skills-analysis-2025-12.md +331 -0
- package/package.json +11 -3
- package/.claude/agents/health/orchestrators/bug-orchestrator.md +0 -1084
- package/.claude/agents/health/orchestrators/dead-code-orchestrator.md +0 -1064
- package/.claude/agents/health/orchestrators/dependency-orchestrator.md +0 -1064
- package/.claude/agents/health/orchestrators/reuse-orchestrator.md +0 -1112
- package/.claude/agents/health/orchestrators/security-orchestrator.md +0 -1064
- package/.claude/commands/worktree-cleanup.md +0 -382
- package/.claude/commands/worktree-create.md +0 -287
- package/.claude/commands/worktree-list.md +0 -239
- package/.claude/commands/worktree-remove.md +0 -339
- package/.claude/project-index.md +0 -75
- package/.claude/skills/load-project-context/SKILL.md +0 -89
- package/.claude/skills/resume-session/SKILL.md +0 -164
- package/.claude/skills/save-session-context/SKILL.md +0 -123
- package/.claude/templates/project-index.template.md +0 -67
- package/.claude/templates/session/context.template.md +0 -40
- package/.claude/templates/session/log.template.md +0 -72
- package/.github/BRANCH_PROTECTION.md +0 -137
- package/.github/workflows/build.yml +0 -70
- package/.github/workflows/deploy-staging.yml +0 -90
- package/.github/workflows/test.yml +0 -104
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""
|
|
3
|
+
Pipeline Generator
|
|
4
|
+
Automated tool for senior devops tasks
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
import os
|
|
8
|
+
import sys
|
|
9
|
+
import json
|
|
10
|
+
import argparse
|
|
11
|
+
from pathlib import Path
|
|
12
|
+
from typing import Dict, List, Optional
|
|
13
|
+
|
|
14
|
+
class PipelineGenerator:
|
|
15
|
+
"""Main class for pipeline generator functionality"""
|
|
16
|
+
|
|
17
|
+
def __init__(self, target_path: str, verbose: bool = False):
|
|
18
|
+
self.target_path = Path(target_path)
|
|
19
|
+
self.verbose = verbose
|
|
20
|
+
self.results = {}
|
|
21
|
+
|
|
22
|
+
def run(self) -> Dict:
|
|
23
|
+
"""Execute the main functionality"""
|
|
24
|
+
print(f"🚀 Running {self.__class__.__name__}...")
|
|
25
|
+
print(f"📁 Target: {self.target_path}")
|
|
26
|
+
|
|
27
|
+
try:
|
|
28
|
+
self.validate_target()
|
|
29
|
+
self.analyze()
|
|
30
|
+
self.generate_report()
|
|
31
|
+
|
|
32
|
+
print("✅ Completed successfully!")
|
|
33
|
+
return self.results
|
|
34
|
+
|
|
35
|
+
except Exception as e:
|
|
36
|
+
print(f"❌ Error: {e}")
|
|
37
|
+
sys.exit(1)
|
|
38
|
+
|
|
39
|
+
def validate_target(self):
|
|
40
|
+
"""Validate the target path exists and is accessible"""
|
|
41
|
+
if not self.target_path.exists():
|
|
42
|
+
raise ValueError(f"Target path does not exist: {self.target_path}")
|
|
43
|
+
|
|
44
|
+
if self.verbose:
|
|
45
|
+
print(f"✓ Target validated: {self.target_path}")
|
|
46
|
+
|
|
47
|
+
def analyze(self):
|
|
48
|
+
"""Perform the main analysis or operation"""
|
|
49
|
+
if self.verbose:
|
|
50
|
+
print("📊 Analyzing...")
|
|
51
|
+
|
|
52
|
+
# Main logic here
|
|
53
|
+
self.results['status'] = 'success'
|
|
54
|
+
self.results['target'] = str(self.target_path)
|
|
55
|
+
self.results['findings'] = []
|
|
56
|
+
|
|
57
|
+
# Add analysis results
|
|
58
|
+
if self.verbose:
|
|
59
|
+
print(f"✓ Analysis complete: {len(self.results.get('findings', []))} findings")
|
|
60
|
+
|
|
61
|
+
def generate_report(self):
|
|
62
|
+
"""Generate and display the report"""
|
|
63
|
+
print("\n" + "="*50)
|
|
64
|
+
print("REPORT")
|
|
65
|
+
print("="*50)
|
|
66
|
+
print(f"Target: {self.results.get('target')}")
|
|
67
|
+
print(f"Status: {self.results.get('status')}")
|
|
68
|
+
print(f"Findings: {len(self.results.get('findings', []))}")
|
|
69
|
+
print("="*50 + "\n")
|
|
70
|
+
|
|
71
|
+
def main():
|
|
72
|
+
"""Main entry point"""
|
|
73
|
+
parser = argparse.ArgumentParser(
|
|
74
|
+
description="Pipeline Generator"
|
|
75
|
+
)
|
|
76
|
+
parser.add_argument(
|
|
77
|
+
'target',
|
|
78
|
+
help='Target path to analyze or process'
|
|
79
|
+
)
|
|
80
|
+
parser.add_argument(
|
|
81
|
+
'--verbose', '-v',
|
|
82
|
+
action='store_true',
|
|
83
|
+
help='Enable verbose output'
|
|
84
|
+
)
|
|
85
|
+
parser.add_argument(
|
|
86
|
+
'--json',
|
|
87
|
+
action='store_true',
|
|
88
|
+
help='Output results as JSON'
|
|
89
|
+
)
|
|
90
|
+
parser.add_argument(
|
|
91
|
+
'--output', '-o',
|
|
92
|
+
help='Output file path'
|
|
93
|
+
)
|
|
94
|
+
|
|
95
|
+
args = parser.parse_args()
|
|
96
|
+
|
|
97
|
+
tool = PipelineGenerator(
|
|
98
|
+
args.target,
|
|
99
|
+
verbose=args.verbose
|
|
100
|
+
)
|
|
101
|
+
|
|
102
|
+
results = tool.run()
|
|
103
|
+
|
|
104
|
+
if args.json:
|
|
105
|
+
output = json.dumps(results, indent=2)
|
|
106
|
+
if args.output:
|
|
107
|
+
with open(args.output, 'w') as f:
|
|
108
|
+
f.write(output)
|
|
109
|
+
print(f"Results written to {args.output}")
|
|
110
|
+
else:
|
|
111
|
+
print(output)
|
|
112
|
+
|
|
113
|
+
if __name__ == '__main__':
|
|
114
|
+
main()
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""
|
|
3
|
+
Terraform Scaffolder
|
|
4
|
+
Automated tool for senior devops tasks
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
import os
|
|
8
|
+
import sys
|
|
9
|
+
import json
|
|
10
|
+
import argparse
|
|
11
|
+
from pathlib import Path
|
|
12
|
+
from typing import Dict, List, Optional
|
|
13
|
+
|
|
14
|
+
class TerraformScaffolder:
|
|
15
|
+
"""Main class for terraform scaffolder functionality"""
|
|
16
|
+
|
|
17
|
+
def __init__(self, target_path: str, verbose: bool = False):
|
|
18
|
+
self.target_path = Path(target_path)
|
|
19
|
+
self.verbose = verbose
|
|
20
|
+
self.results = {}
|
|
21
|
+
|
|
22
|
+
def run(self) -> Dict:
|
|
23
|
+
"""Execute the main functionality"""
|
|
24
|
+
print(f"🚀 Running {self.__class__.__name__}...")
|
|
25
|
+
print(f"📁 Target: {self.target_path}")
|
|
26
|
+
|
|
27
|
+
try:
|
|
28
|
+
self.validate_target()
|
|
29
|
+
self.analyze()
|
|
30
|
+
self.generate_report()
|
|
31
|
+
|
|
32
|
+
print("✅ Completed successfully!")
|
|
33
|
+
return self.results
|
|
34
|
+
|
|
35
|
+
except Exception as e:
|
|
36
|
+
print(f"❌ Error: {e}")
|
|
37
|
+
sys.exit(1)
|
|
38
|
+
|
|
39
|
+
def validate_target(self):
|
|
40
|
+
"""Validate the target path exists and is accessible"""
|
|
41
|
+
if not self.target_path.exists():
|
|
42
|
+
raise ValueError(f"Target path does not exist: {self.target_path}")
|
|
43
|
+
|
|
44
|
+
if self.verbose:
|
|
45
|
+
print(f"✓ Target validated: {self.target_path}")
|
|
46
|
+
|
|
47
|
+
def analyze(self):
|
|
48
|
+
"""Perform the main analysis or operation"""
|
|
49
|
+
if self.verbose:
|
|
50
|
+
print("📊 Analyzing...")
|
|
51
|
+
|
|
52
|
+
# Main logic here
|
|
53
|
+
self.results['status'] = 'success'
|
|
54
|
+
self.results['target'] = str(self.target_path)
|
|
55
|
+
self.results['findings'] = []
|
|
56
|
+
|
|
57
|
+
# Add analysis results
|
|
58
|
+
if self.verbose:
|
|
59
|
+
print(f"✓ Analysis complete: {len(self.results.get('findings', []))} findings")
|
|
60
|
+
|
|
61
|
+
def generate_report(self):
|
|
62
|
+
"""Generate and display the report"""
|
|
63
|
+
print("\n" + "="*50)
|
|
64
|
+
print("REPORT")
|
|
65
|
+
print("="*50)
|
|
66
|
+
print(f"Target: {self.results.get('target')}")
|
|
67
|
+
print(f"Status: {self.results.get('status')}")
|
|
68
|
+
print(f"Findings: {len(self.results.get('findings', []))}")
|
|
69
|
+
print("="*50 + "\n")
|
|
70
|
+
|
|
71
|
+
def main():
|
|
72
|
+
"""Main entry point"""
|
|
73
|
+
parser = argparse.ArgumentParser(
|
|
74
|
+
description="Terraform Scaffolder"
|
|
75
|
+
)
|
|
76
|
+
parser.add_argument(
|
|
77
|
+
'target',
|
|
78
|
+
help='Target path to analyze or process'
|
|
79
|
+
)
|
|
80
|
+
parser.add_argument(
|
|
81
|
+
'--verbose', '-v',
|
|
82
|
+
action='store_true',
|
|
83
|
+
help='Enable verbose output'
|
|
84
|
+
)
|
|
85
|
+
parser.add_argument(
|
|
86
|
+
'--json',
|
|
87
|
+
action='store_true',
|
|
88
|
+
help='Output results as JSON'
|
|
89
|
+
)
|
|
90
|
+
parser.add_argument(
|
|
91
|
+
'--output', '-o',
|
|
92
|
+
help='Output file path'
|
|
93
|
+
)
|
|
94
|
+
|
|
95
|
+
args = parser.parse_args()
|
|
96
|
+
|
|
97
|
+
tool = TerraformScaffolder(
|
|
98
|
+
args.target,
|
|
99
|
+
verbose=args.verbose
|
|
100
|
+
)
|
|
101
|
+
|
|
102
|
+
results = tool.run()
|
|
103
|
+
|
|
104
|
+
if args.json:
|
|
105
|
+
output = json.dumps(results, indent=2)
|
|
106
|
+
if args.output:
|
|
107
|
+
with open(args.output, 'w') as f:
|
|
108
|
+
f.write(output)
|
|
109
|
+
print(f"Results written to {args.output}")
|
|
110
|
+
else:
|
|
111
|
+
print(output)
|
|
112
|
+
|
|
113
|
+
if __name__ == '__main__':
|
|
114
|
+
main()
|
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: senior-prompt-engineer
|
|
3
|
+
description: World-class prompt engineering skill for LLM optimization, prompt patterns, structured outputs, and AI product development. Expertise in Claude, GPT-4, prompt design patterns, few-shot learning, chain-of-thought, and AI evaluation. Includes RAG optimization, agent design, and LLM system architecture. Use when building AI products, optimizing LLM performance, designing agentic systems, or implementing advanced prompting techniques.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Senior Prompt Engineer
|
|
7
|
+
|
|
8
|
+
World-class senior prompt engineer skill for production-grade AI/ML/Data systems.
|
|
9
|
+
|
|
10
|
+
## Quick Start
|
|
11
|
+
|
|
12
|
+
### Main Capabilities
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
# Core Tool 1
|
|
16
|
+
python scripts/prompt_optimizer.py --input data/ --output results/
|
|
17
|
+
|
|
18
|
+
# Core Tool 2
|
|
19
|
+
python scripts/rag_evaluator.py --target project/ --analyze
|
|
20
|
+
|
|
21
|
+
# Core Tool 3
|
|
22
|
+
python scripts/agent_orchestrator.py --config config.yaml --deploy
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Core Expertise
|
|
26
|
+
|
|
27
|
+
This skill covers world-class capabilities in:
|
|
28
|
+
|
|
29
|
+
- Advanced production patterns and architectures
|
|
30
|
+
- Scalable system design and implementation
|
|
31
|
+
- Performance optimization at scale
|
|
32
|
+
- MLOps and DataOps best practices
|
|
33
|
+
- Real-time processing and inference
|
|
34
|
+
- Distributed computing frameworks
|
|
35
|
+
- Model deployment and monitoring
|
|
36
|
+
- Security and compliance
|
|
37
|
+
- Cost optimization
|
|
38
|
+
- Team leadership and mentoring
|
|
39
|
+
|
|
40
|
+
## Tech Stack
|
|
41
|
+
|
|
42
|
+
**Languages:** Python, SQL, R, Scala, Go
|
|
43
|
+
**ML Frameworks:** PyTorch, TensorFlow, Scikit-learn, XGBoost
|
|
44
|
+
**Data Tools:** Spark, Airflow, dbt, Kafka, Databricks
|
|
45
|
+
**LLM Frameworks:** LangChain, LlamaIndex, DSPy
|
|
46
|
+
**Deployment:** Docker, Kubernetes, AWS/GCP/Azure
|
|
47
|
+
**Monitoring:** MLflow, Weights & Biases, Prometheus
|
|
48
|
+
**Databases:** PostgreSQL, BigQuery, Snowflake, Pinecone
|
|
49
|
+
|
|
50
|
+
## Reference Documentation
|
|
51
|
+
|
|
52
|
+
### 1. Prompt Engineering Patterns
|
|
53
|
+
|
|
54
|
+
Comprehensive guide available in `references/prompt_engineering_patterns.md` covering:
|
|
55
|
+
|
|
56
|
+
- Advanced patterns and best practices
|
|
57
|
+
- Production implementation strategies
|
|
58
|
+
- Performance optimization techniques
|
|
59
|
+
- Scalability considerations
|
|
60
|
+
- Security and compliance
|
|
61
|
+
- Real-world case studies
|
|
62
|
+
|
|
63
|
+
### 2. Llm Evaluation Frameworks
|
|
64
|
+
|
|
65
|
+
Complete workflow documentation in `references/llm_evaluation_frameworks.md` including:
|
|
66
|
+
|
|
67
|
+
- Step-by-step processes
|
|
68
|
+
- Architecture design patterns
|
|
69
|
+
- Tool integration guides
|
|
70
|
+
- Performance tuning strategies
|
|
71
|
+
- Troubleshooting procedures
|
|
72
|
+
|
|
73
|
+
### 3. Agentic System Design
|
|
74
|
+
|
|
75
|
+
Technical reference guide in `references/agentic_system_design.md` with:
|
|
76
|
+
|
|
77
|
+
- System design principles
|
|
78
|
+
- Implementation examples
|
|
79
|
+
- Configuration best practices
|
|
80
|
+
- Deployment strategies
|
|
81
|
+
- Monitoring and observability
|
|
82
|
+
|
|
83
|
+
## Production Patterns
|
|
84
|
+
|
|
85
|
+
### Pattern 1: Scalable Data Processing
|
|
86
|
+
|
|
87
|
+
Enterprise-scale data processing with distributed computing:
|
|
88
|
+
|
|
89
|
+
- Horizontal scaling architecture
|
|
90
|
+
- Fault-tolerant design
|
|
91
|
+
- Real-time and batch processing
|
|
92
|
+
- Data quality validation
|
|
93
|
+
- Performance monitoring
|
|
94
|
+
|
|
95
|
+
### Pattern 2: ML Model Deployment
|
|
96
|
+
|
|
97
|
+
Production ML system with high availability:
|
|
98
|
+
|
|
99
|
+
- Model serving with low latency
|
|
100
|
+
- A/B testing infrastructure
|
|
101
|
+
- Feature store integration
|
|
102
|
+
- Model monitoring and drift detection
|
|
103
|
+
- Automated retraining pipelines
|
|
104
|
+
|
|
105
|
+
### Pattern 3: Real-Time Inference
|
|
106
|
+
|
|
107
|
+
High-throughput inference system:
|
|
108
|
+
|
|
109
|
+
- Batching and caching strategies
|
|
110
|
+
- Load balancing
|
|
111
|
+
- Auto-scaling
|
|
112
|
+
- Latency optimization
|
|
113
|
+
- Cost optimization
|
|
114
|
+
|
|
115
|
+
## Best Practices
|
|
116
|
+
|
|
117
|
+
### Development
|
|
118
|
+
|
|
119
|
+
- Test-driven development
|
|
120
|
+
- Code reviews and pair programming
|
|
121
|
+
- Documentation as code
|
|
122
|
+
- Version control everything
|
|
123
|
+
- Continuous integration
|
|
124
|
+
|
|
125
|
+
### Production
|
|
126
|
+
|
|
127
|
+
- Monitor everything critical
|
|
128
|
+
- Automate deployments
|
|
129
|
+
- Feature flags for releases
|
|
130
|
+
- Canary deployments
|
|
131
|
+
- Comprehensive logging
|
|
132
|
+
|
|
133
|
+
### Team Leadership
|
|
134
|
+
|
|
135
|
+
- Mentor junior engineers
|
|
136
|
+
- Drive technical decisions
|
|
137
|
+
- Establish coding standards
|
|
138
|
+
- Foster learning culture
|
|
139
|
+
- Cross-functional collaboration
|
|
140
|
+
|
|
141
|
+
## Performance Targets
|
|
142
|
+
|
|
143
|
+
**Latency:**
|
|
144
|
+
- P50: < 50ms
|
|
145
|
+
- P95: < 100ms
|
|
146
|
+
- P99: < 200ms
|
|
147
|
+
|
|
148
|
+
**Throughput:**
|
|
149
|
+
- Requests/second: > 1000
|
|
150
|
+
- Concurrent users: > 10,000
|
|
151
|
+
|
|
152
|
+
**Availability:**
|
|
153
|
+
- Uptime: 99.9%
|
|
154
|
+
- Error rate: < 0.1%
|
|
155
|
+
|
|
156
|
+
## Security & Compliance
|
|
157
|
+
|
|
158
|
+
- Authentication & authorization
|
|
159
|
+
- Data encryption (at rest & in transit)
|
|
160
|
+
- PII handling and anonymization
|
|
161
|
+
- GDPR/CCPA compliance
|
|
162
|
+
- Regular security audits
|
|
163
|
+
- Vulnerability management
|
|
164
|
+
|
|
165
|
+
## Common Commands
|
|
166
|
+
|
|
167
|
+
```bash
|
|
168
|
+
# Development
|
|
169
|
+
python -m pytest tests/ -v --cov
|
|
170
|
+
python -m black src/
|
|
171
|
+
python -m pylint src/
|
|
172
|
+
|
|
173
|
+
# Training
|
|
174
|
+
python scripts/train.py --config prod.yaml
|
|
175
|
+
python scripts/evaluate.py --model best.pth
|
|
176
|
+
|
|
177
|
+
# Deployment
|
|
178
|
+
docker build -t service:v1 .
|
|
179
|
+
kubectl apply -f k8s/
|
|
180
|
+
helm upgrade service ./charts/
|
|
181
|
+
|
|
182
|
+
# Monitoring
|
|
183
|
+
kubectl logs -f deployment/service
|
|
184
|
+
python scripts/health_check.py
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
## Resources
|
|
188
|
+
|
|
189
|
+
- Advanced Patterns: `references/prompt_engineering_patterns.md`
|
|
190
|
+
- Implementation Guide: `references/llm_evaluation_frameworks.md`
|
|
191
|
+
- Technical Reference: `references/agentic_system_design.md`
|
|
192
|
+
- Automation Scripts: `scripts/` directory
|
|
193
|
+
|
|
194
|
+
## Senior-Level Responsibilities
|
|
195
|
+
|
|
196
|
+
As a world-class senior professional:
|
|
197
|
+
|
|
198
|
+
1. **Technical Leadership**
|
|
199
|
+
- Drive architectural decisions
|
|
200
|
+
- Mentor team members
|
|
201
|
+
- Establish best practices
|
|
202
|
+
- Ensure code quality
|
|
203
|
+
|
|
204
|
+
2. **Strategic Thinking**
|
|
205
|
+
- Align with business goals
|
|
206
|
+
- Evaluate trade-offs
|
|
207
|
+
- Plan for scale
|
|
208
|
+
- Manage technical debt
|
|
209
|
+
|
|
210
|
+
3. **Collaboration**
|
|
211
|
+
- Work across teams
|
|
212
|
+
- Communicate effectively
|
|
213
|
+
- Build consensus
|
|
214
|
+
- Share knowledge
|
|
215
|
+
|
|
216
|
+
4. **Innovation**
|
|
217
|
+
- Stay current with research
|
|
218
|
+
- Experiment with new approaches
|
|
219
|
+
- Contribute to community
|
|
220
|
+
- Drive continuous improvement
|
|
221
|
+
|
|
222
|
+
5. **Production Excellence**
|
|
223
|
+
- Ensure high availability
|
|
224
|
+
- Monitor proactively
|
|
225
|
+
- Optimize performance
|
|
226
|
+
- Respond to incidents
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# Agentic System Design
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
World-class agentic system design for senior prompt engineer.
|
|
6
|
+
|
|
7
|
+
## Core Principles
|
|
8
|
+
|
|
9
|
+
### Production-First Design
|
|
10
|
+
|
|
11
|
+
Always design with production in mind:
|
|
12
|
+
- Scalability: Handle 10x current load
|
|
13
|
+
- Reliability: 99.9% uptime target
|
|
14
|
+
- Maintainability: Clear, documented code
|
|
15
|
+
- Observability: Monitor everything
|
|
16
|
+
|
|
17
|
+
### Performance by Design
|
|
18
|
+
|
|
19
|
+
Optimize from the start:
|
|
20
|
+
- Efficient algorithms
|
|
21
|
+
- Resource awareness
|
|
22
|
+
- Strategic caching
|
|
23
|
+
- Batch processing
|
|
24
|
+
|
|
25
|
+
### Security & Privacy
|
|
26
|
+
|
|
27
|
+
Build security in:
|
|
28
|
+
- Input validation
|
|
29
|
+
- Data encryption
|
|
30
|
+
- Access control
|
|
31
|
+
- Audit logging
|
|
32
|
+
|
|
33
|
+
## Advanced Patterns
|
|
34
|
+
|
|
35
|
+
### Pattern 1: Distributed Processing
|
|
36
|
+
|
|
37
|
+
Enterprise-scale data processing with fault tolerance.
|
|
38
|
+
|
|
39
|
+
### Pattern 2: Real-Time Systems
|
|
40
|
+
|
|
41
|
+
Low-latency, high-throughput systems.
|
|
42
|
+
|
|
43
|
+
### Pattern 3: ML at Scale
|
|
44
|
+
|
|
45
|
+
Production ML with monitoring and automation.
|
|
46
|
+
|
|
47
|
+
## Best Practices
|
|
48
|
+
|
|
49
|
+
### Code Quality
|
|
50
|
+
- Comprehensive testing
|
|
51
|
+
- Clear documentation
|
|
52
|
+
- Code reviews
|
|
53
|
+
- Type hints
|
|
54
|
+
|
|
55
|
+
### Performance
|
|
56
|
+
- Profile before optimizing
|
|
57
|
+
- Monitor continuously
|
|
58
|
+
- Cache strategically
|
|
59
|
+
- Batch operations
|
|
60
|
+
|
|
61
|
+
### Reliability
|
|
62
|
+
- Design for failure
|
|
63
|
+
- Implement retries
|
|
64
|
+
- Use circuit breakers
|
|
65
|
+
- Monitor health
|
|
66
|
+
|
|
67
|
+
## Tools & Technologies
|
|
68
|
+
|
|
69
|
+
Essential tools for this domain:
|
|
70
|
+
- Development frameworks
|
|
71
|
+
- Testing libraries
|
|
72
|
+
- Deployment platforms
|
|
73
|
+
- Monitoring solutions
|
|
74
|
+
|
|
75
|
+
## Further Reading
|
|
76
|
+
|
|
77
|
+
- Research papers
|
|
78
|
+
- Industry blogs
|
|
79
|
+
- Conference talks
|
|
80
|
+
- Open source projects
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# Llm Evaluation Frameworks
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
World-class llm evaluation frameworks for senior prompt engineer.
|
|
6
|
+
|
|
7
|
+
## Core Principles
|
|
8
|
+
|
|
9
|
+
### Production-First Design
|
|
10
|
+
|
|
11
|
+
Always design with production in mind:
|
|
12
|
+
- Scalability: Handle 10x current load
|
|
13
|
+
- Reliability: 99.9% uptime target
|
|
14
|
+
- Maintainability: Clear, documented code
|
|
15
|
+
- Observability: Monitor everything
|
|
16
|
+
|
|
17
|
+
### Performance by Design
|
|
18
|
+
|
|
19
|
+
Optimize from the start:
|
|
20
|
+
- Efficient algorithms
|
|
21
|
+
- Resource awareness
|
|
22
|
+
- Strategic caching
|
|
23
|
+
- Batch processing
|
|
24
|
+
|
|
25
|
+
### Security & Privacy
|
|
26
|
+
|
|
27
|
+
Build security in:
|
|
28
|
+
- Input validation
|
|
29
|
+
- Data encryption
|
|
30
|
+
- Access control
|
|
31
|
+
- Audit logging
|
|
32
|
+
|
|
33
|
+
## Advanced Patterns
|
|
34
|
+
|
|
35
|
+
### Pattern 1: Distributed Processing
|
|
36
|
+
|
|
37
|
+
Enterprise-scale data processing with fault tolerance.
|
|
38
|
+
|
|
39
|
+
### Pattern 2: Real-Time Systems
|
|
40
|
+
|
|
41
|
+
Low-latency, high-throughput systems.
|
|
42
|
+
|
|
43
|
+
### Pattern 3: ML at Scale
|
|
44
|
+
|
|
45
|
+
Production ML with monitoring and automation.
|
|
46
|
+
|
|
47
|
+
## Best Practices
|
|
48
|
+
|
|
49
|
+
### Code Quality
|
|
50
|
+
- Comprehensive testing
|
|
51
|
+
- Clear documentation
|
|
52
|
+
- Code reviews
|
|
53
|
+
- Type hints
|
|
54
|
+
|
|
55
|
+
### Performance
|
|
56
|
+
- Profile before optimizing
|
|
57
|
+
- Monitor continuously
|
|
58
|
+
- Cache strategically
|
|
59
|
+
- Batch operations
|
|
60
|
+
|
|
61
|
+
### Reliability
|
|
62
|
+
- Design for failure
|
|
63
|
+
- Implement retries
|
|
64
|
+
- Use circuit breakers
|
|
65
|
+
- Monitor health
|
|
66
|
+
|
|
67
|
+
## Tools & Technologies
|
|
68
|
+
|
|
69
|
+
Essential tools for this domain:
|
|
70
|
+
- Development frameworks
|
|
71
|
+
- Testing libraries
|
|
72
|
+
- Deployment platforms
|
|
73
|
+
- Monitoring solutions
|
|
74
|
+
|
|
75
|
+
## Further Reading
|
|
76
|
+
|
|
77
|
+
- Research papers
|
|
78
|
+
- Industry blogs
|
|
79
|
+
- Conference talks
|
|
80
|
+
- Open source projects
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# Prompt Engineering Patterns
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
World-class prompt engineering patterns for senior prompt engineer.
|
|
6
|
+
|
|
7
|
+
## Core Principles
|
|
8
|
+
|
|
9
|
+
### Production-First Design
|
|
10
|
+
|
|
11
|
+
Always design with production in mind:
|
|
12
|
+
- Scalability: Handle 10x current load
|
|
13
|
+
- Reliability: 99.9% uptime target
|
|
14
|
+
- Maintainability: Clear, documented code
|
|
15
|
+
- Observability: Monitor everything
|
|
16
|
+
|
|
17
|
+
### Performance by Design
|
|
18
|
+
|
|
19
|
+
Optimize from the start:
|
|
20
|
+
- Efficient algorithms
|
|
21
|
+
- Resource awareness
|
|
22
|
+
- Strategic caching
|
|
23
|
+
- Batch processing
|
|
24
|
+
|
|
25
|
+
### Security & Privacy
|
|
26
|
+
|
|
27
|
+
Build security in:
|
|
28
|
+
- Input validation
|
|
29
|
+
- Data encryption
|
|
30
|
+
- Access control
|
|
31
|
+
- Audit logging
|
|
32
|
+
|
|
33
|
+
## Advanced Patterns
|
|
34
|
+
|
|
35
|
+
### Pattern 1: Distributed Processing
|
|
36
|
+
|
|
37
|
+
Enterprise-scale data processing with fault tolerance.
|
|
38
|
+
|
|
39
|
+
### Pattern 2: Real-Time Systems
|
|
40
|
+
|
|
41
|
+
Low-latency, high-throughput systems.
|
|
42
|
+
|
|
43
|
+
### Pattern 3: ML at Scale
|
|
44
|
+
|
|
45
|
+
Production ML with monitoring and automation.
|
|
46
|
+
|
|
47
|
+
## Best Practices
|
|
48
|
+
|
|
49
|
+
### Code Quality
|
|
50
|
+
- Comprehensive testing
|
|
51
|
+
- Clear documentation
|
|
52
|
+
- Code reviews
|
|
53
|
+
- Type hints
|
|
54
|
+
|
|
55
|
+
### Performance
|
|
56
|
+
- Profile before optimizing
|
|
57
|
+
- Monitor continuously
|
|
58
|
+
- Cache strategically
|
|
59
|
+
- Batch operations
|
|
60
|
+
|
|
61
|
+
### Reliability
|
|
62
|
+
- Design for failure
|
|
63
|
+
- Implement retries
|
|
64
|
+
- Use circuit breakers
|
|
65
|
+
- Monitor health
|
|
66
|
+
|
|
67
|
+
## Tools & Technologies
|
|
68
|
+
|
|
69
|
+
Essential tools for this domain:
|
|
70
|
+
- Development frameworks
|
|
71
|
+
- Testing libraries
|
|
72
|
+
- Deployment platforms
|
|
73
|
+
- Monitoring solutions
|
|
74
|
+
|
|
75
|
+
## Further Reading
|
|
76
|
+
|
|
77
|
+
- Research papers
|
|
78
|
+
- Industry blogs
|
|
79
|
+
- Conference talks
|
|
80
|
+
- Open source projects
|