mirror of
https://github.com/openprose/prose.git
synced 2026-09-19 05:55:05 +08:00
63c8ce4b23
Move the standard library (previously `github.com/openprose/std`) and
the company-as-prose library (previously local dir
`/Users/sl/code/openprose/company-as-prose`) into this repository
under `packages/std/` and `packages/co/` respectively.
Motivation: concentrate attention on one repository so stars,
discussions, and issues aggregate. `openprose/std` was a genuinely
useful asset nobody could find because ~50 stars on its own repo
told a much worse story than 1,106 stars on `openprose/prose`
would have. Same logic applies to co.
Layout choice: `packages/{std,co}/` rather than `std/` + `co/` at
the repo root. Root siblings accumulate over time, and a flat
top-level made future libraries (hub, kit, dev, etc.) compete with
spec infrastructure. `packages/` is bounded — new libraries land
there without cluttering root. Matches pnpm/Deno/monorepo tooling
conventions.
Changes:
- New: `packages/std/` (copied from openprose/std, `.git` excluded)
- New: `packages/co/` (copied from company-as-prose, README updated
for new name and location)
- `packages/std/README.md`: updated shorthand expansion reference
- `packages/co/README.md`: renamed "company-as-prose" to "co" in
self-references, added std-vs-co split heuristic, updated
`prose run` examples to use `co/` shorthand
- `skills/open-prose/deps.md`:
- `std/` shorthand now expands to
`github.com/openprose/prose/packages/std/`
- `co/` shorthand added, expands to
`github.com/openprose/prose/packages/co/`
- Both shorthands resolve into the same clone of
`openprose/prose` under `.deps/github.com/openprose/prose/`;
`packages/std/` and `packages/co/` are sibling subdirectories
- `prose.lock` format row updated to `host/owner/repo sha`
(matches the explicit-host resolution that landed in #35)
- `.deps/` directory structure example redrawn to show the
`{host}/{owner}/{repo}/packages/{std,co}/...` shape
- Error message and Interaction tables refreshed accordingly
- Resolution Algorithm step 1 now documents both shorthands
- `skills/open-prose/forme.md`: Step 2 resolution list updated to
include co/ shorthand and the host-keyed `.deps/` layout
- `skills/open-prose/help.md`: Q&A "How do dependencies work?"
rewritten to name both shorthands and the new explicit-host model
- `skills/open-prose/state/filesystem.md`: `.deps/` directory
tree re-drawn to include the `{host}/` layer with std/co as
sibling packages inside the clone
- `skills/open-prose/guidance/patterns.md`,
`skills/open-prose/guidance/antipatterns.md`: examples now use
the `std/` shorthand or explicit `github.com/...` rather than
the deprecated bare `openprose/std/` form
- `skills/open-prose/examples/registry-import/index.md`: sample
service reference switched to `std/evals/inspector`
- `README.md`: Stdlib badge replaced with internal `packages/std/`
link plus new `packages/co/` link; "Standard Library" section
rewritten as "Libraries" with both packages described
Out of scope for this PR (deliberately):
- Tooling changes to `prose install` and Forme's `.deps/` writer
to adopt the `{host}/{owner}/{repo}/` layout in practice — this
PR is spec-only. Existing tooling continues to work against
whatever layout it currently implements; the spec now describes
the target.
- Retiring the `openprose/std` GitHub repo. Delete that repo
separately after this merges.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
119 lines
3.5 KiB
Plaintext
119 lines
3.5 KiB
Plaintext
# Project Memory
|
|
# A persistent agent that understands this specific project
|
|
#
|
|
# Usage:
|
|
# prose run @openprose/lib/project-memory --backend sqlite+
|
|
#
|
|
# Recommended backend: sqlite+ (for durable project-scoped persistence)
|
|
#
|
|
# Modes:
|
|
# ingest: Read and understand content (code, docs, history)
|
|
# query: Ask questions about the project
|
|
# update: Record decisions, changes, or learnings
|
|
# summarize: Get an overview of the project
|
|
#
|
|
# The memory agent builds understanding over time. Ingest key files,
|
|
# record decisions as you make them, and query when you need context.
|
|
|
|
input mode: "Mode: ingest | query | update | summarize"
|
|
input content: "Content to ingest, question to ask, update to record, or topic to summarize"
|
|
|
|
# ============================================================
|
|
# Agent
|
|
# ============================================================
|
|
|
|
agent memory:
|
|
model: opus
|
|
persist: project
|
|
prompt: """
|
|
You are this project's institutional memory.
|
|
|
|
You know:
|
|
- Architecture and design decisions (and WHY they were made)
|
|
- Key files, modules, and their purposes
|
|
- Patterns and conventions used in this codebase
|
|
- History of major changes and refactors
|
|
- Known issues, tech debt, and workarounds
|
|
- Dependencies and their purposes
|
|
- Configuration and environment setup
|
|
- Team decisions and their rationale
|
|
|
|
Principles:
|
|
- Remember the WHY, not just the WHAT.
|
|
- Track evolution—how things changed over time.
|
|
- Note uncertainty and gaps in your knowledge.
|
|
- Reference specific files, commits, or discussions when possible.
|
|
- Keep knowledge structured and retrievable.
|
|
"""
|
|
|
|
# ============================================================
|
|
# Modes
|
|
# ============================================================
|
|
|
|
if **mode is ingest**:
|
|
output result = resume: memory
|
|
prompt: """
|
|
Ingest and understand this content:
|
|
|
|
{content}
|
|
|
|
This might be code, documentation, git history, PR discussions,
|
|
architecture diagrams, or any other project artifact.
|
|
|
|
Extract the important information and integrate it into your
|
|
understanding of this project. Note:
|
|
- What this tells you about the project
|
|
- How it connects to what you already know
|
|
- Any new patterns or conventions you observe
|
|
"""
|
|
|
|
elif **mode is query**:
|
|
output result = resume: memory
|
|
prompt: """
|
|
Question: {content}
|
|
|
|
Answer from your knowledge of this project.
|
|
|
|
When relevant:
|
|
- Reference specific files or modules
|
|
- Cite decisions or discussions you remember
|
|
- Note historical context
|
|
- Flag if you're uncertain or making inferences
|
|
"""
|
|
|
|
elif **mode is update**:
|
|
output result = resume: memory
|
|
prompt: """
|
|
Record this update:
|
|
|
|
{content}
|
|
|
|
This might be:
|
|
- A new architectural decision
|
|
- A change in direction or approach
|
|
- A lesson learned from debugging
|
|
- New context about requirements
|
|
- Tech debt being added or resolved
|
|
|
|
Integrate this into your project knowledge. Note the date
|
|
and how this relates to previous understanding.
|
|
"""
|
|
|
|
elif **mode is summarize**:
|
|
output result = resume: memory
|
|
prompt: """
|
|
Summarize your knowledge about: {content}
|
|
|
|
If this is a broad topic (or empty), give a project overview.
|
|
If specific, focus on that area.
|
|
|
|
Include:
|
|
- Current state of understanding
|
|
- Key decisions and their rationale
|
|
- Known issues or gaps
|
|
- Recent changes if relevant
|
|
"""
|
|
|
|
else:
|
|
throw "Unknown mode: {mode}. Use: ingest, query, update, or summarize"
|