Add OpenSpec workflow and Claude Code guidance
Initialize the repository with configuration for spec-driven change management via OpenSpec. Add CLAUDE.md to document the project's purpose (documentation-only design phase for a personal memory system), directory layout, current architecture, and repository conventions including provenance discipline and ADR practices. Add .gitignore to exclude local AI-assistant skill mirror directories (.claude/, .codex/, .pi/) which are kept in sync locally but not versioned.
This commit is contained in:
parent
334d5fc703
commit
342de3cfa0
|
|
@ -0,0 +1,4 @@
|
|||
# Local AI-assistant skill mirrors (kept in sync locally, not versioned)
|
||||
.claude/
|
||||
.codex/
|
||||
.pi/
|
||||
|
|
@ -0,0 +1,84 @@
|
|||
# CLAUDE.md
|
||||
|
||||
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
||||
|
||||
## What this repository is
|
||||
|
||||
`cc-os` is a **documentation- and design-only repository** — there is no application code,
|
||||
build, lint, or test step yet. It captures the design of a **personal, cross-project memory
|
||||
system for Claude Code** (for a multi-client freelancer) plus the research that informs it.
|
||||
Implementation has **not started**; the deliverables here are markdown specs, ADRs, and a
|
||||
build outline that a future session turns into a real implementation.
|
||||
|
||||
Everything is markdown-as-truth. When asked to "build," the next step is to convert the
|
||||
existing build outline into a staged implementation plan, not to start coding ad hoc.
|
||||
|
||||
## Directory layout
|
||||
|
||||
Numbered files within a directory are not a required reading order — read the one whose topic
|
||||
you need.
|
||||
|
||||
- **`docs/memory-system/`** — the design of the memory system itself. Go here to understand or
|
||||
change *what is being built*. `02-system-design.md` is the architecture, `03-architecture-
|
||||
decisions.md` is the ADR log (each decision + what was rejected/deferred and why),
|
||||
`04-build-plan.md` is the build outline, `06-graphify-evaluation.md` justifies the Graphify
|
||||
pivot. Read the specific file relevant to your task; read the whole set only when reworking
|
||||
the design.
|
||||
- **`docs/graphify/`** — a verified handbook for the Graphify knowledge-graph tool (the chosen
|
||||
knowledge-layer engine). Go here when working with Graphify commands/behavior. Skim
|
||||
`00-README.md` for the model, keep `09-best-practices-checklist.md` open while actually
|
||||
running it. Claims are provenance-tagged (`[github]` trustworthy; `[interview]` /
|
||||
`[unverified claim]` not).
|
||||
- **`graphify-interview`, `memory-systems-compared060326`** (repo root) — raw source
|
||||
transcripts (marketing / video). Only open these to trace where a claim came from; treat as
|
||||
*intent*, not *fact* — they were already corrected against primary sources in `docs/`.
|
||||
- **`openspec/`** — spec-driven change management (see workflow below). `changes/` holds live
|
||||
changes, `changes/archive/` completed ones, `specs/` stable specs.
|
||||
- **`.claude/`, `.codex/`, `.pi/`** — **identical** copies of the OpenSpec skills for three AI
|
||||
assistants. Only open when changing a skill — and mirror any change across all three.
|
||||
|
||||
## The current design in one paragraph
|
||||
|
||||
This is a **work in progress**, not a frozen spec. The paragraph below is the current approach;
|
||||
treat it as the default you operate from, but **whenever a conversation with the user changes
|
||||
the design, update this paragraph (and the relevant `docs/memory-system/` files + an ADR) to
|
||||
match.** Keep it accurate, don't preserve it for its own sake.
|
||||
|
||||
Two memory types kept as **separate systems**: **episodic** ("what happened, when") handled by
|
||||
**memsearch** (Milvus Lite, embedded), and **semantic/knowledge** ("how do we…") handled by a
|
||||
flat **Obsidian markdown vault** as the single source of truth. Notes keep `summary` +
|
||||
namespaced tags (`tool/`/`client/`/`domain/`/`convention/`/`scope/`) as metadata, and the vault
|
||||
is queried via a **Graphify knowledge graph** (local Ollama SLM for doc extraction, free
|
||||
tree-sitter AST for code). Retrieval is hook-injected + on-demand so project repos stay thin;
|
||||
freshness is lazy
|
||||
(write-time hook + SessionStart reconcile, no daemon/cron); the vault syncs to a VPS while
|
||||
indexes stay disposable and rebuildable. Ships as a global Claude Code plugin with skills.
|
||||
|
||||
**Recent pivot (2026-06-03):** Graphify **replaces** the originally-planned Ruby/SQLite
|
||||
tag-index CLI and also covers the deferred QMD semantic layer. `04-build-plan.md` and
|
||||
`06-graphify-evaluation.md` reflect this; if an older doc still describes the Ruby CLI, defer
|
||||
to those two and fix the stale doc.
|
||||
|
||||
## OpenSpec workflow
|
||||
|
||||
Changes are managed spec-driven via OpenSpec. Use the matching skills rather than editing spec
|
||||
files by hand: `openspec-explore` (think through an idea), `openspec-propose` (create a change
|
||||
with design/specs/tasks), `openspec-apply-change` (implement tasks), `openspec-verify-change`
|
||||
(validate before archiving), `openspec-archive-change`. Slash commands mirror these under
|
||||
`/opsx:*`. Live changes live in `openspec/changes/`, completed ones in
|
||||
`openspec/changes/archive/`, stable specs in `openspec/specs/`.
|
||||
|
||||
`openspec/config.yaml` uses `schema: spec-driven`; its `context` block is currently empty —
|
||||
project context for OpenSpec artifacts comes from `docs/` and this file.
|
||||
|
||||
## Conventions specific to this repo
|
||||
|
||||
- **Provenance discipline:** when writing about Graphify or anything sourced from the
|
||||
interview transcripts, keep the inline source tags and never promote an `[interview]` /
|
||||
`[unverified claim]` to fact without checking a primary source (the GitHub repo is the
|
||||
authority; it was anchored to Graphify **v0.8.30**).
|
||||
- **Dates are absolute** (e.g. `2026-06-03`), and design docs carry a `_Last updated:_` /
|
||||
status line — keep these current when editing.
|
||||
- **Decisions live in ADRs.** Don't silently reverse a locked decision; add or amend an ADR in
|
||||
`03-architecture-decisions.md` with the reasoning.
|
||||
- The package on PyPI is `graphifyy` (double-y) but the command is `graphify`.
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
schema: spec-driven
|
||||
|
||||
# Project context (optional)
|
||||
# This is shown to AI when creating artifacts.
|
||||
# Add your tech stack, conventions, style guides, domain knowledge, etc.
|
||||
# Example:
|
||||
# context: |
|
||||
# Tech stack: TypeScript, React, Node.js
|
||||
# We use conventional commits
|
||||
# Domain: e-commerce platform
|
||||
|
||||
# Per-artifact rules (optional)
|
||||
# Add custom rules for specific artifacts.
|
||||
# Example:
|
||||
# rules:
|
||||
# proposal:
|
||||
# - Keep proposals under 500 words
|
||||
# - Always include a "Non-goals" section
|
||||
# tasks:
|
||||
# - Break tasks into chunks of max 2 hours
|
||||
Loading…
Reference in New Issue