popeye-cli 1.1.0 → 1.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.
- package/.env.example +24 -1
- package/CONTRIBUTING.md +275 -0
- package/OPEN_SOURCE_MANIFESTO.md +172 -0
- package/README.md +340 -27
- package/dist/adapters/claude.d.ts +5 -2
- package/dist/adapters/claude.d.ts.map +1 -1
- package/dist/adapters/claude.js +239 -19
- package/dist/adapters/claude.js.map +1 -1
- package/dist/adapters/grok.d.ts +73 -0
- package/dist/adapters/grok.d.ts.map +1 -0
- package/dist/adapters/grok.js +430 -0
- package/dist/adapters/grok.js.map +1 -0
- package/dist/adapters/openai.d.ts +1 -1
- package/dist/adapters/openai.d.ts.map +1 -1
- package/dist/adapters/openai.js +6 -1
- package/dist/adapters/openai.js.map +1 -1
- package/dist/auth/grok.d.ts +73 -0
- package/dist/auth/grok.d.ts.map +1 -0
- package/dist/auth/grok.js +211 -0
- package/dist/auth/grok.js.map +1 -0
- package/dist/auth/index.d.ts +9 -6
- package/dist/auth/index.d.ts.map +1 -1
- package/dist/auth/index.js +23 -6
- package/dist/auth/index.js.map +1 -1
- package/dist/cli/commands/auth.d.ts +1 -1
- package/dist/cli/commands/auth.d.ts.map +1 -1
- package/dist/cli/commands/auth.js +79 -8
- package/dist/cli/commands/auth.js.map +1 -1
- package/dist/cli/commands/create.d.ts.map +1 -1
- package/dist/cli/commands/create.js +15 -4
- package/dist/cli/commands/create.js.map +1 -1
- package/dist/cli/interactive.d.ts.map +1 -1
- package/dist/cli/interactive.js +374 -35
- package/dist/cli/interactive.js.map +1 -1
- package/dist/config/defaults.d.ts +3 -0
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +9 -0
- package/dist/config/defaults.js.map +1 -1
- package/dist/config/index.d.ts +9 -0
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +16 -3
- package/dist/config/index.js.map +1 -1
- package/dist/config/schema.d.ts +27 -0
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +24 -3
- package/dist/config/schema.js.map +1 -1
- package/dist/generators/fullstack.d.ts +32 -0
- package/dist/generators/fullstack.d.ts.map +1 -0
- package/dist/generators/fullstack.js +497 -0
- package/dist/generators/fullstack.js.map +1 -0
- package/dist/generators/index.d.ts +4 -3
- package/dist/generators/index.d.ts.map +1 -1
- package/dist/generators/index.js +15 -1
- package/dist/generators/index.js.map +1 -1
- package/dist/generators/python.d.ts +17 -1
- package/dist/generators/python.d.ts.map +1 -1
- package/dist/generators/python.js +34 -21
- package/dist/generators/python.js.map +1 -1
- package/dist/generators/templates/fullstack.d.ts +113 -0
- package/dist/generators/templates/fullstack.d.ts.map +1 -0
- package/dist/generators/templates/fullstack.js +1004 -0
- package/dist/generators/templates/fullstack.js.map +1 -0
- package/dist/generators/typescript.d.ts +19 -1
- package/dist/generators/typescript.d.ts.map +1 -1
- package/dist/generators/typescript.js +37 -21
- package/dist/generators/typescript.js.map +1 -1
- package/dist/types/cli.d.ts +4 -0
- package/dist/types/cli.d.ts.map +1 -1
- package/dist/types/cli.js.map +1 -1
- package/dist/types/consensus.d.ts +119 -2
- package/dist/types/consensus.d.ts.map +1 -1
- package/dist/types/consensus.js +12 -1
- package/dist/types/consensus.js.map +1 -1
- package/dist/types/project.d.ts +76 -0
- package/dist/types/project.d.ts.map +1 -1
- package/dist/types/project.js +1 -1
- package/dist/types/project.js.map +1 -1
- package/dist/types/workflow.d.ts +162 -16
- package/dist/types/workflow.d.ts.map +1 -1
- package/dist/types/workflow.js +24 -1
- package/dist/types/workflow.js.map +1 -1
- package/dist/workflow/consensus.d.ts +29 -3
- package/dist/workflow/consensus.d.ts.map +1 -1
- package/dist/workflow/consensus.js +334 -27
- package/dist/workflow/consensus.js.map +1 -1
- package/dist/workflow/milestone-workflow.js +2 -2
- package/dist/workflow/milestone-workflow.js.map +1 -1
- package/dist/workflow/plan-mode.d.ts +66 -2
- package/dist/workflow/plan-mode.d.ts.map +1 -1
- package/dist/workflow/plan-mode.js +187 -11
- package/dist/workflow/plan-mode.js.map +1 -1
- package/dist/workflow/plan-storage.d.ts +252 -8
- package/dist/workflow/plan-storage.d.ts.map +1 -1
- package/dist/workflow/plan-storage.js +580 -33
- package/dist/workflow/plan-storage.js.map +1 -1
- package/dist/workflow/project-verification.js +1 -1
- package/dist/workflow/project-verification.js.map +1 -1
- package/dist/workflow/task-workflow.d.ts.map +1 -1
- package/dist/workflow/task-workflow.js +4 -1
- package/dist/workflow/task-workflow.js.map +1 -1
- package/dist/workflow/test-runner.d.ts +8 -0
- package/dist/workflow/test-runner.d.ts.map +1 -1
- package/dist/workflow/test-runner.js +92 -0
- package/dist/workflow/test-runner.js.map +1 -1
- package/dist/workflow/workspace-manager.d.ts +342 -0
- package/dist/workflow/workspace-manager.d.ts.map +1 -0
- package/dist/workflow/workspace-manager.js +733 -0
- package/dist/workflow/workspace-manager.js.map +1 -0
- package/package.json +1 -1
- package/src/adapters/claude.ts +263 -24
- package/src/adapters/grok.ts +492 -0
- package/src/adapters/openai.ts +8 -2
- package/src/auth/grok.ts +255 -0
- package/src/auth/index.ts +27 -9
- package/src/cli/commands/auth.ts +89 -10
- package/src/cli/commands/create.ts +13 -4
- package/src/cli/interactive.ts +424 -34
- package/src/config/defaults.ts +9 -0
- package/src/config/index.ts +17 -3
- package/src/config/schema.ts +25 -3
- package/src/generators/fullstack.ts +551 -0
- package/src/generators/index.ts +25 -1
- package/src/generators/python.ts +65 -21
- package/src/generators/templates/fullstack.ts +1047 -0
- package/src/generators/typescript.ts +69 -21
- package/src/types/cli.ts +4 -0
- package/src/types/consensus.ts +135 -3
- package/src/types/project.ts +82 -1
- package/src/types/workflow.ts +56 -2
- package/src/workflow/consensus.ts +461 -31
- package/src/workflow/milestone-workflow.ts +2 -2
- package/src/workflow/plan-mode.ts +238 -10
- package/src/workflow/plan-storage.ts +835 -35
- package/src/workflow/project-verification.ts +1 -1
- package/src/workflow/task-workflow.ts +4 -1
- package/src/workflow/test-runner.ts +110 -0
- package/src/workflow/workspace-manager.ts +912 -0
package/.env.example
CHANGED
|
@@ -5,14 +5,37 @@
|
|
|
5
5
|
# Get your key from: https://platform.openai.com/api-keys
|
|
6
6
|
POPEYE_OPENAI_KEY=
|
|
7
7
|
|
|
8
|
+
# Gemini API Key (optional - can also use keychain)
|
|
9
|
+
# Get your key from: https://aistudio.google.com/app/apikey
|
|
10
|
+
POPEYE_GEMINI_KEY=
|
|
11
|
+
|
|
12
|
+
# Grok API Key (optional - can also use keychain)
|
|
13
|
+
# Get your key from: https://console.x.ai/
|
|
14
|
+
POPEYE_GROK_KEY=
|
|
15
|
+
|
|
8
16
|
# Default output language for generated projects
|
|
9
|
-
# Options: python, typescript
|
|
17
|
+
# Options: python, typescript, fullstack
|
|
10
18
|
POPEYE_DEFAULT_LANGUAGE=python
|
|
11
19
|
|
|
12
20
|
# Default OpenAI model for consensus reviews
|
|
13
21
|
# Options: gpt-4o, gpt-4o-mini, gpt-4-turbo, o1-preview, o1-mini
|
|
14
22
|
POPEYE_OPENAI_MODEL=gpt-4o
|
|
15
23
|
|
|
24
|
+
# Default Gemini model (optional)
|
|
25
|
+
POPEYE_GEMINI_MODEL=gemini-2.0-flash
|
|
26
|
+
|
|
27
|
+
# Default Grok model (optional)
|
|
28
|
+
# Common models: grok-3, grok-2
|
|
29
|
+
POPEYE_GROK_MODEL=grok-3
|
|
30
|
+
|
|
31
|
+
# Consensus reviewer provider
|
|
32
|
+
# Options: openai, gemini, grok
|
|
33
|
+
POPEYE_CONSENSUS_REVIEWER=openai
|
|
34
|
+
|
|
35
|
+
# Consensus arbitrator provider (for tie-breaking)
|
|
36
|
+
# Options: openai, gemini, grok, off
|
|
37
|
+
POPEYE_CONSENSUS_ARBITRATOR=off
|
|
38
|
+
|
|
16
39
|
# Consensus threshold (percentage required for approval)
|
|
17
40
|
# Default: 95
|
|
18
41
|
POPEYE_CONSENSUS_THRESHOLD=95
|
package/CONTRIBUTING.md
ADDED
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
# Contributing to Popeye CLI
|
|
2
|
+
|
|
3
|
+
First off, thank you for considering contributing to Popeye CLI! It's people like you that make Popeye such a great tool.
|
|
4
|
+
|
|
5
|
+
## Table of Contents
|
|
6
|
+
|
|
7
|
+
- [Code of Conduct](#code-of-conduct)
|
|
8
|
+
- [Getting Started](#getting-started)
|
|
9
|
+
- [Development Setup](#development-setup)
|
|
10
|
+
- [How Can I Contribute?](#how-can-i-contribute)
|
|
11
|
+
- [Pull Request Process](#pull-request-process)
|
|
12
|
+
- [Style Guidelines](#style-guidelines)
|
|
13
|
+
- [Testing](#testing)
|
|
14
|
+
- [Questions?](#questions)
|
|
15
|
+
|
|
16
|
+
## Code of Conduct
|
|
17
|
+
|
|
18
|
+
This project and everyone participating in it is governed by our commitment to providing a welcoming and inclusive environment. By participating, you are expected to:
|
|
19
|
+
|
|
20
|
+
- Be respectful and considerate in your communication
|
|
21
|
+
- Accept constructive criticism gracefully
|
|
22
|
+
- Focus on what is best for the community
|
|
23
|
+
- Show empathy towards other community members
|
|
24
|
+
|
|
25
|
+
## Getting Started
|
|
26
|
+
|
|
27
|
+
Popeye CLI is built with TypeScript and uses several AI providers (Claude, OpenAI, Gemini) for its consensus-based code generation workflow.
|
|
28
|
+
|
|
29
|
+
### Prerequisites
|
|
30
|
+
|
|
31
|
+
- Node.js 18+
|
|
32
|
+
- npm 9+
|
|
33
|
+
- API keys for at least one AI provider (Claude recommended)
|
|
34
|
+
|
|
35
|
+
### Development Setup
|
|
36
|
+
|
|
37
|
+
1. **Fork and clone the repository**
|
|
38
|
+
```bash
|
|
39
|
+
git clone https://github.com/YOUR_USERNAME/popeye.git
|
|
40
|
+
cd popeye
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
2. **Install dependencies**
|
|
44
|
+
```bash
|
|
45
|
+
npm install
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
3. **Set up environment variables**
|
|
49
|
+
```bash
|
|
50
|
+
cp .env.example .env
|
|
51
|
+
# Edit .env with your API keys
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
4. **Build the project**
|
|
55
|
+
```bash
|
|
56
|
+
npm run build
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
5. **Run tests**
|
|
60
|
+
```bash
|
|
61
|
+
npm test
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
6. **Link for local development**
|
|
65
|
+
```bash
|
|
66
|
+
npm link
|
|
67
|
+
# Now you can run 'popeye' command locally
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## How Can I Contribute?
|
|
71
|
+
|
|
72
|
+
### Reporting Bugs
|
|
73
|
+
|
|
74
|
+
Before creating bug reports, please check existing issues to avoid duplicates. When you create a bug report, include as many details as possible:
|
|
75
|
+
|
|
76
|
+
- **Use a clear and descriptive title**
|
|
77
|
+
- **Describe the exact steps to reproduce the problem**
|
|
78
|
+
- **Provide specific examples** (project idea, configuration, etc.)
|
|
79
|
+
- **Describe the behavior you observed and what you expected**
|
|
80
|
+
- **Include logs** from `~/.popeye/logs/` if available
|
|
81
|
+
- **Include your environment** (OS, Node version, npm version)
|
|
82
|
+
|
|
83
|
+
### Suggesting Features
|
|
84
|
+
|
|
85
|
+
Feature suggestions are welcome! Please provide:
|
|
86
|
+
|
|
87
|
+
- **A clear and descriptive title**
|
|
88
|
+
- **Detailed description of the proposed feature**
|
|
89
|
+
- **Explain why this feature would be useful** to most users
|
|
90
|
+
- **List any alternatives you've considered**
|
|
91
|
+
|
|
92
|
+
### Your First Code Contribution
|
|
93
|
+
|
|
94
|
+
Unsure where to begin? Look for issues labeled:
|
|
95
|
+
|
|
96
|
+
- `good first issue` - Good for newcomers
|
|
97
|
+
- `help wanted` - Extra attention needed
|
|
98
|
+
- `documentation` - Improvements to docs
|
|
99
|
+
|
|
100
|
+
### Areas We'd Love Help With
|
|
101
|
+
|
|
102
|
+
- **New AI Provider Adapters** - Add support for more AI providers
|
|
103
|
+
- **Language Support** - Extend beyond TypeScript/Python
|
|
104
|
+
- **UI Components** - Add more shadcn/ui components to the setup
|
|
105
|
+
- **Testing** - Improve test coverage
|
|
106
|
+
- **Documentation** - Tutorials, examples, translations
|
|
107
|
+
- **Bug Fixes** - Check the issues page
|
|
108
|
+
|
|
109
|
+
## Pull Request Process
|
|
110
|
+
|
|
111
|
+
1. **Create a feature branch**
|
|
112
|
+
```bash
|
|
113
|
+
git checkout -b feature/your-feature-name
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
2. **Make your changes**
|
|
117
|
+
- Write clear, readable code
|
|
118
|
+
- Add tests for new functionality
|
|
119
|
+
- Update documentation as needed
|
|
120
|
+
|
|
121
|
+
3. **Test your changes**
|
|
122
|
+
```bash
|
|
123
|
+
npm run build
|
|
124
|
+
npm test
|
|
125
|
+
npm run lint
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
4. **Commit with a clear message**
|
|
129
|
+
```bash
|
|
130
|
+
git commit -m "feat: add support for X"
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
We follow [Conventional Commits](https://www.conventionalcommits.org/):
|
|
134
|
+
- `feat:` - New feature
|
|
135
|
+
- `fix:` - Bug fix
|
|
136
|
+
- `docs:` - Documentation only
|
|
137
|
+
- `style:` - Formatting, no code change
|
|
138
|
+
- `refactor:` - Code change that neither fixes a bug nor adds a feature
|
|
139
|
+
- `test:` - Adding or updating tests
|
|
140
|
+
- `chore:` - Maintenance tasks
|
|
141
|
+
|
|
142
|
+
5. **Push and create a Pull Request**
|
|
143
|
+
```bash
|
|
144
|
+
git push origin feature/your-feature-name
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
6. **In your PR description**
|
|
148
|
+
- Describe what changes you made and why
|
|
149
|
+
- Reference any related issues (`Fixes #123`)
|
|
150
|
+
- Include screenshots for UI changes
|
|
151
|
+
- Note any breaking changes
|
|
152
|
+
|
|
153
|
+
## Style Guidelines
|
|
154
|
+
|
|
155
|
+
### TypeScript
|
|
156
|
+
|
|
157
|
+
- Use TypeScript strict mode
|
|
158
|
+
- Prefer `const` over `let`, avoid `var`
|
|
159
|
+
- Use meaningful variable and function names
|
|
160
|
+
- Add JSDoc comments for public functions
|
|
161
|
+
- Keep functions focused and small
|
|
162
|
+
|
|
163
|
+
```typescript
|
|
164
|
+
/**
|
|
165
|
+
* Generate a development plan from a specification
|
|
166
|
+
*
|
|
167
|
+
* @param spec - The project specification
|
|
168
|
+
* @param context - Additional context for planning
|
|
169
|
+
* @returns The generated plan
|
|
170
|
+
*/
|
|
171
|
+
export async function createPlan(
|
|
172
|
+
spec: string,
|
|
173
|
+
context: string
|
|
174
|
+
): Promise<string> {
|
|
175
|
+
// Implementation
|
|
176
|
+
}
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
### File Organization
|
|
180
|
+
|
|
181
|
+
```
|
|
182
|
+
src/
|
|
183
|
+
├── adapters/ # AI provider integrations
|
|
184
|
+
├── auth/ # Authentication handling
|
|
185
|
+
├── cli/ # CLI commands and interface
|
|
186
|
+
├── config/ # Configuration management
|
|
187
|
+
├── generators/ # Project scaffolding
|
|
188
|
+
├── state/ # State management
|
|
189
|
+
├── types/ # TypeScript type definitions
|
|
190
|
+
└── workflow/ # Core workflow logic
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
### Formatting
|
|
194
|
+
|
|
195
|
+
We use Prettier for code formatting:
|
|
196
|
+
|
|
197
|
+
```bash
|
|
198
|
+
npm run format
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
## Testing
|
|
202
|
+
|
|
203
|
+
### Running Tests
|
|
204
|
+
|
|
205
|
+
```bash
|
|
206
|
+
# Run all tests
|
|
207
|
+
npm test
|
|
208
|
+
|
|
209
|
+
# Run tests in watch mode
|
|
210
|
+
npm run test:watch
|
|
211
|
+
|
|
212
|
+
# Run tests with coverage
|
|
213
|
+
npm run test:coverage
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
### Writing Tests
|
|
217
|
+
|
|
218
|
+
- Place tests in `tests/` directory mirroring `src/` structure
|
|
219
|
+
- Use descriptive test names
|
|
220
|
+
- Test both success and failure cases
|
|
221
|
+
|
|
222
|
+
```typescript
|
|
223
|
+
import { describe, it, expect } from 'vitest';
|
|
224
|
+
import { myFunction } from '../src/myModule';
|
|
225
|
+
|
|
226
|
+
describe('myFunction', () => {
|
|
227
|
+
it('should return expected result for valid input', () => {
|
|
228
|
+
const result = myFunction('valid input');
|
|
229
|
+
expect(result).toBe('expected output');
|
|
230
|
+
});
|
|
231
|
+
|
|
232
|
+
it('should throw error for invalid input', () => {
|
|
233
|
+
expect(() => myFunction('')).toThrow('Invalid input');
|
|
234
|
+
});
|
|
235
|
+
});
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
## Project Architecture
|
|
239
|
+
|
|
240
|
+
Understanding the codebase:
|
|
241
|
+
|
|
242
|
+
```
|
|
243
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
244
|
+
│ CLI Layer │
|
|
245
|
+
│ (cli/commands/*.ts - User interaction) │
|
|
246
|
+
└─────────────────────────────────────────────────────────────┘
|
|
247
|
+
│
|
|
248
|
+
▼
|
|
249
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
250
|
+
│ Workflow Layer │
|
|
251
|
+
│ (workflow/*.ts - Plan mode, Execution mode, Consensus) │
|
|
252
|
+
└─────────────────────────────────────────────────────────────┘
|
|
253
|
+
│
|
|
254
|
+
▼
|
|
255
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
256
|
+
│ Adapter Layer │
|
|
257
|
+
│ (adapters/*.ts - Claude, OpenAI, Gemini) │
|
|
258
|
+
└─────────────────────────────────────────────────────────────┘
|
|
259
|
+
│
|
|
260
|
+
▼
|
|
261
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
262
|
+
│ State Layer │
|
|
263
|
+
│ (state/*.ts - Project state, persistence) │
|
|
264
|
+
└─────────────────────────────────────────────────────────────┘
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
## Questions?
|
|
268
|
+
|
|
269
|
+
Feel free to:
|
|
270
|
+
|
|
271
|
+
- Open an issue for questions
|
|
272
|
+
- Start a discussion on GitHub
|
|
273
|
+
- Reach out to maintainers
|
|
274
|
+
|
|
275
|
+
Thank you for contributing to Popeye CLI!
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
# Popeye CLI – Open Source Manifesto
|
|
2
|
+
|
|
3
|
+
## Why Popeye Exists
|
|
4
|
+
|
|
5
|
+
Popeye was built out of frustration.
|
|
6
|
+
|
|
7
|
+
Not with coding itself — but with everything that blocks coding:
|
|
8
|
+
|
|
9
|
+
- endless project setup
|
|
10
|
+
- boilerplate before logic
|
|
11
|
+
- tooling debates before value
|
|
12
|
+
- unfinished ideas piling up in repos
|
|
13
|
+
|
|
14
|
+
We believe ideas should turn into working software faster.
|
|
15
|
+
And modern AI makes that possible — if used responsibly, transparently, and collaboratively.
|
|
16
|
+
|
|
17
|
+
**Popeye exists to remove friction between intention and execution.**
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## What Popeye Is (and Is Not)
|
|
22
|
+
|
|
23
|
+
**Popeye is:**
|
|
24
|
+
|
|
25
|
+
- an AI-powered CLI that turns plain-English ideas into real projects
|
|
26
|
+
- a system that plans, reviews, builds, tests, and fixes code automatically
|
|
27
|
+
- a developer tool focused on production-ready outcomes
|
|
28
|
+
- an open, inspectable, hackable codebase
|
|
29
|
+
|
|
30
|
+
**Popeye is not:**
|
|
31
|
+
|
|
32
|
+
- a black-box "magic" code generator
|
|
33
|
+
- a replacement for developers
|
|
34
|
+
- a closed SaaS disguised as open source
|
|
35
|
+
- a shortcut that hides complexity instead of managing it
|
|
36
|
+
|
|
37
|
+
We believe developers stay in control.
|
|
38
|
+
AI is a collaborator — not an oracle.
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## Core Principles
|
|
43
|
+
|
|
44
|
+
### 1. Open by Default
|
|
45
|
+
|
|
46
|
+
Popeye is:
|
|
47
|
+
|
|
48
|
+
- open source
|
|
49
|
+
- publicly auditable
|
|
50
|
+
- forkable
|
|
51
|
+
- extensible
|
|
52
|
+
|
|
53
|
+
If it runs on your machine, you should be able to:
|
|
54
|
+
|
|
55
|
+
- read it
|
|
56
|
+
- modify it
|
|
57
|
+
- improve it
|
|
58
|
+
- disagree with it
|
|
59
|
+
|
|
60
|
+
No hidden logic. No locked workflows.
|
|
61
|
+
|
|
62
|
+
### 2. Humans Own the Vision, AI Does the Heavy Lifting
|
|
63
|
+
|
|
64
|
+
Popeye assumes:
|
|
65
|
+
|
|
66
|
+
- humans define what should be built
|
|
67
|
+
- AI helps decide how to build it
|
|
68
|
+
- humans always have the final say
|
|
69
|
+
|
|
70
|
+
You describe intent.
|
|
71
|
+
Popeye handles the grind.
|
|
72
|
+
|
|
73
|
+
### 3. Opinions Are Explicit, Not Hidden
|
|
74
|
+
|
|
75
|
+
Every tool has opinions.
|
|
76
|
+
|
|
77
|
+
Popeye:
|
|
78
|
+
|
|
79
|
+
- encodes its assumptions openly
|
|
80
|
+
- documents why decisions are made
|
|
81
|
+
- welcomes debate and alternative approaches
|
|
82
|
+
|
|
83
|
+
If you disagree with a default:
|
|
84
|
+
|
|
85
|
+
- change it
|
|
86
|
+
- propose an improvement
|
|
87
|
+
- fork it
|
|
88
|
+
|
|
89
|
+
Open source thrives on disagreement done well.
|
|
90
|
+
|
|
91
|
+
### 4. Quality Over Demos
|
|
92
|
+
|
|
93
|
+
Popeye prioritizes:
|
|
94
|
+
|
|
95
|
+
- clean project structure
|
|
96
|
+
- testable code
|
|
97
|
+
- predictable builds
|
|
98
|
+
- real developer workflows
|
|
99
|
+
|
|
100
|
+
This is not about generating screenshots.
|
|
101
|
+
It's about generating maintainable software.
|
|
102
|
+
|
|
103
|
+
### 5. Community > Perfection
|
|
104
|
+
|
|
105
|
+
Popeye will evolve in public.
|
|
106
|
+
|
|
107
|
+
That means:
|
|
108
|
+
|
|
109
|
+
- some rough edges
|
|
110
|
+
- ongoing refactors
|
|
111
|
+
- design discussions in the open
|
|
112
|
+
|
|
113
|
+
We value:
|
|
114
|
+
|
|
115
|
+
- contributors over polish
|
|
116
|
+
- feedback over silence
|
|
117
|
+
- progress over purity
|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
## How You Can Contribute
|
|
122
|
+
|
|
123
|
+
You don't need to be an AI expert to help.
|
|
124
|
+
|
|
125
|
+
You can:
|
|
126
|
+
|
|
127
|
+
- improve prompts or planning logic
|
|
128
|
+
- add frontend or backend templates
|
|
129
|
+
- extend language or framework support
|
|
130
|
+
- improve test strategies
|
|
131
|
+
- tighten docs and examples
|
|
132
|
+
- report bugs or weird behavior
|
|
133
|
+
- challenge architectural decisions
|
|
134
|
+
|
|
135
|
+
If you've ever thought:
|
|
136
|
+
|
|
137
|
+
> "I wish dev tools worked this way instead…"
|
|
138
|
+
|
|
139
|
+
Popeye wants your opinion.
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
## The Long-Term Vision
|
|
144
|
+
|
|
145
|
+
We believe the future of software looks like this:
|
|
146
|
+
|
|
147
|
+
- ideas → specs → code → tests → running apps
|
|
148
|
+
- fewer abandoned repos
|
|
149
|
+
- fewer "weekend projects" that never start
|
|
150
|
+
- more people shipping things they actually care about
|
|
151
|
+
|
|
152
|
+
Popeye is one step in that direction.
|
|
153
|
+
|
|
154
|
+
Not the final answer — but an open experiment.
|
|
155
|
+
|
|
156
|
+
---
|
|
157
|
+
|
|
158
|
+
## An Invitation
|
|
159
|
+
|
|
160
|
+
If this resonates with you:
|
|
161
|
+
|
|
162
|
+
- Star the repo
|
|
163
|
+
- Try it
|
|
164
|
+
- Break it
|
|
165
|
+
- Fix it
|
|
166
|
+
- Open discussions
|
|
167
|
+
- Build with us
|
|
168
|
+
|
|
169
|
+
Open source doesn't grow because code is perfect.
|
|
170
|
+
It grows because people feel welcome to shape it.
|
|
171
|
+
|
|
172
|
+
**Welcome aboard.**
|