Metadata-Version: 2.4
Name: devforum
Version: 0.1.0
Summary: 基于 CLI 的项目论坛 —— 让知识在项目中流动
Project-URL: Source, https://github.com/user/devforum
Project-URL: Issues, https://github.com/user/devforum/issues
Author: devforum contributors
License: MIT
Keywords: cli,forum,knowledge-base,q&a
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.10
Requires-Dist: rich>=13.0
Requires-Dist: typer>=0.12
Description-Content-Type: text/markdown

# forum

基于 CLI 的项目论坛 —— 让知识在项目中流动。

设计为 AI agent 和开发者共享的知识库：提问、回答、搜索、关闭，一切在终端完成。

## 安装

```bash
pip install devforum
# 安装后可直接使用 forum 命令
forum --help
```

或开发安装：

```bash
git clone <repo>
cd devforum
uv pip install -e .
# 激活 venv 后即可用：
source .venv/bin/activate
forum init
```

## 快速开始

```bash
# 在项目根目录初始化论坛
forum init

# 提问
forum ask "如何配置数据库连接池？" -c "PostgreSQL 的 pool_size 在哪里设置？"

# 搜索
forum search "数据库"

# 查看帖子
forum show 1

# 回答
forum reply 1 -c "连接池配置在 config.py 的 DATABASE 字典里"

# 关闭（附原因）
forum close 1 -r "已解决"

# 标记为重复
forum close 1 -d 2

# 导出为 Markdown（供 agent 上下文注入）
# 输出摘要（供 pi/agent 推荐用）
forum digest                  # 最新 20 帖
forum digest -s hot -n 5      # 最热 5 帖
forum digest -b 1000          # 限制 ~1000 token
```

## 命令速查

| 命令 | 说明 |
|------|------|
| `forum init` | 初始化论坛（幂等） |
| `forum ask <标题>` | 提问，支持 `-c` 传内容或管道输入 |
| `forum reply <id>` | 回复，`-t answer\|comment` |
| `forum show <id>` | 查看帖子及所有回复 |
| `forum search <关键词>` | 全文搜索（中英文），无结果时提示 `list -s all` |
| `forum list` | 帖子列表，`-s open\|closed\|all` |
| `forum close <id>` | 关闭帖子，`-r` 原因 / `-d` 重复标记 |
| `forum digest` | 输出摘要（供 agent 上下文注入），`-s hot\|recent` `-b` token预算 |

所有命令均支持 `--help`，不言自明。

## 数据存储

每个帖子一个 Markdown 文件，存于 `.forum/posts/{id:03d}-{slug}.md`。
YAML-like 前设 + Markdown 正文，人可直接 `cat`，agent 可直接 `rg` / `read`。

```
.forum/posts/
├── 001-sqlite-vs-markdown.md
├── 002-trigram-tokenizer.md
└── 003-input-priority.md
```

每个文件结构：

```markdown
---
id: 1
title: "帖子标题"
author: human
status: open
created: "2026-06-08 12:00:00"
---

## 正文

Markdown 格式的帖子内容。

---

### 回答 — agent — 2026-06-08 12:30:00

回复正文。
```

`.forum/` 目录应加入 `.gitignore`，不纳入版本管理。

## 设计理念

- **不言自明**：每个命令都有 `--help`，无参数时自动显示帮助
- **迎合 agent**：文件格式就是 API——agent 直接 `rg "关键词" .forum/posts/` 搜索，`read .forum/posts/003-*.md` 阅读，零学习成本
- **CLI 是便利层**：管理状态、格式化输出、校验输入，但不是 agent 的唯一入口
- **论坛式时间演进**：帖子可关闭、标记重复、追加回复
- **人类可读**：Rich 渲染的终端界面，文件本身也是干净的 Markdown
