sublation-os 1.0.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 (52) hide show
  1. package/.claude/agents/sublation-os/implementation-verifier.md +141 -0
  2. package/.claude/agents/sublation-os/implementer-v2.md +542 -0
  3. package/.claude/agents/sublation-os/implementer.md +53 -0
  4. package/.claude/agents/sublation-os/product-planner.md +210 -0
  5. package/.claude/agents/sublation-os/spec-initializer.md +92 -0
  6. package/.claude/agents/sublation-os/spec-shaper.md +300 -0
  7. package/.claude/agents/sublation-os/spec-writer.md +139 -0
  8. package/.claude/agents/sublation-os/tasks-list-creator.md +236 -0
  9. package/.claude/commands/sublation-os/address-comments.md +74 -0
  10. package/.claude/commands/sublation-os/commit-message.md +84 -0
  11. package/.claude/commands/sublation-os/create-tasks.md +40 -0
  12. package/.claude/commands/sublation-os/implement-tasks.md +55 -0
  13. package/.claude/commands/sublation-os/investigate.md +164 -0
  14. package/.claude/commands/sublation-os/learn.md +131 -0
  15. package/.claude/commands/sublation-os/optimise.md +108 -0
  16. package/.claude/commands/sublation-os/plan-product.md +36 -0
  17. package/.claude/commands/sublation-os/pr-description.md +15 -0
  18. package/.claude/commands/sublation-os/recall.md +114 -0
  19. package/.claude/commands/sublation-os/review-v2.md +701 -0
  20. package/.claude/commands/sublation-os/review.md +12 -0
  21. package/.claude/commands/sublation-os/shape-spec.md +52 -0
  22. package/.claude/commands/sublation-os/test-plan.md +12 -0
  23. package/.claude/commands/sublation-os/write-spec.md +22 -0
  24. package/.sublation-os/config.yml +13 -0
  25. package/.sublation-os/memory/MEMORY_GUIDE.md +344 -0
  26. package/.sublation-os/memory/architecture-lessons.md +41 -0
  27. package/.sublation-os/memory/backend-lessons.md +41 -0
  28. package/.sublation-os/memory/frontend-lessons.md +41 -0
  29. package/.sublation-os/memory/general-lessons.md +41 -0
  30. package/.sublation-os/memory/index.md +94 -0
  31. package/.sublation-os/memory/learned-lessons.md +75 -0
  32. package/.sublation-os/memory/testing-lessons.md +41 -0
  33. package/.sublation-os/specs/.gitkeep +0 -0
  34. package/.sublation-os/standards/backend/api.md +10 -0
  35. package/.sublation-os/standards/backend/migrations.md +9 -0
  36. package/.sublation-os/standards/backend/models.md +10 -0
  37. package/.sublation-os/standards/backend/queries.md +9 -0
  38. package/.sublation-os/standards/frontend/accessibility.md +10 -0
  39. package/.sublation-os/standards/frontend/components.md +11 -0
  40. package/.sublation-os/standards/frontend/css.md +7 -0
  41. package/.sublation-os/standards/frontend/responsive.md +11 -0
  42. package/.sublation-os/standards/global/coding-style.md +10 -0
  43. package/.sublation-os/standards/global/commenting.md +5 -0
  44. package/.sublation-os/standards/global/conventions.md +11 -0
  45. package/.sublation-os/standards/global/error-handling.md +9 -0
  46. package/.sublation-os/standards/global/tech-stack.md +31 -0
  47. package/.sublation-os/standards/global/validation.md +11 -0
  48. package/.sublation-os/standards/testing/test-writing.md +9 -0
  49. package/LICENSE +21 -0
  50. package/README.md +155 -0
  51. package/bin/install.js +137 -0
  52. package/package.json +43 -0
package/bin/install.js ADDED
@@ -0,0 +1,137 @@
1
+ #!/usr/bin/env node
2
+
3
+ const fs = require('fs');
4
+ const path = require('path');
5
+ const readline = require('readline');
6
+
7
+ // Colors for output
8
+ const colors = {
9
+ reset: '\x1b[0m',
10
+ green: '\x1b[32m',
11
+ blue: '\x1b[34m',
12
+ yellow: '\x1b[33m',
13
+ red: '\x1b[31m',
14
+ };
15
+
16
+ // Helper to print colored messages
17
+ function log(message, color = 'reset') {
18
+ console.log(`${colors[color]}${message}${colors.reset}`);
19
+ }
20
+
21
+ // Helper to copy directory recursively
22
+ function copyDirectorySync(src, dest) {
23
+ // Create destination directory
24
+ if (!fs.existsSync(dest)) {
25
+ fs.mkdirSync(dest, { recursive: true });
26
+ }
27
+
28
+ // Read source directory
29
+ const entries = fs.readdirSync(src, { withFileTypes: true });
30
+
31
+ for (const entry of entries) {
32
+ const srcPath = path.join(src, entry.name);
33
+ const destPath = path.join(dest, entry.name);
34
+
35
+ if (entry.isDirectory()) {
36
+ copyDirectorySync(srcPath, destPath);
37
+ } else {
38
+ fs.copyFileSync(srcPath, destPath);
39
+ }
40
+ }
41
+ }
42
+
43
+ // Helper to ask yes/no question
44
+ function askQuestion(query) {
45
+ const rl = readline.createInterface({
46
+ input: process.stdin,
47
+ output: process.stdout,
48
+ });
49
+
50
+ return new Promise((resolve) =>
51
+ rl.question(query, (answer) => {
52
+ rl.close();
53
+ resolve(answer.toLowerCase() === 'y' || answer.toLowerCase() === 'yes');
54
+ })
55
+ );
56
+ }
57
+
58
+ async function install() {
59
+ // Determine source directory (where the npm package is installed)
60
+ const packageDir = path.resolve(__dirname, '..');
61
+
62
+ // Determine target directory (current working directory)
63
+ const targetDir = process.cwd();
64
+
65
+ log('Sublation-OS Framework Installer', 'green');
66
+ log(`Installing to: ${targetDir}`, 'blue');
67
+ console.log('');
68
+
69
+ // Check if already installed
70
+ const sublationOsPath = path.join(targetDir, '.sublation-os');
71
+ if (fs.existsSync(sublationOsPath)) {
72
+ log('⚠️ Sublation-OS is already installed in this directory.', 'yellow');
73
+ const shouldUpdate = await askQuestion('Do you want to update/overwrite? (y/N): ');
74
+
75
+ if (!shouldUpdate) {
76
+ log('Installation cancelled.', 'yellow');
77
+ process.exit(0);
78
+ }
79
+
80
+ // Backup existing installation
81
+ const backupPath = path.join(targetDir, '.sublation-os.backup');
82
+ log(' Backing up existing .sublation-os to .sublation-os.backup', 'yellow');
83
+ if (fs.existsSync(backupPath)) {
84
+ fs.rmSync(backupPath, { recursive: true, force: true });
85
+ }
86
+ fs.renameSync(sublationOsPath, backupPath);
87
+ }
88
+
89
+ // Create .claude directory if it doesn't exist
90
+ const claudeAgentsDir = path.join(targetDir, '.claude', 'agents');
91
+ const claudeCommandsDir = path.join(targetDir, '.claude', 'commands');
92
+ fs.mkdirSync(claudeAgentsDir, { recursive: true });
93
+ fs.mkdirSync(claudeCommandsDir, { recursive: true });
94
+
95
+ // Copy framework files
96
+ log('📦 Copying framework files...', 'blue');
97
+
98
+ try {
99
+ // Copy .sublation-os directory
100
+ const srcSublationOs = path.join(packageDir, '.sublation-os');
101
+ copyDirectorySync(srcSublationOs, sublationOsPath);
102
+ log(' ✓ Copied .sublation-os/', 'green');
103
+
104
+ // Copy Claude agents
105
+ const srcAgents = path.join(packageDir, '.claude', 'agents', 'sublation-os');
106
+ const destAgents = path.join(claudeAgentsDir, 'sublation-os');
107
+ copyDirectorySync(srcAgents, destAgents);
108
+ log(' ✓ Copied .claude/agents/sublation-os/', 'green');
109
+
110
+ // Copy Claude commands
111
+ const srcCommands = path.join(packageDir, '.claude', 'commands', 'sublation-os');
112
+ const destCommands = path.join(claudeCommandsDir, 'sublation-os');
113
+ copyDirectorySync(srcCommands, destCommands);
114
+ log(' ✓ Copied .claude/commands/sublation-os/', 'green');
115
+
116
+ console.log('');
117
+ log('✅ Sublation-OS Framework installed successfully!', 'green');
118
+ console.log('');
119
+ log('Next steps:', 'blue');
120
+ console.log('1. Review and customize .sublation-os/config.yml for your project');
121
+ console.log('2. Customize .sublation-os/standards/ files for your tech stack');
122
+ console.log('3. Start using the framework with Claude Code');
123
+ console.log('');
124
+ log('Available slash commands:', 'blue');
125
+ console.log(' /sublation-os:learn - Capture learnings');
126
+ console.log(' /sublation-os:plan-product - Create product documentation');
127
+ console.log(' /sublation-os:create-tasks - Generate task list from spec');
128
+ console.log(' /sublation-os:implement-tasks - Implement tasks from spec');
129
+ console.log('');
130
+ log('📚 For more information, see: https://github.com/nicolosaullo/sublation-os', 'blue');
131
+ } catch (error) {
132
+ log(`❌ Installation failed: ${error.message}`, 'red');
133
+ process.exit(1);
134
+ }
135
+ }
136
+
137
+ install();
package/package.json ADDED
@@ -0,0 +1,43 @@
1
+ {
2
+ "name": "sublation-os",
3
+ "version": "1.0.0",
4
+ "description": "A comprehensive development framework for Claude Code that enhances your AI-assisted development workflow with standards, specifications, memory, and powerful agents",
5
+ "main": "bin/install.js",
6
+ "bin": {
7
+ "sublation-os": "./bin/install.js"
8
+ },
9
+ "scripts": {
10
+ "test": "echo \"Error: no test specified\" && exit 1"
11
+ },
12
+ "keywords": [
13
+ "claude",
14
+ "claude-code",
15
+ "ai",
16
+ "development",
17
+ "framework",
18
+ "standards",
19
+ "specifications",
20
+ "agents",
21
+ "cli"
22
+ ],
23
+ "author": "Nicolò Saullo",
24
+ "license": "MIT",
25
+ "repository": {
26
+ "type": "git",
27
+ "url": "git+https://github.com/nicolosaullo/sublation-os.git"
28
+ },
29
+ "bugs": {
30
+ "url": "https://github.com/nicolosaullo/sublation-os/issues"
31
+ },
32
+ "homepage": "https://github.com/nicolosaullo/sublation-os#readme",
33
+ "engines": {
34
+ "node": ">=14.0.0"
35
+ },
36
+ "files": [
37
+ "bin/",
38
+ ".sublation-os/",
39
+ ".claude/",
40
+ "README.md",
41
+ "LICENSE"
42
+ ]
43
+ }