Skip to content

Commit e208e40

Browse files
indykishKishore Kumarclaude
authored
feat(skills): v5.1.0 — sync Make taxonomy, design system, web scaffold from ai-jumpstart (#6)
- Standard Make target taxonomy: lint replaces quality, qa/qa-smoke, no qa-headed - Design system defaults: Geist fonts, CSS tokens, dot-grid, neon orange/terminal green - Vite 7 + Tailwind v4 CSS-first website scaffold - Oracle SKILL.md: canonical CLI-centric v0.9.0 version - Add pilot-spec.md Co-authored-by: Kishore Kumar <kishore.kumar@e2enetworks.com> Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent d305e11 commit e208e40

File tree

9 files changed

+886
-204
lines changed

9 files changed

+886
-204
lines changed

AGENTS.md

Lines changed: 160 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -263,6 +263,45 @@ Actively resist overcomplication. Before finishing any implementation, ask:
263263

264264
Prefer the boring, obvious solution. Cleverness is expensive. If 100 lines suffice, 1000 lines is a failure.
265265

266+
### No Insecure Fallbacks
267+
268+
Never add a "fallback" auth path, credential mechanism, or compatibility shim that is less secure than the primary path. If the primary path is GitHub App OAuth, do not also document `GITHUB_PAT` as a fallback. If the primary path is per-workspace encrypted credentials, do not also support a shared env var.
269+
270+
Rules:
271+
272+
- **One auth path.** Design the secure path. Ship only that. No "operator fallback" that bypasses the security model.
273+
- **No deferred security.** Do not spread a security fix across milestones. If the credential model is broken, fix it now — do not document "M1: insecure, M2: fix it."
274+
- **No throwaway code.** If code will be replaced next milestone, do not write it. Write the real thing or write nothing.
275+
- **No backward-compatibility shims for unreleased software.** If the product has no users yet, there is no backward compatibility to maintain. Delete the old path.
276+
277+
```
278+
❌ Bad: "Primary: GitHub App. Fallback: GITHUB_PAT env var for self-hosted."
279+
✅ Good: "Auth: GitHub App OAuth. No other path."
280+
281+
❌ Bad: "M1: single PAT. M2: per-workspace credentials."
282+
✅ Good: "Per-workspace credentials from day one."
283+
```
284+
285+
### No Process Launches — Native SDK Only
286+
287+
Never shell out to external processes (subprocess, `std.process.Child`, `execve`, `spawn`) for core functionality. If a capability exists as a native library or SDK, use it. Process launches are only acceptable for personal developer tools explicitly approved by the user.
288+
289+
Rules:
290+
291+
- **Git operations:** Use libgit2 (native C library with Zig bindings), not `git` CLI subprocess.
292+
- **HTTP calls:** Use native HTTP client, not `curl` subprocess.
293+
- **File operations:** Use native filesystem APIs, not `find`/`grep`/`sed` subprocess.
294+
- **Build tools:** Zig build system, not shell scripts wrapping other tools.
295+
- **Exception:** Personal developer tools (e.g., `pass-cli`, `gh`, `glab`, `oracle`) are allowed because the user chose them. Core product code must not depend on subprocess launches.
296+
297+
```
298+
❌ Bad: std.process.Child.init(.{ .argv = &.{"git", "clone", repo_url} })
299+
✅ Good: const repo = try git2.Repository.clone(repo_url, path, .{})
300+
301+
❌ Bad: "uses git CLI for bare clone + worktree"
302+
✅ Good: "uses libgit2 for clone, checkout, and push — native calls, no subprocess"
303+
```
304+
266305
### Dead Code Hygiene
267306

268307
After any refactor: identify newly unreachable or redundant code. List it explicitly. Never silently remove without user confirmation.
@@ -352,9 +391,32 @@ glab pipeline view
352391

353392
- If CI is red, iterate until green: inspect logs, fix, push, re-check.
354393

394+
## Standard Make Target Taxonomy
395+
396+
Every repo must expose these targets. Agents use these as the canonical entry points — never raw `bun run`/`cargo`/`go` commands unless a Make target does not exist.
397+
398+
| Target | Applies to | Purpose |
399+
|---------------|-------------------|-----------------------------------------------------|
400+
| `make dev` | all | Start local dev server or run binary in dev mode |
401+
| `make up` | services | Start background services (Docker Compose) |
402+
| `make down` | services | Stop background services |
403+
| `make lint` | all | Run all linters and type checks (never `quality`) |
404+
| `make test` | all | Run all unit tests |
405+
| `make build` | all | Compile / bundle for production |
406+
| `make _clean` | all | Remove generated artefacts (dist, coverage, .tmp) |
407+
| `make push` | services/packages | Push image/package to registry |
408+
| `make qa` | web | Playwright e2e full suite (headless) |
409+
| `make qa-smoke` | web | Playwright smoke tests (fast CI gate) |
410+
411+
Rules:
412+
- `make quality` is **banned** — use `make lint`.
413+
- `make qa-headed` is **not a shared target** — agents are headless; headed runs use `bunx playwright test --headed` directly.
414+
- Multi-component repos split targets: `make lint-<component>` feeds into `make lint` aggregate. Example: `lint-zig` + `lint-website``lint`.
415+
- `make test` runs unit tests only. E2e is always a separate `make qa` / `make qa-smoke`.
416+
355417
## Build And Verify Defaults
356418

357-
- Before handoff, run the full relevant gate (quality, test, build, docs updates).
419+
- Before handoff, run the full relevant gate (`make lint`, `make test`, `make build`).
358420
- Prefer end-to-end verification over partial checks.
359421
- If blocked, record exact missing precondition and command output.
360422

@@ -467,6 +529,50 @@ Optional (feature-dependent):
467529
- Container registry token(s)
468530
- Tailscale auth key (only for automated node enrollment)
469531

532+
## Knowledge Base (QMD)
533+
534+
Use `qmd` (Query Markup Documents) to search indexed reference material when implementing features that relate to sandbox agents, infrastructure patterns, or prior research.
535+
536+
**Collection:** `clawable``~/notes/clawable/`
537+
538+
**When to use:**
539+
- Researching sandbox/actor implementations (Daytona, Rivet, Cognee, AgentKeeper)
540+
- Comparing infrastructure approaches before committing to a design
541+
- Looking up API patterns, deployment strategies, or architectural decisions
542+
- Answering "how did X project solve Y problem?"
543+
544+
**Basic queries:**
545+
```bash
546+
# Fast keyword search (BM25)
547+
qmd search "actor model implementation" -c clawable
548+
549+
# Semantic search (conceptual similarity)
550+
qmd vsearch "sandbox isolation patterns" -c clawable
551+
552+
# Hybrid search with re-ranking (best quality)
553+
qmd query "how to deploy sandbox agents" -c clawable
554+
555+
# Get specific document
556+
qmd get "daytona/README.md"
557+
558+
# List available files
559+
qmd ls clawable
560+
```
561+
562+
**For agent workflows:**
563+
```bash
564+
# JSON output for LLM processing
565+
qmd query "sandbox architecture" --json -n 10
566+
567+
# Get files above relevance threshold
568+
qmd query "actor runtime" --files --min-score 0.4
569+
570+
# Export all matches for deep analysis
571+
qmd search "API design" --all --files --min-score 0.3
572+
```
573+
574+
**Workflow:** When asked to research or compare implementations, run `qmd query` or `qmd search` first to leverage indexed knowledge before general reasoning.
575+
470576
## Notes And Locations
471577

472578
- Blog repo: blank for now.
@@ -529,6 +635,59 @@ cp ~/.config/opencode/opencode.json "$DST/.config/opencode/opencode.json"
529635
- Every skill must declare: inputs, outputs, command sequence, verification, failure handling.
530636
- **Do not invent process unless a failure forced it.** This document must not expand without cause.
531637

638+
## Web-to-Markdown Workflow
639+
640+
When downloading web content as markdown for research or documentation:
641+
642+
### Option 1: Cloudflare Markdown for Agents (Preferred)
643+
644+
For sites using Cloudflare with the feature enabled:
645+
646+
```bash
647+
curl -H "Accept: text/markdown" "https://example.com/page"
648+
```
649+
650+
**Benefits:**
651+
- Native markdown from the CDN
652+
- Includes `x-markdown-tokens` header for token count
653+
- Clean, structured output
654+
- Content-Signal headers indicate usage rights
655+
656+
**Requirements:**
657+
- Site must use Cloudflare
658+
- Zone owner must enable "Markdown for Agents" in dashboard
659+
660+
### Option 2: html2text Fallback (Universal)
661+
662+
For any HTML page when Cloudflare markdown isn't available:
663+
664+
```bash
665+
# Install html2text (one-time)
666+
brew install html2text
667+
668+
# Download and convert
669+
curl -s "https://example.com/page" > /tmp/page.html
670+
html2text /tmp/page.html > output.md
671+
```
672+
673+
**Benefits:**
674+
- Works on any HTML page
675+
- Strips navigation and cruft
676+
- Produces clean text/markdown
677+
- No dependency on site configuration
678+
679+
**Tradeoffs:**
680+
- Plain text format (loses some rich formatting)
681+
- Requires local conversion step
682+
683+
### Decision Matrix
684+
685+
| Approach | Use When | Command |
686+
|----------|----------|---------|
687+
| Cloudflare header | Site uses Cloudflare + enabled | `curl -H "Accept: text/markdown" URL` |
688+
| html2text | Any other site | `curl -s URL \| html2text` |
689+
| webfetch tool | Quick extraction via agent | `webfetch URL --format markdown` |
690+
532691
## Communication Contract
533692

534693
For non-trivial work, always surface assumptions before implementation.

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [5.1.0] - 2026-03-05
11+
12+
### Changed
13+
- Synced from ai-jumpstart v5.1.0: standard Make target taxonomy (`lint` replaces `quality`; `qa`/`qa-smoke`; no `qa-headed`), design system defaults (Geist fonts, CSS token palette, dot-grid), Vite 7 + Tailwind v4 website scaffold, Oracle CLI SKILL.md canonical v0.9.0
14+
1015
## [4.1.1] - 2026-02-25
1116

1217
### Changed

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
4.1.1
1+
5.1.0

0 commit comments

Comments
 (0)