[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-81057":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":8,"htmlUrl":8,"language":9,"languages":8,"totalLinesOfCode":8,"stars":10,"forks":11,"watchers":11,"openIssues":12,"contributorsCount":12,"subscribersCount":12,"size":12,"stars1d":12,"stars7d":12,"stars30d":12,"stars90d":12,"forks30d":12,"starsTrendScore":12,"compositeScore":13,"rankGlobal":8,"rankLanguage":8,"license":14,"archived":15,"fork":15,"defaultBranch":16,"hasWiki":17,"hasPages":15,"topics":18,"createdAt":8,"pushedAt":8,"updatedAt":19,"readmeContent":20,"aiSummary":21,"trendingCount":12,"starSnapshotCount":12,"syncStatus":22,"lastSyncTime":23,"discoverSource":24},81057,"opensoirceor","prithvi471\u002Fopensoirceor","prithvi471",null,"Python",28,1,0,37.9,"Apache License 2.0",false,"main",true,[],"2026-06-12 04:01:31","# Aegis PM — PRD Analyzer\n\n**The PRD review tool for product managers who don't have time to wait for a senior PM to read their doc.**\n\nPaste a PRD. Get a structured 100-point score across 10 dimensions, the\nsingle biggest gap, three specific rewrite suggestions, and the questions\na reviewer would actually ask. Profile-aware: a startup PRD, a TCS\nengagement doc, and a Big Tech design doc are scored differently.\n\nThis is the **production product**. The repository also contains experimental\nmodules (task breakdown, assignment, sprint tracking) — see\n[Roadmap](#roadmap) for current status.\n\n---\n\n## What it does (Phase 1)\n\n**Two modes for the analyzer:**\n\n| Mode | Latency | Cost | What it tells you |\n|---|---|---|---|\n| `scan` | \u003C100ms | $0 | What sections exist, what's missing, structural completeness % |\n| `analyze` | ~3s | ~$0.03 | Full 100-point score, dimension breakdown, rewrite suggestions, reviewer questions |\n\n**Profile-aware scoring** for:\n- `startup` — falsifiability, lean PRD conventions\n- `it_services` — SOW alignment, client-side acceptance, KT plan\n- `big_tech` — design-doc conventions, alternatives mandatory, OKRs\n- `financial_services` — regulatory considerations *(see [Compliance Caveat](#compliance-caveat))*\n\n---\n\n## Quickstart — no API key needed\n\nThree modes, in order of friction. Pick whichever fits.\n\n### Zero-setup (rules-only) — instant, no API, no model download\n\n```bash\npip install -r requirements.txt\npython -m eval.runner --mode rules_only --max 3   # see it working in 1 second\n```\n\nScore any PRD with the deterministic regex + heuristic engine (82% band-pass on\nour 50-fixture eval — see [LEADERBOARD.md](LEADERBOARD.md)). Free, offline,\nprivate. Useful as a CI gate or a fast pre-check.\n\n```python\nfrom engine.module3_analyzer.prd_analyzer import PRDAnalyzer\nanalyzer = PRDAnalyzer()                       # no LLM client\nresult = analyzer.analyze(open(\"my_prd.md\").read(), mode=\"rules_only\")\nprint(f\"{result['total_score']}\u002F100 — {result['rating']}\")\n```\n\n### Local LLM (your laptop) — no key, no cloud, ~5GB download\n\n```bash\n# Install Ollama from https:\u002F\u002Follama.com, then:\nollama pull llama3.1:8b\nexport AEGIS_LOCAL_BASE_URL=http:\u002F\u002Flocalhost:11434\u002Fv1\nexport AEGIS_LOCAL_MODEL=llama3.1:8b\npython -m engine.verify --live                # confirms local model responds\n```\n\nSame JSON output shape as the cloud path, but runs entirely on your hardware.\nSlower (~30-60s per PRD on CPU) but unlimited and fully private.\n\n### Cloud LLM (free tier) — fastest + highest quality\n\nPick **either** of these free providers — no credit card:\n\n```bash\n# Option A: Groq (recommended — fast, generous daily limit)\necho \"GROQ_API_KEY=gsk_xxxxxxxxxxxx\" >> .env       # get one at console.groq.com\n\n# Option B: OpenRouter (free models like deepseek-chat-v3:free)\necho \"OPENROUTER_API_KEY=sk-or-xxxxxxxxxxxx\" >> .env  # openrouter.ai\n\npython -m engine.verify --live\n```\n\nAegis auto-detects whichever key is present. Set `AEGIS_REDACT=1` if you handle\nPII or regulated data — see [SECURITY.md](SECURITY.md). For detailed signup\nsteps and per-provider rate limits, see [BUDGET.md](BUDGET.md).\n\n### Common usage\n\n```python\nfrom engine.ai_engine import AegisEngine\n\neng = AegisEngine()\n\n# Free, instant: structural scan (no LLM)\nscan = eng.scan_prd(open(\"my_prd.md\").read())\nprint(f\"Completeness: {scan['completeness']}%\")\nprint(f\"Missing: {scan['missing_sections']}\")\n\n# Full analysis (uses whatever's configured: rules, local, or cloud)\nresult = eng.analyze_prd(open(\"my_prd.md\").read())\nprint(f\"Score: {result['total_score']}\u002F100 — {result['rating']}\")\nprint(f\"Critical gap: {result['critical_gap']}\")\nfor tip in result['top_improvements']:\n    print(f\"  - {tip}\")\n```\n\n---\n\n## Architecture (Phase 1)\n\n```\n       ┌──────────────────┐\n       │  PRD text input  │\n       └────────┬─────────┘\n                │\n     ┌──────────┴──────────┐\n     │                     │\n     ▼                     ▼\n┌──────────┐         ┌──────────────┐\n│  Layer 1 │         │  Layer 1+2+3 │\n│  scan()  │         │   analyze()  │\n│  regex   │         │   regex →    │\n│  \u003C100ms  │         │   LLM →      │\n│  free    │         │   RAG ground │\n└──────────┘         │   ~3s, $0.03 │\n                     └──────┬───────┘\n                            │\n                            ▼\n                     ┌──────────────┐\n                     │ 100-pt score │\n                     │ 10 dims      │\n                     │ rewrites     │\n                     │ Q&A          │\n                     └──────────────┘\n```\n\n**Underneath:**\n- **Module 1 — RAG Knowledge Base.** Hybrid BM25 + dense vector +\n  Reciprocal Rank Fusion + cross-encoder re-ranking, over a 99K-word\n  curated PM corpus.\n- **Module 3 — Analyzer.** 10-dimension rubric (problem statement, target\n  user, goals, metrics, solution, risks, stakeholders, open questions,\n  launch, writing). Profile-specific scoring overlays.\n- **LLMClient.** Provider-agnostic (OpenAI \u002F Anthropic \u002F Azure \u002F local\n  OpenAI-compatible). Built-in redaction, audit logging, and\n  local-model fallback. See [SECURITY.md](SECURITY.md).\n\n---\n\n## Eval\n\nEvery prompt change is gated by an eval set:\n\n```bash\n# Structural eval (no API key, runs in CI)\npytest eval\u002Ftest_eval.py -v\n\n# Full LLM eval (10 anchors × 5 perturbations = 50 fixtures)\n# Costs $0.00 if you use Groq \u002F OpenRouter \u002F Gemini free tier — see BUDGET.md\npython -m eval.runner\n```\n\nSee [eval\u002FREADME.md](eval\u002FREADME.md) for acceptance thresholds.\n\n---\n\n## Roadmap\n\n| Module | Status | Notes |\n|---|---|---|\n| 1 — RAG knowledge base | ✅ Production | 99K-word corpus, hybrid retrieval |\n| 2 — PRD generator | ✅ Production | Profile + template aware |\n| 3 — PRD analyzer | ✅ **Production — the wedge** | 100-pt rubric, 50-fixture eval |\n| 4 — Task breakdown | 🧪 Experimental | See [module4_tasks\u002FEXPERIMENTAL.md](engine\u002Fmodule4_tasks\u002FEXPERIMENTAL.md) |\n| 5 — Task assignment | 🧪 Experimental | Greedy bin-packing, naive skill match |\n| 6 — Resource planner | 🧪 Experimental | Hardcoded focus factor, magic-number defaults |\n| 7 — Sprint tracker | 🧪 Experimental | In-memory state only, no persistence |\n\nExperimental modules are gated behind the env var `AEGIS_ENABLE_EXPERIMENTAL=1`.\n**Do not deploy experimental modules to production.**\n\n---\n\n## Compliance Caveat\n\nThe `financial_services` profile **enriches scoring with finserv-specific\nheuristics** — it does **not** make this system finserv-compliant.\n\nIn particular, the system as shipped:\n- Sends PRD content to a third-party LLM unless redaction is enabled.\n- Has no guaranteed data residency.\n- Does not produce a regulator-grade audit trail.\n- Has not been independently security-reviewed or SOC2-attested.\n\n**If you operate under SEC, FINRA, MiFID, GDPR-with-finserv-overlay, or\nsimilar regimes, do not use the LLM-backed `analyze` path on\nmaterial non-public information without:**\n\n1. Setting `AEGIS_REDACT=1` (see [SECURITY.md](SECURITY.md)).\n2. Configuring a local model fallback (`AEGIS_LOCAL_BASE_URL`).\n3. Independent legal sign-off on the data flow.\n\nFor a one-page customer-facing summary aimed at compliance officers,\nsee [TRUST.md](TRUST.md). For the full technical detail (redaction\npatterns, audit-log schema, env vars, every guarantee + every\nnon-guarantee), see [SECURITY.md](SECURITY.md).\n\n---\n\n## Contributing \u002F development\n\n```bash\n# Run all tests (no API key required for unit tests)\npytest tests\u002F eval\u002Ftest_eval.py -v\n\n# Eval the analyzer end-to-end\npython -m eval.runner --scan-only       # CI mode, no API\npython -m eval.runner                    # Full mode, costs ~$0.15 with gpt-4o-mini\n```\n\nWhen you change a prompt:\n1. Run the full eval.\n2. Commit the resulting `eval\u002Fresults.json`.\n3. Diff `band_pass_rate` and `dim_*` counters against the previous baseline.\n4. Don't merge a regression without an explicit reason in the PR.\n","Aegis PM是一款针对产品经理设计的PRD审查工具，能够快速提供结构化的100分评分、主要差距分析、具体改写建议及模拟评审员可能提出的问题。项目基于Python开发，支持两种分析模式：“扫描”模式可在100毫秒内完成文档结构完整性检查；“分析”模式则大约需要3秒时间来生成全面的评分与改进建议，并根据不同场景（如初创企业、IT服务、大型科技公司等）调整评分标准。Aegis PM适合于希望提高产品需求文档质量且需快速反馈的产品团队使用，在无需高级产品经理参与的情况下也能获得有价值的反馈。此外，该工具提供了本地运行和云端API调用两种部署方式，以满足不同用户对于性能和隐私的需求。",2,"2026-06-11 04:03:21","CREATED_QUERY"]