docs: promote sf state guidance
This commit is contained in:
parent
a14cd0df29
commit
4f217cc88c
7 changed files with 17 additions and 116 deletions
3
.gitignore
vendored
3
.gitignore
vendored
|
|
@ -100,5 +100,8 @@ repowise.db
|
|||
.sf/mcp.json
|
||||
.sf.migrating/
|
||||
.sf/evals/
|
||||
.sf/harness/
|
||||
.sf/milestones/
|
||||
.sf/scaffold-manifest.json
|
||||
.sf/interactive.lock
|
||||
.sf/interactive.lock.d/
|
||||
|
|
|
|||
|
|
@ -1,10 +1,6 @@
|
|||
<!-- sf-doc: version=2.75.3 template=.sf/ANTI-GOALS.md state=pending hash=sha256:56b4f7d20d49e4558ac5aea5e967cf3475ef98d68dfa8985ba42b3e2b0d72e25 -->
|
||||
# Anti-goals
|
||||
|
||||
What we explicitly DON'T want. Things that look attractive but we've decided against.
|
||||
|
||||
This is gold — most wrong agent calls come from not knowing what to avoid. Each entry: 1-2 sentences with the rationale.
|
||||
|
||||
## Examples
|
||||
|
||||
- (replace with your own)
|
||||
- SF must not ship or revive an MCP server package or runtime endpoint. SF may consume external MCP servers as a client, but its own tools remain native SF/pi tools.
|
||||
- Runtime state files under `.sf/` must not become a peer source of truth when SQLite can hold the structured state. JSON, JSONL, and Markdown runtime artifacts are generated evidence, projections, or legacy import inputs.
|
||||
- Do not add direct `sqlite3 .sf/sf.db` workflows to docs or agent guidance. Database access should go through runtime-owned SF commands, tools, or adapters so schema and validation rules stay centralized.
|
||||
- Do not commit transient `.sf` runtime directories such as eval outputs, harness scaffolds, milestone workspaces, locks, journals, or migration worktrees. Promote durable decisions and reviewed plans into `docs/`.
|
||||
|
|
|
|||
|
|
@ -1,10 +1,6 @@
|
|||
<!-- sf-doc: version=2.75.3 template=.sf/PRINCIPLES.md state=pending hash=sha256:9d5c50cb3d602f66468a33a4324068fab8a022fab0fd6940c371a5986af2947e -->
|
||||
# Principles
|
||||
|
||||
Durable design philosophy. Things this codebase believes are true.
|
||||
|
||||
Add entries as you make decisions. Each entry: 1-2 sentences. Cite the rationale (the why, not just the what).
|
||||
|
||||
## Examples
|
||||
|
||||
- (replace with your own)
|
||||
- SQLite is the canonical structured store for SF runtime state when the data needs schema, ordering, priority, joins, or validation. File artifacts may be generated from the DB or imported once from legacy state, but they should not become competing authorities.
|
||||
- Durable project knowledge belongs in reviewed, versioned artifacts. Promote plans, specs, and ADRs to `docs/`; keep `.sf` runtime output transient unless a file is explicitly human-authored project guidance.
|
||||
- Native SF/pi tools are the product boundary. Integrations may call external MCP servers as clients, but SF-owned capabilities should not be exposed by an SF MCP server.
|
||||
- Prioritization should be represented as structured state, not filename order or prose position. Prefer explicit priority/order fields in DB-backed roadmap and task records.
|
||||
|
|
|
|||
12
.sf/TASTE.md
12
.sf/TASTE.md
|
|
@ -1,10 +1,6 @@
|
|||
<!-- sf-doc: version=2.75.3 template=.sf/TASTE.md state=pending hash=sha256:ee9ea8ade6f8434e9425a989bab9735d2068395978d61940e18679b93b1f11b0 -->
|
||||
# Taste
|
||||
|
||||
What good code looks like here. Idioms, conventions, "we prefer X over Y" calls.
|
||||
|
||||
Add entries as you notice patterns worth preserving. Each entry: 1-2 sentences with a concrete example.
|
||||
|
||||
## Examples
|
||||
|
||||
- (replace with your own)
|
||||
- Prefer runtime adapters over ad hoc file parsing when reading SF state. For example, query solver eval history through `sf-db.js` helpers rather than reading `.sf/evals/**/report.json`.
|
||||
- Keep generated artifacts clearly named, ignored, and reproducible. A committed doc should read like reviewed source, not like a cached run output with host-local paths.
|
||||
- Use precise boundary names in files and symbols. Avoid stale `mcp` names for native workflow tools; reserve MCP wording for client-side integration with external servers.
|
||||
- Make migrations one-way and observable. Legacy JSON, JSONL, or Markdown should be imported into SQLite with schema/version checks, then left as ignored fallback or removed when the cutover is complete.
|
||||
|
|
|
|||
|
|
@ -1,20 +0,0 @@
|
|||
<!-- sf-doc: version=2.75.3 template=.sf/harness/specs/bootstrap.md state=pending hash=sha256:b86ba7cf2cec39a7a9f9d94f885998cfe26eebfc5b76fdd8375ef125e927e0cf -->
|
||||
# Bootstrap Spec: Agent Legibility
|
||||
|
||||
Verifies that this repo is minimally agent-legible.
|
||||
|
||||
## Criteria
|
||||
|
||||
- [ ] `AGENTS.md` exists at repo root and is non-empty.
|
||||
- [ ] `ARCHITECTURE.md` exists at repo root and is non-empty.
|
||||
- [ ] `docs/exec-plans/active/` exists.
|
||||
- [ ] `docs/exec-plans/tech-debt-tracker.md` exists.
|
||||
- [ ] `docs/design-docs/ADR-TEMPLATE.md` exists.
|
||||
|
||||
## Verification command
|
||||
|
||||
```bash
|
||||
for f in AGENTS.md ARCHITECTURE.md docs/exec-plans/active/index.md docs/exec-plans/tech-debt-tracker.md docs/design-docs/ADR-TEMPLATE.md .sf/harness/specs/bootstrap.md; do [ -s "$f" ] && echo "OK: $f" || echo "MISSING: $f"; done
|
||||
```
|
||||
|
||||
All lines should start with `OK:` for the bootstrap spec to pass.
|
||||
|
|
@ -1,69 +0,0 @@
|
|||
{
|
||||
"schemaVersion": 1,
|
||||
"applied": [
|
||||
{
|
||||
"path": ".sf/harness/AGENTS.md",
|
||||
"template": ".sf/harness/AGENTS.md",
|
||||
"version": "2.75.3",
|
||||
"appliedAt": "2026-05-06T21:03:18.882Z",
|
||||
"stateAtApply": "pending",
|
||||
"contentHash": "sha256:685c41e601340086b8076263a71315c66554efdaeb074bc1b907eebf879174c6"
|
||||
},
|
||||
{
|
||||
"path": ".sf/harness/specs/AGENTS.md",
|
||||
"template": ".sf/harness/specs/AGENTS.md",
|
||||
"version": "2.75.3",
|
||||
"appliedAt": "2026-05-06T21:03:18.882Z",
|
||||
"stateAtApply": "pending",
|
||||
"contentHash": "sha256:0f4fbf4111704d05744e4a4e13a9bf3eada262f0da9517c2010f0b46f4bd3c45"
|
||||
},
|
||||
{
|
||||
"path": ".sf/harness/specs/bootstrap.md",
|
||||
"template": ".sf/harness/specs/bootstrap.md",
|
||||
"version": "2.75.3",
|
||||
"appliedAt": "2026-05-06T21:03:18.882Z",
|
||||
"stateAtApply": "pending",
|
||||
"contentHash": "sha256:b86ba7cf2cec39a7a9f9d94f885998cfe26eebfc5b76fdd8375ef125e927e0cf"
|
||||
},
|
||||
{
|
||||
"path": ".sf/harness/evals/AGENTS.md",
|
||||
"template": ".sf/harness/evals/AGENTS.md",
|
||||
"version": "2.75.3",
|
||||
"appliedAt": "2026-05-06T21:03:18.882Z",
|
||||
"stateAtApply": "pending",
|
||||
"contentHash": "sha256:6f88bf8a2bad95d8db5985c9b3317b9edd65592c12e98bb0bff1a24ec152d768"
|
||||
},
|
||||
{
|
||||
"path": ".sf/harness/graders/AGENTS.md",
|
||||
"template": ".sf/harness/graders/AGENTS.md",
|
||||
"version": "2.75.3",
|
||||
"appliedAt": "2026-05-06T21:03:18.882Z",
|
||||
"stateAtApply": "pending",
|
||||
"contentHash": "sha256:2db17feae1acfe62d85aafbe32d016873c3036d4d76e9dd0db478375fae0794e"
|
||||
},
|
||||
{
|
||||
"path": ".sf/PRINCIPLES.md",
|
||||
"template": ".sf/PRINCIPLES.md",
|
||||
"version": "2.75.3",
|
||||
"appliedAt": "2026-05-06T21:03:18.882Z",
|
||||
"stateAtApply": "pending",
|
||||
"contentHash": "sha256:9d5c50cb3d602f66468a33a4324068fab8a022fab0fd6940c371a5986af2947e"
|
||||
},
|
||||
{
|
||||
"path": ".sf/TASTE.md",
|
||||
"template": ".sf/TASTE.md",
|
||||
"version": "2.75.3",
|
||||
"appliedAt": "2026-05-06T21:03:18.882Z",
|
||||
"stateAtApply": "pending",
|
||||
"contentHash": "sha256:ee9ea8ade6f8434e9425a989bab9735d2068395978d61940e18679b93b1f11b0"
|
||||
},
|
||||
{
|
||||
"path": ".sf/ANTI-GOALS.md",
|
||||
"template": ".sf/ANTI-GOALS.md",
|
||||
"version": "2.75.3",
|
||||
"appliedAt": "2026-05-06T21:03:18.882Z",
|
||||
"stateAtApply": "pending",
|
||||
"contentHash": "sha256:56b4f7d20d49e4558ac5aea5e967cf3475ef98d68dfa8985ba42b3e2b0d72e25"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,9 +1,8 @@
|
|||
---
|
||||
|
||||
## M001-6377a4: Consolidate Memory Systems into Unified node:sqlite Store
|
||||
|
||||
**Gathered:** 2026-05-07
|
||||
**Status:** Ready for planning
|
||||
**Status:** Promoted plan
|
||||
**Source:** Promoted from `.sf/milestones/M001-6377a4/M001-6377a4-CONTEXT.md`
|
||||
|
||||
## Project Description
|
||||
|
||||
Loading…
Add table
Reference in a new issue