fabis-ralph-loop 1.7.0 → 1.7.2
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.
|
@@ -27,18 +27,15 @@ try {
|
|
|
27
27
|
const resolv = execSync('cat /etc/resolv.conf', { encoding: 'utf-8' })
|
|
28
28
|
const upstream = resolv.match(/^\s*nameserver\s+(\S+)/m)?.[1] ?? '8.8.8.8'
|
|
29
29
|
|
|
30
|
-
//
|
|
31
|
-
const
|
|
32
|
-
|
|
33
|
-
'listen-address=127.0.0.1',
|
|
34
|
-
'bind-interfaces',
|
|
35
|
-
...blockedDomains.map((d) =>
|
|
36
|
-
].join('
|
|
37
|
-
|
|
38
|
-
execSync(`
|
|
39
|
-
|
|
40
|
-
// Start dnsmasq and point resolver to it
|
|
41
|
-
execSync('sudo dnsmasq', { stdio: 'pipe' })
|
|
30
|
+
// Start dnsmasq with CLI flags (conf-dir is commented out by default in Debian)
|
|
31
|
+
const dnsmasqArgs = [
|
|
32
|
+
`--server=${upstream}`,
|
|
33
|
+
'--listen-address=127.0.0.1',
|
|
34
|
+
'--bind-interfaces',
|
|
35
|
+
...blockedDomains.map((d) => `--address=/${d}/0.0.0.0`),
|
|
36
|
+
].join(' ')
|
|
37
|
+
|
|
38
|
+
execSync(`sudo dnsmasq ${dnsmasqArgs}`, { stdio: 'pipe' })
|
|
42
39
|
execSync(`echo 'nameserver 127.0.0.1' | sudo tee /etc/resolv.conf > /dev/null`, { stdio: 'pipe' })
|
|
43
40
|
|
|
44
41
|
console.log(`Blocked ${blockedDomains.length} domain(s) via dnsmasq: ${blockedDomains.join(', ')}`)
|
|
@@ -92,25 +92,25 @@ Each story should be small enough to implement in one focused session.
|
|
|
92
92
|
- [ ] Specific verifiable criterion
|
|
93
93
|
- [ ] Another criterion
|
|
94
94
|
- [ ] Typecheck passes
|
|
95
|
-
|
|
95
|
+
<% if (playwright === 'cli') { -%>
|
|
96
96
|
- [ ] **[UI stories only]** Verify in browser using Playwright CLI
|
|
97
|
-
|
|
97
|
+
<% } else if (playwright === 'mcp') { -%>
|
|
98
98
|
- [ ] **[UI stories only]** Verify in browser using Playwright MCP tools
|
|
99
|
-
|
|
99
|
+
<% } else if (playwright) { -%>
|
|
100
100
|
- [ ] **[UI stories only]** Verify in browser
|
|
101
|
-
|
|
101
|
+
<% } -%>
|
|
102
102
|
```
|
|
103
103
|
|
|
104
104
|
**Important:**
|
|
105
105
|
|
|
106
106
|
- Acceptance criteria must be verifiable, not vague. "Works correctly" is bad. "Button shows confirmation dialog before deleting" is good.
|
|
107
|
-
|
|
107
|
+
<% if (playwright === 'cli') { -%>
|
|
108
108
|
- **For any story with UI changes:** Always include "Verify in browser using Playwright CLI" as acceptance criteria.
|
|
109
|
-
|
|
109
|
+
<% } else if (playwright === 'mcp') { -%>
|
|
110
110
|
- **For any story with UI changes:** Always include "Verify in browser using Playwright MCP tools" as acceptance criteria.
|
|
111
|
-
|
|
111
|
+
<% } else if (playwright) { -%>
|
|
112
112
|
- **For any story with UI changes:** Always include "Verify in browser" as acceptance criteria.
|
|
113
|
-
|
|
113
|
+
<% } -%>
|
|
114
114
|
|
|
115
115
|
### 4. Functional Requirements
|
|
116
116
|
|
|
@@ -156,10 +156,10 @@ When writing acceptance criteria that include quality checks, use project-specif
|
|
|
156
156
|
<% for (const cmd of backpressureCommands) { -%>
|
|
157
157
|
|
|
158
158
|
- <%= cmd.name %>: `<%= cmd.command %>`
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
159
|
+
<% } -%>
|
|
160
|
+
<% } else { -%>
|
|
161
|
+
No backpressure commands configured. Check `fabis-ralph-loop.config.ts` to add quality checks.
|
|
162
|
+
<% } -%>
|
|
163
163
|
|
|
164
164
|
---
|
|
165
165
|
|
|
@@ -246,10 +246,10 @@ Before writing `.ralph/prd.json`, verify:
|
|
|
246
246
|
- [ ] Each story is completable in one iteration (small enough)
|
|
247
247
|
- [ ] Stories are ordered by dependency (schema to backend to UI)
|
|
248
248
|
- [ ] Every story has "Typecheck passes" as criterion
|
|
249
|
-
|
|
249
|
+
<% if (playwright === 'cli') { -%>
|
|
250
250
|
- [ ] UI stories have "Verify in browser using Playwright CLI" as criterion
|
|
251
|
-
|
|
251
|
+
<% } else if (playwright === 'mcp') { -%>
|
|
252
252
|
- [ ] UI stories have "Verify in browser using Playwright MCP tools" as criterion
|
|
253
|
-
|
|
253
|
+
<% } -%>
|
|
254
254
|
- [ ] Acceptance criteria are verifiable (not vague)
|
|
255
255
|
- [ ] No story depends on a later story
|