opencode-skills-collection 4.0.0 → 4.0.1
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.
- package/bundled-skills/.antigravity-install-manifest.json +24 -1
- package/bundled-skills/007/SKILL.md +2 -2
- package/bundled-skills/10-andruia-skill-smith/SKILL.md +1 -1
- package/bundled-skills/agent-squad/SKILL.md +5 -0
- package/bundled-skills/agent-squad/alex/SKILL.md +3 -0
- package/bundled-skills/agent-squad/aria/SKILL.md +3 -0
- package/bundled-skills/agent-squad/dep/SKILL.md +3 -0
- package/bundled-skills/agent-squad/luna/SKILL.md +4 -1
- package/bundled-skills/agent-squad/mason/SKILL.md +3 -0
- package/bundled-skills/agent-squad/max/SKILL.md +3 -0
- package/bundled-skills/agent-squad/quinn/SKILL.md +3 -0
- package/bundled-skills/agent-squad/rex/SKILL.md +3 -0
- package/bundled-skills/angular/metadata.json +1 -1
- package/bundled-skills/angular-best-practices/metadata.json +1 -1
- package/bundled-skills/angular-state-management/metadata.json +1 -1
- package/bundled-skills/angular-ui-patterns/metadata.json +1 -1
- package/bundled-skills/antigravity-skill-orchestrator/SKILL.md +2 -2
- package/bundled-skills/apify-actor-development/SKILL.md +2 -2
- package/bundled-skills/apple-container/SKILL.md +165 -0
- package/bundled-skills/apple-container/references/commands.md +1593 -0
- package/bundled-skills/apple-container/references/concepts.md +294 -0
- package/bundled-skills/apple-container/references/configuration.md +499 -0
- package/bundled-skills/apple-container/references/workflows.md +498 -0
- package/bundled-skills/ask-copilot/SKILL.md +112 -0
- package/bundled-skills/auto-research/SKILL.md +126 -0
- package/bundled-skills/brooks-lint/SKILL.md +1 -1
- package/bundled-skills/browser-harness/references/install.md +3 -1
- package/bundled-skills/chrome-extension-developer/SKILL.md +1 -1
- package/bundled-skills/clean-code-guard/SKILL.md +184 -0
- package/bundled-skills/clean-code-guard/references/ai-failure-modes.md +345 -0
- package/bundled-skills/clean-code-guard/references/comments-and-formatting.md +115 -0
- package/bundled-skills/clean-code-guard/references/dry-kiss-yagni.md +133 -0
- package/bundled-skills/clean-code-guard/references/naming-and-functions.md +187 -0
- package/bundled-skills/clean-code-guard/references/review-checklist.md +150 -0
- package/bundled-skills/clean-code-guard/references/solid.md +280 -0
- package/bundled-skills/clean-code-guard/references/sources.md +47 -0
- package/bundled-skills/cloudflare-security-audit/SKILL.md +137 -0
- package/bundled-skills/cloudflare-security-audit/references/AI-AND-LLM.md +67 -0
- package/bundled-skills/cloudflare-security-audit/references/ATTACK-CLASSES.md +116 -0
- package/bundled-skills/cloudflare-security-audit/references/CLIENT-SIDE.md +67 -0
- package/bundled-skills/cloudflare-security-audit/references/HUNTING.md +110 -0
- package/bundled-skills/cloudflare-security-audit/references/MEMORY-SAFETY-AND-BINARY.md +58 -0
- package/bundled-skills/cloudflare-security-audit/references/RECONNAISSANCE.md +46 -0
- package/bundled-skills/cloudflare-security-audit/references/VALIDATION-AND-REPORTING.md +109 -0
- package/bundled-skills/cloudflare-security-audit/references/WEB-PROTOCOL-AND-AUTH.md +85 -0
- package/bundled-skills/cloudflare-security-audit/resources/report-schema.json +210 -0
- package/bundled-skills/comfyui-gateway/references/troubleshooting.md +1 -1
- package/bundled-skills/commit/SKILL.md +2 -1
- package/bundled-skills/deepapi/SKILL.md +6 -6
- package/bundled-skills/docs/README.md +1 -1
- package/bundled-skills/docs/contributors/quality-bar.md +1 -1
- package/bundled-skills/docs/contributors/security-guardrails.md +1 -1
- package/bundled-skills/docs/integrations/jetski-cortex.md +5 -5
- package/bundled-skills/docs/integrations/jetski-gemini-loader/README.md +3 -3
- package/bundled-skills/docs/maintainers/ci-drift-fix.md +7 -5
- package/bundled-skills/docs/maintainers/merge-batch.md +24 -7
- package/bundled-skills/docs/maintainers/pr-autonomy.md +89 -0
- package/bundled-skills/docs/maintainers/release-notes-7.2.0.md +1 -1
- package/bundled-skills/docs/maintainers/release-process.md +9 -9
- package/bundled-skills/docs/maintainers/repo-growth-seo.md +5 -5
- package/bundled-skills/docs/maintainers/skills-date-tracking.md +1 -1
- package/bundled-skills/docs/maintainers/skills-update-guide.md +2 -2
- package/bundled-skills/docs/users/{antigravity-awesome-skills-vs-awesome-claude-skills.md → agentic-awesome-skills-vs-awesome-claude-skills.md} +5 -5
- package/bundled-skills/docs/users/ai-agent-skills.md +4 -4
- package/bundled-skills/docs/users/best-claude-code-skills-github.md +3 -3
- package/bundled-skills/docs/users/best-cursor-skills-github.md +3 -3
- package/bundled-skills/docs/users/bundles.md +56 -57
- package/bundled-skills/docs/users/claude-code-skills.md +6 -6
- package/bundled-skills/docs/users/codex-cli-skills.md +5 -5
- package/bundled-skills/docs/users/cursor-skills.md +3 -3
- package/bundled-skills/docs/users/faq.md +27 -15
- package/bundled-skills/docs/users/gemini-cli-skills.md +4 -4
- package/bundled-skills/docs/users/getting-started.md +22 -12
- package/bundled-skills/docs/users/kiro-integration.md +7 -7
- package/bundled-skills/docs/users/plugins.md +8 -9
- package/bundled-skills/docs/users/security-skills.md +1 -1
- package/bundled-skills/docs/users/skills-vs-mcp-tools.md +1 -1
- package/bundled-skills/docs/users/specialized-plugin-roadmap.md +3 -4
- package/bundled-skills/docs/users/usage.md +9 -9
- package/bundled-skills/docs/users/visual-guide.md +7 -7
- package/bundled-skills/docs/users/windows-truncation-recovery.md +1 -1
- package/bundled-skills/docs/users/workflows.md +1 -1
- package/bundled-skills/docs/vietnamese/BUNDLES.vi.md +1 -1
- package/bundled-skills/docs/vietnamese/FAQ.vi.md +15 -8
- package/bundled-skills/docs/vietnamese/GETTING_STARTED.vi.md +12 -5
- package/bundled-skills/docs/vietnamese/QUALITY_BAR.vi.md +1 -1
- package/bundled-skills/docs/vietnamese/README.vi.md +21 -17
- package/bundled-skills/docs/vietnamese/SECURITY_GUARDRAILS.vi.md +1 -1
- package/bundled-skills/docs/vietnamese/SKILLS_README.vi.md +2 -2
- package/bundled-skills/docs/vietnamese/TRANSLATION_PLAN.vi.md +1 -1
- package/bundled-skills/docs/vietnamese/VISUAL_GUIDE.vi.md +8 -8
- package/bundled-skills/docs-guard/SKILL.md +109 -0
- package/bundled-skills/docs-guard/references/code-samples.md +46 -0
- package/bundled-skills/docs-guard/references/docstrings.md +60 -0
- package/bundled-skills/docs-guard/references/review-checklist.md +45 -0
- package/bundled-skills/docs-guard/references/sources.md +22 -0
- package/bundled-skills/docs-guard/references/verification.md +51 -0
- package/bundled-skills/efficient-web-research/SKILL.md +4 -0
- package/bundled-skills/electron-development/SKILL.md +1 -1
- package/bundled-skills/event-staffing-compliance/SKILL.md +3 -0
- package/bundled-skills/event-staffing-ordering/SKILL.md +3 -0
- package/bundled-skills/feature-tracking/SKILL.md +222 -0
- package/bundled-skills/flutter-expert/SKILL.md +6 -1
- package/bundled-skills/flutter-expert/resources/implementation-playbook.md +214 -0
- package/bundled-skills/gemini-deep-research/README.md +246 -0
- package/bundled-skills/gemini-deep-research/SKILL.md +136 -0
- package/bundled-skills/gemini-deep-research/requirements.txt +2 -0
- package/bundled-skills/gemini-deep-research/scripts/research.py +692 -0
- package/bundled-skills/git-pushing/SKILL.md +21 -4
- package/bundled-skills/git-pushing/scripts/smart_commit.sh +206 -11
- package/bundled-skills/go-in-depth/scripts/workflow-script.js +4 -1
- package/bundled-skills/grok-build/SKILL.md +167 -0
- package/bundled-skills/grok-build/references/cli.md +99 -0
- package/bundled-skills/huggingface-tool-builder/references/find_models_by_paper.sh +1 -1
- package/bundled-skills/idea-autopsy/SKILL.md +147 -0
- package/bundled-skills/it-manager-hospital/README.md +1 -1
- package/bundled-skills/it-manager-pro/README.md +1 -1
- package/bundled-skills/itil-expert/README.md +1 -1
- package/bundled-skills/langgraph/SKILL.md +1 -1
- package/bundled-skills/linkedin-content-generator/SKILL.md +1 -1
- package/bundled-skills/lint-and-validate/scripts/lint_runner.py +23 -23
- package/bundled-skills/lint-and-validate/scripts/type_coverage.py +30 -30
- package/bundled-skills/logic-lens/SKILL.md +1 -1
- package/bundled-skills/lore/LICENSE +21 -0
- package/bundled-skills/lore/README.md +386 -0
- package/bundled-skills/lore/README.zh-CN.md +386 -0
- package/bundled-skills/lore/SKILL.md +453 -0
- package/bundled-skills/lore/WORKFLOWS.md +216 -0
- package/bundled-skills/lore/WORKFLOWS.zh-CN.md +216 -0
- package/bundled-skills/lore/references/audit-template.md +60 -0
- package/bundled-skills/lore/references/compatibility.md +228 -0
- package/bundled-skills/lore/references/config.md +125 -0
- package/bundled-skills/lore/references/entry-format.md +70 -0
- package/bundled-skills/lore/references/history-command.md +106 -0
- package/bundled-skills/lore/references/monorepo-detection.md +78 -0
- package/bundled-skills/lore/references/platform-mirrors.md +377 -0
- package/bundled-skills/lore/references/stale-new-markers.md +62 -0
- package/bundled-skills/lore/references/summary-template.md +98 -0
- package/bundled-skills/lore/scripts/README.md +54 -0
- package/bundled-skills/lore/scripts/README.zh-CN.md +54 -0
- package/bundled-skills/lore/scripts/find_duplicates.py +211 -0
- package/bundled-skills/lore/scripts/find_stale.py +116 -0
- package/bundled-skills/lore/scripts/history.py +527 -0
- package/bundled-skills/lore/scripts/id_hash.py +32 -0
- package/bundled-skills/lore/scripts/list_entries.py +183 -0
- package/bundled-skills/lovable-cleanup/SKILL.md +3 -3
- package/bundled-skills/makepad-splash/SKILL.md +1 -1
- package/bundled-skills/mmx-cli/SKILL.md +14 -1
- package/bundled-skills/monopoly/SKILL.md +5 -0
- package/bundled-skills/monopoly/patterns/SKILL.md +4 -0
- package/bundled-skills/monopoly/scale-benchmarks/SKILL.md +4 -0
- package/bundled-skills/monopoly/security-checklist/SKILL.md +4 -0
- package/bundled-skills/monopoly/tech-matrix/SKILL.md +4 -0
- package/bundled-skills/mtls-configuration/SKILL.md +1 -1
- package/bundled-skills/network-101/SKILL.md +4 -5
- package/bundled-skills/nika/SKILL.md +270 -0
- package/bundled-skills/not-a-vibe-coder/SKILL.md +4 -0
- package/bundled-skills/ontoly-software-graph/SKILL.md +160 -0
- package/bundled-skills/openclaw-github-repo-commander/SKILL.md +1 -1
- package/bundled-skills/pilot-protocol/SKILL.md +6 -3
- package/bundled-skills/postgres-readonly-queries/README.md +77 -0
- package/bundled-skills/postgres-readonly-queries/SKILL.md +152 -0
- package/bundled-skills/postgres-readonly-queries/connections.example.json +34 -0
- package/bundled-skills/postgres-readonly-queries/requirements.txt +1 -0
- package/bundled-skills/postgres-readonly-queries/scripts/query.py +262 -0
- package/bundled-skills/pptx-deck-creation/SKILL.md +275 -0
- package/bundled-skills/pptx-deck-creation/references/audit-checklist.md +156 -0
- package/bundled-skills/pptx-deck-creation/references/design-profiles.md +96 -0
- package/bundled-skills/pptx-deck-creation/references/python-snippets.md +150 -0
- package/bundled-skills/pptx-deck-creation/references/reference-deck-analysis.md +91 -0
- package/bundled-skills/pptx-deck-creation/references/visual-asset-adapters.md +158 -0
- package/bundled-skills/privilege-escalation-methods/SKILL.md +1 -1
- package/bundled-skills/product-decision-agent/SKILL.md +94 -0
- package/bundled-skills/product-decision-agent/agents/openai.yaml +7 -0
- package/bundled-skills/product-decision-agent/references/methodology-basis.md +232 -0
- package/bundled-skills/product-decision-agent/references/product-playbooks.md +813 -0
- package/bundled-skills/product-decision-agent/references/reasoning-engine.md +289 -0
- package/bundled-skills/product-decision-agent/references/response-examples.md +279 -0
- package/bundled-skills/product-decision-agent/scripts/quality_gate.py +221 -0
- package/bundled-skills/product-decision-agent/scripts/test_quality_gate.py +94 -0
- package/bundled-skills/pytest-skill/reference/playbook.md +358 -0
- package/bundled-skills/quit-sponsor/SKILL.md +96 -0
- package/bundled-skills/rclone-cli/references/providers/s3.md +1 -1
- package/bundled-skills/security-and-hardening/SKILL.md +1 -1
- package/bundled-skills/semgrep-rule-creator/SKILL.md +6 -6
- package/bundled-skills/skill-creator/README.md +3 -3
- package/bundled-skills/skill-creator/SKILL.md +8 -4
- package/bundled-skills/skill-creator/scripts/quick_validate.py +1 -1
- package/bundled-skills/sql-injection-testing/SKILL.md +4 -4
- package/bundled-skills/subagent-orchestrator/README.md +1 -1
- package/bundled-skills/super-code/bash/SKILL.md +3 -0
- package/bundled-skills/super-code/c/SKILL.md +3 -0
- package/bundled-skills/super-code/cpp/SKILL.md +3 -0
- package/bundled-skills/super-code/csharp/SKILL.md +3 -0
- package/bundled-skills/super-code/dart/SKILL.md +3 -0
- package/bundled-skills/super-code/elixir/SKILL.md +3 -0
- package/bundled-skills/super-code/go/SKILL.md +3 -0
- package/bundled-skills/super-code/java/SKILL.md +3 -0
- package/bundled-skills/super-code/kotlin/SKILL.md +3 -0
- package/bundled-skills/super-code/php/SKILL.md +3 -0
- package/bundled-skills/super-code/python/SKILL.md +3 -0
- package/bundled-skills/super-code/ruby/SKILL.md +3 -0
- package/bundled-skills/super-code/rust/SKILL.md +3 -0
- package/bundled-skills/super-code/scala/SKILL.md +3 -0
- package/bundled-skills/super-code/swift/SKILL.md +3 -0
- package/bundled-skills/super-code/typescript/SKILL.md +3 -0
- package/bundled-skills/telegram-bot-messaging/README.md +185 -0
- package/bundled-skills/telegram-bot-messaging/SKILL.md +101 -0
- package/bundled-skills/telegram-bot-messaging/scripts/telegram.sh +420 -0
- package/bundled-skills/test-guard/SKILL.md +132 -0
- package/bundled-skills/test-guard/references/jest.md +50 -0
- package/bundled-skills/test-guard/references/llm-app-testing.md +40 -0
- package/bundled-skills/test-guard/references/phpunit.md +56 -0
- package/bundled-skills/test-guard/references/pytest.md +65 -0
- package/bundled-skills/trading-ledger/SKILL.md +11 -3
- package/bundled-skills/uizze-ui-research/SKILL.md +93 -0
- package/bundled-skills/vibe-code-auditor/SKILL.md +1 -1
- package/bundled-skills/vibecode-production-qa-validator/SKILL.md +1 -1
- package/bundled-skills/videodb/scripts/ws_listener.py +29 -15
- package/bundled-skills/voice-ai-engine-development/README.md +1 -1
- package/bundled-skills/vulnerability-scanner/SKILL.md +1 -1
- package/bundled-skills/warehouse/SKILL.md +154 -0
- package/bundled-skills/woo-guard/SKILL.md +113 -0
- package/bundled-skills/woo-guard/references/checkout-and-money.md +64 -0
- package/bundled-skills/woo-guard/references/hpos-and-crud.md +87 -0
- package/bundled-skills/woo-guard/references/review-checklist.md +44 -0
- package/bundled-skills/woo-guard/references/sources.md +17 -0
- package/bundled-skills/wp-guard/SKILL.md +119 -0
- package/bundled-skills/wp-guard/references/i18n.md +88 -0
- package/bundled-skills/wp-guard/references/performance.md +70 -0
- package/bundled-skills/wp-guard/references/review-checklist.md +57 -0
- package/bundled-skills/wp-guard/references/security.md +100 -0
- package/bundled-skills/wp-guard/references/sources.md +27 -0
- package/bundled-skills/writing-skills/gotchas.md +1 -1
- package/bundled-skills/writing-skills/references/standards/metadata-standard.md +1 -1
- package/bundled-skills/x-twitter-scraper/SKILL.md +14 -32
- package/bundled-skills/xss-html-injection/SKILL.md +3 -3
- package/bundled-skills/youtube-seo-optimizer/SKILL.md +1 -1
- package/bundled-skills/youtube-summarizer/CHANGELOG.md +2 -2
- package/package.json +1 -1
- package/skills_index.json +273 -0
|
@@ -0,0 +1,386 @@
|
|
|
1
|
+
# lore
|
|
2
|
+
|
|
3
|
+
<p align="center">
|
|
4
|
+
<img src="docs/lore-poster.svg" alt="lore" width="100%">
|
|
5
|
+
</p>
|
|
6
|
+
|
|
7
|
+
<p align="center"><em><strong>lore</strong> (noun) — a body of traditions and knowledge on a subject, passed from person to person. — Oxford English Dictionary</em></p>
|
|
8
|
+
|
|
9
|
+
<p align="right"><a href="README.zh-CN.md">简体中文</a> · English (this page)</p>
|
|
10
|
+
|
|
11
|
+
> Framework-agnostic project memory for AI coding agents.
|
|
12
|
+
|
|
13
|
+
A long-term knowledge base for software projects, maintained by AI agents. Captures the kind of context that normally lives only in the original developer's head — architecture, decisions, conventions — and persists it as plain Markdown files that any agent can consume.
|
|
14
|
+
|
|
15
|
+
> **lore is a SKILL, not a CLI tool.** It is a Markdown spec ([`SKILL.md`](SKILL.md)) that AI coding agents — Claude Code, Cursor, OpenCode, Cline, Aider, GitHub Copilot — read to gain long-term project memory. You do not `npm install` or `pip install` lore; you give your agent the URL and ask it to install the skill. From then on, phrases like `lore init` and `lore sync` are commands you say to your agent, **not** commands you type in a terminal. There is no `lore` binary on your `PATH`.
|
|
16
|
+
|
|
17
|
+
## Installation
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
git clone https://github.com/TheaDust/lore.git <your-agent-skills-dir>
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Or, simpler — tell your agent:
|
|
24
|
+
|
|
25
|
+
> Install https://github.com/TheaDust/lore as a skill.
|
|
26
|
+
|
|
27
|
+
Each agent host loads skills from its own directory (`~/.claude/skills/` for Claude Code, `<project>/.claude/skills/` for project-scoped, etc.). Your agent knows its own skills directory and can clone the repo into the right place.
|
|
28
|
+
|
|
29
|
+
> Looking for a specific doc? Jump to: [Quick start](#quick-start) · [What it looks like](#what-this-looks-like) · [What lives in `.lore/`](#what-lives-in-lore) · [Seven workflows](#seven-workflows) · [Platform mirrors](#platform-mirrors) · [Configuration](#configuration) · [Upgrading](#upgrading) · [FAQ](#faq). Full reference docs live in [`references/`](references/). **Want plain-language "when to use each workflow"?** See [`WORKFLOWS.md`](WORKFLOWS.md) (also in [中文](WORKFLOWS.zh-CN.md)).
|
|
30
|
+
|
|
31
|
+
## What it solves
|
|
32
|
+
|
|
33
|
+
When you work on a project across multiple AI tools (Claude Code, Cursor, Cline, GitHub Copilot, Aider, LangGraph agents, DeepAgents) and across many sessions, context gets lost:
|
|
34
|
+
|
|
35
|
+
- **Every new session re-explains the project.** "We're using Next.js App Router, not Pages. Use Zustand, not Redux. Don't commit secrets."
|
|
36
|
+
- **Decisions are forgotten.** "Why did we pick X over Y?" → "I don't remember, let me ask the team."
|
|
37
|
+
- **Agents disagree with each other.** Cursor follows `.cursorrules`, Claude Code follows `CLAUDE.md`, but the two files drift apart.
|
|
38
|
+
- **Onboarding takes weeks.** New members / new agents need to learn the conventions from scratch.
|
|
39
|
+
|
|
40
|
+
lore maintains a single source of truth (`.lore/`) and projects it into whatever config files your agents already read. It tracks *why* decisions were made, not just *what* the code does, and keeps that history across sessions and tools.
|
|
41
|
+
|
|
42
|
+
## Quick start
|
|
43
|
+
|
|
44
|
+
The commands below are **phrases you say to your agent** — there is no `lore` binary. With this skill loaded, your agent runs each phrase through the workflow defined in [`SKILL.md`](SKILL.md). Anything you'd normally type into a terminal goes to the agent instead.
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
# 1. Initialize (run once per project)
|
|
48
|
+
lore init
|
|
49
|
+
# Walks the project, drafts entries, asks for confirmation, creates .lore/
|
|
50
|
+
|
|
51
|
+
# 2. After a non-trivial change
|
|
52
|
+
lore sync
|
|
53
|
+
# Detects code diffs, proposes [NEW]/[STALE]/[REFINED] entries, waits for your call
|
|
54
|
+
|
|
55
|
+
# 3. After many changes, refresh the agent-facing summary
|
|
56
|
+
lore compress
|
|
57
|
+
# Regenerates SUMMARY.md and updates CLAUDE.md / .cursorrules / etc.
|
|
58
|
+
|
|
59
|
+
# 4. Force a mirror refresh (e.g. after hand-editing .lore/)
|
|
60
|
+
lore mirror
|
|
61
|
+
# Rewrites CLAUDE.md and other platform files from current state
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
Three read-only commands round out the toolkit:
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
lore query # Answer a question from memory, cite entry IDs
|
|
68
|
+
lore audit # Check memory vs. reality, write report to .lore/audit/
|
|
69
|
+
lore history DEC-2026-02-03-7c19 # Show git commits that touched an entry's code
|
|
70
|
+
lore history frontend/src/store.ts # ...or a file
|
|
71
|
+
lore history --scope=frontend # ...or every lore file in a scope
|
|
72
|
+
lore history --json # machine-readable
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## What this looks like
|
|
76
|
+
|
|
77
|
+
### Querying memory
|
|
78
|
+
|
|
79
|
+
> You: "How does this project authenticate API requests?"
|
|
80
|
+
> Agent (uses `lore query auth`):
|
|
81
|
+
|
|
82
|
+
```
|
|
83
|
+
Found 6 entries matching 'auth':
|
|
84
|
+
|
|
85
|
+
[_global/DECISIONS.md#DEC-2026-07-10-6d9c]
|
|
86
|
+
Opaque base64 tokens over JWT; reason: simpler revocation, no library dep.
|
|
87
|
+
|
|
88
|
+
[scopes/backend/ARCHITECTURE.md#ARCH-2026-07-10-59ac]
|
|
89
|
+
Auth helpers in backend/app/auth.py:
|
|
90
|
+
hash_password, issue_token, login_required decorator.
|
|
91
|
+
|
|
92
|
+
[scopes/backend/CONVENTIONS.md#CONV-2026-07-10-84e3]
|
|
93
|
+
Missing/invalid token returns 401; resource not found returns 404.
|
|
94
|
+
|
|
95
|
+
[scopes/frontend/ARCHITECTURE.md#ARCH-2026-07-10-6de2]
|
|
96
|
+
Auth token stored in localStorage under todo.auth.token key.
|
|
97
|
+
|
|
98
|
+
[scopes/frontend/DECISIONS.md#DEC-2026-07-10-c1ea]
|
|
99
|
+
Axios over raw fetch; reason: interceptors for auth header injection.
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
Every answer cites the exact `[file#ID]` so you can `cat` the entry or run `lore history <ID>` to see why the decision exists.
|
|
103
|
+
|
|
104
|
+
### What `CLAUDE.md` looks like
|
|
105
|
+
|
|
106
|
+
`lore` keeps per-session cost flat by emitting a small index, not the full memory:
|
|
107
|
+
|
|
108
|
+
```markdown
|
|
109
|
+
## Lore (auto-managed)
|
|
110
|
+
|
|
111
|
+
Project memory. Read deeper on demand.
|
|
112
|
+
|
|
113
|
+
**Structure**:
|
|
114
|
+
- Digest: `.lore/SUMMARY.md` (top-level overview)
|
|
115
|
+
- Global: `.lore/_global/` (architecture, decisions, conventions)
|
|
116
|
+
- Scopes: `.lore/scopes/`
|
|
117
|
+
- `.lore/scopes/backend/` (Flask 3 + SQLAlchemy 2 + pytest; Python 3.11+)
|
|
118
|
+
- `.lore/scopes/frontend/` (React 18 + TypeScript + Vite + Zustand + Axios)
|
|
119
|
+
- `.lore/scopes/shared/` (TypeScript types mirrored as Python dataclasses)
|
|
120
|
+
|
|
121
|
+
**Query**: `lore query <term>` or `lore query <scope>:<term>`
|
|
122
|
+
**Update**: see the `lore` skill (init / sync / query / audit / compress / mirror)
|
|
123
|
+
|
|
124
|
+
---
|
|
125
|
+
## My notes (free edit)
|
|
126
|
+
|
|
127
|
+
- Anything you write here is preserved verbatim across every sync.
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
### Git traceability with `lore history`
|
|
131
|
+
|
|
132
|
+
> `lore history DEC-2026-07-10-e45d` (asking "why did we choose bcrypt?")
|
|
133
|
+
|
|
134
|
+
```
|
|
135
|
+
# history: [DEC-2026-07-10-e45d]
|
|
136
|
+
|
|
137
|
+
> Entry: scopes\backend\DECISIONS.md
|
|
138
|
+
> Since: 2026-07-10 (entry #added date)
|
|
139
|
+
> File: backend
|
|
140
|
+
> Commits: 2 (showing all)
|
|
141
|
+
|
|
142
|
+
## 9f264f4 (2026-07-10, Lore Tester)
|
|
143
|
+
feat(backend): add alembic migrations and switch password hashing to bcrypt
|
|
144
|
+
|
|
145
|
+
## ed2b288 (2026-07-10, Lore Tester)
|
|
146
|
+
feat(backend): password hashing and JWT-style auth tokens
|
|
147
|
+
|
|
148
|
+
## Suggested next step
|
|
149
|
+
Run `lore sync` to check whether any of these commits
|
|
150
|
+
introduce a [REFINED] candidate for this entry.
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
The agent reads the commit messages and tells you *why* — without you having to manually dig through `git log`.
|
|
154
|
+
|
|
155
|
+
## What lives in `.lore/`
|
|
156
|
+
|
|
157
|
+
```
|
|
158
|
+
.lore/
|
|
159
|
+
├── SUMMARY.md # Top-level digest; new agents read this first
|
|
160
|
+
├── _global/ # Cross-scope facts
|
|
161
|
+
│ ├── ARCHITECTURE.md
|
|
162
|
+
│ ├── DECISIONS.md
|
|
163
|
+
│ └── CONVENTIONS.md
|
|
164
|
+
├── scopes/ # Per-scope facts (frontend / backend / shared)
|
|
165
|
+
│ └── <scope>/
|
|
166
|
+
│ ├── ARCHITECTURE.md
|
|
167
|
+
│ ├── DECISIONS.md
|
|
168
|
+
│ └── CONVENTIONS.md
|
|
169
|
+
├── draft/ # Used by `init` for proposals pending confirmation
|
|
170
|
+
├── audit/ # Used by `audit` for reports
|
|
171
|
+
└── archive/ # Old/superseded entries
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
Each entry is a single Markdown bullet (≤ 2 lines) with a deterministic ID and inline status tags:
|
|
175
|
+
|
|
176
|
+
```markdown
|
|
177
|
+
- [ARCH-2026-07-09-a3f2] Use Next.js App Router; reason: streaming + RSC. #added:2026-07-09
|
|
178
|
+
- [DEC-2026-02-03-7c19] Chose Zustand over Redux; reason: 60% less boilerplate. #added:2026-02-03 #verified:2026-06-15
|
|
179
|
+
- [CONV-2026-01-20-b1e8] Never commit secrets; use `dotenv` + `.env.local` (gitignored). #added:2026-01-20
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
For the full format spec (ID generation, tags, splitting rules), see [`references/entry-format.md`](references/entry-format.md).
|
|
183
|
+
|
|
184
|
+
## Seven workflows
|
|
185
|
+
|
|
186
|
+
| Command | What it does | Writes | Reference |
|
|
187
|
+
|---|---|---|---|
|
|
188
|
+
| `init` | First-time project scan; drafts entries; user confirms | `.lore/*` + platform mirrors | [SKILL.md](SKILL.md#init--initialize-the-memory-bank) |
|
|
189
|
+
| `sync` | Detects code changes; proposes updates; user approves | `.lore/*` only (not mirrors) | [SKILL.md](SKILL.md#sync--update-after-a-change) |
|
|
190
|
+
| `query` | Read-only; answers from memory with entry IDs | nothing | [SKILL.md](SKILL.md#query--answer-from-memory) |
|
|
191
|
+
| `audit` | Read-only; checks memory vs. current code; writes report | `.lore/audit/*` only | [`references/audit-template.md`](references/audit-template.md) |
|
|
192
|
+
| `compress` | Generates `SUMMARY.md` from current entries | `SUMMARY.md` + platform mirrors | [`references/summary-template.md`](references/summary-template.md) |
|
|
193
|
+
| `mirror` | Force-regenerate platform mirrors (with content dedup) | `CLAUDE.md`, `.cursorrules`, etc. | [`references/platform-mirrors.md`](references/platform-mirrors.md) |
|
|
194
|
+
| `history` | Read-only; lists git commits related to an entry / file / scope | nothing | [`references/history-command.md`](references/history-command.md) |
|
|
195
|
+
|
|
196
|
+
For a plain-language explanation of each workflow (when you'd actually use each one, with real scenarios), see [`WORKFLOWS.md`](WORKFLOWS.md) (中文版: [`WORKFLOWS.zh-CN.md`](WORKFLOWS.zh-CN.md)).
|
|
197
|
+
|
|
198
|
+
`sync` deliberately does **not** update platform mirrors. Mirror files are agent-facing entry points, not per-change logs. Regenerating them on every `sync` would clutter `git log` and dilute the "human-merged" signal they're supposed to provide. Run `lore mirror` (or `compress`) when you want the agent-facing view to catch up.
|
|
199
|
+
|
|
200
|
+
To restore old behavior (mirror updates on every `sync`), set `"sync_updates_mirror": true` in `.lore/.config.json`.
|
|
201
|
+
|
|
202
|
+
## Sync trust levels
|
|
203
|
+
|
|
204
|
+
`sync` can auto-apply or require confirmation depending on the change type and the configured trust level:
|
|
205
|
+
|
|
206
|
+
| Change type | `high` | `medium` (default) | `low` |
|
|
207
|
+
|---|---|---|---|
|
|
208
|
+
| De-duplicate hit | auto | auto | confirm |
|
|
209
|
+
| Equivalent REFINED | auto | auto | confirm |
|
|
210
|
+
| `NEW` entry | auto | confirm | confirm |
|
|
211
|
+
| `STALE` mark | auto | confirm | confirm |
|
|
212
|
+
| `ALERT` | confirm | confirm | confirm |
|
|
213
|
+
|
|
214
|
+
The default `medium` is a balance: low-risk changes apply silently, real additions or contradictions still get your sign-off. Switch to `high` for high-confidence projects (you trust the agent fully) or `low` if you want to review every change.
|
|
215
|
+
|
|
216
|
+
## Platform mirrors
|
|
217
|
+
|
|
218
|
+
lore's canonical store is `.lore/*`, but it projects into the config files agents already read. Targets are resolved by scanning the repo root for existing platform files (auto-detect). When none are present, `lore init` asks via multi-select which agents to write for. Setting `mirror_targets` in `.lore/.config.json` overrides this with an explicit list (Replace semantics).
|
|
219
|
+
|
|
220
|
+
| Platform | File | Auto-detected? |
|
|
221
|
+
|---|---|---|
|
|
222
|
+
| Claude Code | `CLAUDE.md` | ✅ |
|
|
223
|
+
| Cursor | `.cursorrules` (or `.cursor/rules/*.mdc`) | ✅ |
|
|
224
|
+
| Cline | `.clinerules` | ✅ |
|
|
225
|
+
| Aider / Codex / OpenCode | `AGENTS.md` (or `CONVENTIONS.md`) | ✅ |
|
|
226
|
+
| Windsurf | `.windsurfrules` | ✅ |
|
|
227
|
+
| GitHub Copilot | `.github/copilot-instructions.md` | ✅ |
|
|
228
|
+
| Continue.dev | `.continue/rules/lore.md` | ✅ |
|
|
229
|
+
| LangGraph / DeepAgents | (no file — read `.lore/*.md` directly) | n/a |
|
|
230
|
+
|
|
231
|
+
Each mirror file is split into two sections by a `---` separator:
|
|
232
|
+
|
|
233
|
+
```markdown
|
|
234
|
+
## Lore (auto-managed)
|
|
235
|
+
... Skill-managed content from .lore/ ...
|
|
236
|
+
|
|
237
|
+
---
|
|
238
|
+
|
|
239
|
+
## My notes (free edit)
|
|
240
|
+
... your hand-written notes, preserved verbatim across syncs ...
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
The Skill only writes inside the `## Lore` section. Everything under `## My notes` is yours to edit freely. The Skill preserves it verbatim across every `sync` and `compress`.
|
|
244
|
+
|
|
245
|
+
## Token cost
|
|
246
|
+
|
|
247
|
+
lore's token model has five components. Only the mirror file is per-session; everything else is on-demand or per-invocation.
|
|
248
|
+
|
|
249
|
+
| Component | Loaded when | Typical size | Per-session? |
|
|
250
|
+
|---|---|---|---|
|
|
251
|
+
| **Mirror file** (CLAUDE.md, AGENTS.md, etc.) | Every session start | ~500 bytes (index mode) | yes |
|
|
252
|
+
| **SKILL.md** (the lore spec itself) | Every `lore <cmd>` invocation | ~10 KB | no, per-invocation |
|
|
253
|
+
| **`.lore/SUMMARY.md`** | Agent reads on demand as the table of contents | 1–30 KB | no, on demand |
|
|
254
|
+
| **`scopes/<scope>/{ARCH,DEC,CON}.md`** | Agent reads only the relevant scope | 1–5 KB each | no, on demand |
|
|
255
|
+
| **`lore query <term>`** result | Agent runs a query | bounded by matches | no, per query |
|
|
256
|
+
|
|
257
|
+
### The mirror is constant-cost
|
|
258
|
+
|
|
259
|
+
`CLAUDE.md` and equivalent platform files are loaded by your agent on **every session**. lore keeps this cost flat by emitting an index (~500 bytes) rather than the project digest content. This is the only line item that scales with session count.
|
|
260
|
+
|
|
261
|
+
| Project size | Mirror size | Per-session context cost |
|
|
262
|
+
|---|---|---|
|
|
263
|
+
| Empty / new | ~200 bytes | negligible |
|
|
264
|
+
| Small (~30 entries) | ~500 bytes | negligible |
|
|
265
|
+
| Medium (~120 entries) | ~500 bytes | negligible |
|
|
266
|
+
| Large (~250 entries) | ~500 bytes | negligible |
|
|
267
|
+
|
|
268
|
+
### Memory is on-demand
|
|
269
|
+
|
|
270
|
+
`.lore/*.md` files are **not** pre-loaded. The agent reads `SUMMARY.md` as a table of contents, then drills into the specific scope or entry it needs (`cat [file#ID]`). A 250-entry project costs the agent ~500 bytes at session start, plus only the entries it actively reads.
|
|
271
|
+
|
|
272
|
+
### SKILL.md is per-invocation
|
|
273
|
+
|
|
274
|
+
Every time you say `lore sync` or `lore query`, the agent loads `SKILL.md` (~10 KB) to follow the workflow. Outside of lore invocations, no lore content sits in the agent's context.
|
|
275
|
+
|
|
276
|
+
### Queries are bounded
|
|
277
|
+
|
|
278
|
+
`lore query <term>` returns matched entries with stable IDs and one-line summaries, not the full text of `.lore/`. A single query is bounded by the number of matches regardless of total project size.
|
|
279
|
+
|
|
280
|
+
### Ambient vs on-demand knowledge
|
|
281
|
+
|
|
282
|
+
**Ambient** knowledge is already in the agent's context at session start — no fetch needed. **On-demand** knowledge is read only when the agent asks (`cat [file#ID]`, `lore query <term>`).
|
|
283
|
+
|
|
284
|
+
lore's mirror file (`CLAUDE.md`, `AGENTS.md`, etc.) is ambient — the agent sees it every session. Everything under `.lore/` is on-demand: `SUMMARY.md` is the table of contents, and entries are fetched when the agent actually needs them.
|
|
285
|
+
|
|
286
|
+
Default is on-demand. If you'd rather dump the full `SUMMARY.md` into `CLAUDE.md` every session (true ambient), that works but isn't recommended — it trades session-start cost for zero fetch. See [`references/platform-mirrors.md`](references/platform-mirrors.md) for the index template.
|
|
287
|
+
|
|
288
|
+
## Scripts
|
|
289
|
+
|
|
290
|
+
Helper scripts in `scripts/` reduce repetitive mechanical work:
|
|
291
|
+
|
|
292
|
+
```bash
|
|
293
|
+
python scripts/id_hash.py "Use Next.js App Router" # → a3f2 (4-char ID hash)
|
|
294
|
+
python scripts/list_entries.py # List all entries (text)
|
|
295
|
+
python scripts/list_entries.py --scope=frontend --json # Filtered JSON
|
|
296
|
+
python scripts/find_duplicates.py # Find potential duplicates
|
|
297
|
+
python scripts/find_stale.py --days=90 # Find stale entries
|
|
298
|
+
python scripts/history.py DEC-2026-02-03-7c19 # Show git history for an entry
|
|
299
|
+
```
|
|
300
|
+
|
|
301
|
+
All scripts are cross-platform Python 3.6+ with no third-party dependencies. See [`scripts/README.md`](scripts/README.md) (English) or [`scripts/README.zh-CN.md`](scripts/README.zh-CN.md) (Chinese) for details.
|
|
302
|
+
|
|
303
|
+
## Configuration
|
|
304
|
+
|
|
305
|
+
`.lore/.config.json` is optional. The defaults work for most projects.
|
|
306
|
+
|
|
307
|
+
```json
|
|
308
|
+
{
|
|
309
|
+
"schema_version": 1,
|
|
310
|
+
"auto_mirror": false,
|
|
311
|
+
"sync_updates_mirror": false,
|
|
312
|
+
"sync_trust": "medium",
|
|
313
|
+
"mirror_targets": ["CLAUDE.md"], // optional — auto-detected if absent
|
|
314
|
+
"mirror_mode": "index",
|
|
315
|
+
"compress_thresholds": { "max_entries": 500, "max_days_since_compress": 30 },
|
|
316
|
+
"sync_thresholds": { "min_lines_changed": 50, "min_directories_changed": 2 }
|
|
317
|
+
}
|
|
318
|
+
```
|
|
319
|
+
|
|
320
|
+
Field semantics: see [`references/config.md`](references/config.md). New configs include `schema_version: 1`; old configs without it still work but trigger a warning. See [`references/compatibility.md`](references/compatibility.md) for the compatibility policy.
|
|
321
|
+
|
|
322
|
+
## Upgrading
|
|
323
|
+
|
|
324
|
+
`git pull` (or re-clone) is the normal upgrade path; your `.lore/` is preserved verbatim across upgrades. If a future release ships a breaking config change, that release will include `scripts/migrate.py`; run it once after pulling. The current schema is `schema_version: 1`; no migration has shipped yet, so you don't need to run anything today. See [`references/compatibility.md`](references/compatibility.md) for the versioning policy and deprecation workflow.
|
|
325
|
+
|
|
326
|
+
## When NOT to use lore
|
|
327
|
+
|
|
328
|
+
lore is built for long-term projects. It's overkill for:
|
|
329
|
+
|
|
330
|
+
- **Short-lived scripts / one-off demos.** The maintenance overhead exceeds the value.
|
|
331
|
+
- **Rapid prototyping** where decisions change weekly. The decision-tracking machinery gets in the way.
|
|
332
|
+
- **Tiny single-file projects.** Just use a `README.md`.
|
|
333
|
+
- **Projects where you never want AI to make decisions.** If you want a pure read-only agent, lore adds no value.
|
|
334
|
+
- **Massive monorepos with 50+ packages.** The scope tree becomes unwieldy; consider splitting per-package or using a sub-skill per cluster.
|
|
335
|
+
|
|
336
|
+
## FAQ
|
|
337
|
+
|
|
338
|
+
**Q: Does lore work without git?**
|
|
339
|
+
A: Partially. Most of lore is **agent workflow** described in `SKILL.md` — the agent reads your files, drafts entries, edits `.lore/*.md`, and (when asked) regenerates mirrors. Without git, the agent can still do `init` / `query` / `audit` / `compress` / `mirror` by reading files directly. What you lose: `sync` uses `git diff` to detect changes (no diff → the agent asks you what changed), and `lore history` requires a git repo (it runs `git log`). The helper scripts (`list_entries.py`, `find_stale.py`, etc.) work either way.
|
|
340
|
+
|
|
341
|
+
**Q: Can I hand-edit `.lore/*.md` directly?**
|
|
342
|
+
A: Yes. The files are plain Markdown. Use `id_hash.py` if you're adding new entries (to keep IDs deterministic). After hand-editing, run `lore mirror` to update agent-facing files.
|
|
343
|
+
|
|
344
|
+
**Q: What if I don't want a mirror file at all (just `.lore/`)?**
|
|
345
|
+
A: Set `mirror_targets: []` in `.config.json`. The `compress` and `mirror` commands will be no-ops on the file system; only `SUMMARY.md` and the entry files matter.
|
|
346
|
+
|
|
347
|
+
**Q: How is this different from Cursor's `.cursorrules` or Aider's `AGENTS.md`?**
|
|
348
|
+
A: Those are flat lists of rules. lore is structured (architecture / decisions / conventions), atomic (one fact per entry), and historical (every entry has `#added` and `#verified` tags). It also produces those files for you.
|
|
349
|
+
|
|
350
|
+
**Q: Does lore talk to the agent's API?**
|
|
351
|
+
A: No. lore is pure file I/O. The agent invoking lore does the semantic work (scanning code, deciding what to extract, classifying changes); lore provides the file layout, the ID scheme, the markers, and the verification scripts.
|
|
352
|
+
|
|
353
|
+
**Q: What about the agent's native `/init` or `/compact` commands?**
|
|
354
|
+
A: They serve different purposes. `/init` is a one-shot project scan → `CLAUDE.md`. `/compact` compresses conversation context. lore `init` and `compress` manage long-term project knowledge, not session context. If you run `lore init` on a project that already has a non-lore `CLAUDE.md`, the takeover check (init step 0) handles integration.
|
|
355
|
+
|
|
356
|
+
**Q: What's the difference between `sync` and `mirror`?**
|
|
357
|
+
A: `sync` updates `.lore/` from code changes (run after a feature or refactor). `mirror` updates agent-facing files (`CLAUDE.md`, `.cursorrules`, etc.) from current `.lore/`. `sync` deliberately does **not** update mirrors — mirror files should be human-merged, not regenerated on every commit, so `git log` stays readable. Run `mirror` (or `compress`) explicitly when you want agent-facing files to catch up.
|
|
358
|
+
|
|
359
|
+
**Q: How is lore different from ADRs (Architecture Decision Records)?**
|
|
360
|
+
A: ADRs are documents — one markdown file per decision. lore is structured project memory: one fact per entry, with a stable ID and `#added` / `#verified` / `#stale` markers. The `DEC` layer can replace `docs/adr/` (one DEC entry per decision), but lore also covers `ARCH` (architecture) and `CON` (conventions) in the same store, plus generates agent-facing summaries via `compress` / `mirror`. Use lore **instead of** ADRs, or **alongside** them (one DEC entry pointing to the existing ADR document).
|
|
361
|
+
|
|
362
|
+
**Q: What if I disagree with an entry the agent wrote?**
|
|
363
|
+
A: Edit `.lore/*.md` directly — it's plain Markdown. The next `mirror` / `compress` will reflect your edit, and the helper scripts keep the ID stable as long as the entry text is unchanged. To revert to pre-AI state, `git checkout .lore/` like any tracked file.
|
|
364
|
+
|
|
365
|
+
**Q: Can I sync `.lore/` across multiple machines without git?**
|
|
366
|
+
A: Git is the recommended transport (`.lore/` is plain text in your repo; `git push` / `git pull` carry it). Other transports (Dropbox, OneDrive, Syncthing) work as long as you trust their text-file conflict resolution — they won't understand lore's ID scheme or `#added` markers. **Don't run two agents on the same `.lore/` simultaneously**; last-writer-wins, and IDs aren't protected by a remote lock.
|
|
367
|
+
|
|
368
|
+
## License
|
|
369
|
+
|
|
370
|
+
[MIT](./LICENSE) — use, modify, redistribute, sublicense, and sell, including commercially. No warranty.
|
|
371
|
+
|
|
372
|
+
---
|
|
373
|
+
|
|
374
|
+
<p align="center">
|
|
375
|
+
<a href="SKILL.md">SKILL.md</a> ·
|
|
376
|
+
<a href="references/entry-format.md">entry-format</a> ·
|
|
377
|
+
<a href="references/summary-template.md">summary-template</a> ·
|
|
378
|
+
<a href="references/audit-template.md">audit-template</a> ·
|
|
379
|
+
<a href="references/monorepo-detection.md">monorepo-detection</a> ·
|
|
380
|
+
<a href="references/stale-new-markers.md">stale-new-markers</a> ·
|
|
381
|
+
<a href="references/platform-mirrors.md">platform-mirrors</a> ·
|
|
382
|
+
<a href="references/config.md">config</a> ·
|
|
383
|
+
<a href="references/history-command.md">history-command</a> ·
|
|
384
|
+
<a href="references/compatibility.md">compatibility</a> ·
|
|
385
|
+
<a href="scripts/README.md">scripts</a>
|
|
386
|
+
</p>
|