AgentMarketMCP / SKILL 资产档案馆

目录 / Q Kdb Code Review

SKILL 未评级 已上架

Q Kdb Code Review

--- name: q-kdb-code-review description: AI-powered code review for Q/kdb+ — catch bugs in the most terse language in finance version: 1.0.0 homepage: https://github.com/beee003/astrai-openclaw metadata: clawdbot: emoji: "⚡" requires: env: ["ASTRAI_API_KEY"] primaryEnv: "ASTRAI_API_KEY" files: ["plugin.py", "config.example.toml"] tags: [q, kdb, kdb-plus, quant, finance, code-review, hft, trading, timeseries] --- # q-kdb-code-review AI-powered code review for Q/kdb+ — catch bugs, performance issues, and security vulnerabilities in the most terse language in quantitative finance. ## What it does Reviews Q/kdb+ code with deep understanding of Q idioms, performance patterns, and common pitfalls. Built for quant developers, kdb+ DBAs, and trading infrastructure teams. **Catches:** - Type errors in implicit casts (e.g., mixing longs and floats in comparisons) - Rank errors from wrong argument counts in function calls - Unescaped signals in protected evaluation - Memory-inefficient queries (selecting all columns when only some are needed) - Missing `peach` parallelism opportunities for embarrassingly parallel operations - Unsafe `eval`/`value` usage on user-supplied strings (Q injection) - Unlocked tables during concurrent inserts - Missing `` `g# `` grouped attributes on high-cardinality join columns - N-squared joins that should be `aj` (asof joins) or `wj` (window joins) - Race conditions in timer callbacks (.z.ts) - Unprotected IPC handlers (.z.pg, .z.ps) and exposed .z.pw **Strictness modes:** | Mode | What it checks | |------|---------------| | `standard` | Bugs, correctness, type errors, join semantics, null handling | | `strict` | Everything in standard + performance (attributes, peach, vector ops) + style | | `security` | Everything in standard + injection via string eval, unprotected IPC handlers, exposed .z.pw, port exposure | **Intelligent routing via Astrai:** Complex algorithmic Q (custom signal generation, real-time CEP) routes to powerful models. Simple table operations (selects, inserts, schema definitions) route to cheaper, faster models. You get the best result at the lowest cost. **BYOK (Bring Your Own Keys):** Your provider API keys, your billing. Astrai routes to the best model among your configured providers. ## Setup 1. **Get a free API key** at [as-trai.com](https://as-trai.com) 2. **Set your API key:** ```bash export ASTRAI_API_KEY="your_key_here" ``` 3. **Optionally add provider keys** for BYOK routing: ```bash export ANTHROPIC_API_KEY="sk-ant-..." export OPENAI_API_KEY="sk-..." ``` 4. **Run `/review-q`** on any `.q` file ## Usage ``` /review-q Review current Q file /review-q --strict Strict mode: bugs + performance + style /review-q --focus security Security mode: eval injection, IPC, .z.pw /review-q --file tick.q Review a specific file ``` ### Example output ``` Reviewing tick.q (strict mode)... Model: claude-opus-4-6 via Astrai Found 3 issues: [CRITICAL] Line 12: Missing `s# attribute on time column `trade` table uses `aj` but `time` column lacks sorted attribute. Without `s#`, asof join scans linearly — O(n) instead of O(log n). Fix: trade: `trade upsert update `s#time from trade [WARNING] Line 34: Using `each` where vector operation suffices {x*y} each' (price;qty) can be replaced with price*qty Vector multiply is ~100x faster than each-both. [INFO] Line 45: Consider `peach` for independent symbol processing Processing each symbol sequentially. Since operations are independent, `peach` would utilize all cores. Fix: results: func peach syms Summary: 1 critical, 1 warning, 1 info. Focus on the missing sorted attribute — it will cause aj performance to degrade from microseconds to milliseconds at scale. ``` ## Environment Variables | Variable | Required | Description | |----------|----------|-------------| | `ASTRAI_API_KEY` | Yes | API key from [as-trai.com](https://as-trai.com) | | `ANTHROPIC_API_KEY` | No | BYOK: Anthropic provider key | | `OPENAI_API_KEY` | No | BYOK: OpenAI provider key | | `GOOGLE_API_KEY` | No | BYOK: Google AI provider key | | `DEEPSEEK_API_KEY` | No | BYOK: DeepSeek provider key | | `MISTRAL_API_KEY` | No | BYOK: Mistral provider key | | `GROQ_API_KEY` | No | BYOK: Groq provider key | | `TOGETHER_API_KEY` | No | BYOK: Together AI provider key | | `FIREWORKS_API_KEY` | No | BYOK: Fireworks AI provider key | | `COHERE_API_KEY` | No | BYOK: Cohere provider key | | `PERPLEXITY_API_KEY` | No | BYOK: Perplexity provider key | | `REVIEW_STRICTNESS` | No | Default strictness: `standard`, `strict`, or `security` | ## External Endpoints | Endpoint | Purpose | |----------|---------| | `as-trai.com/v1/chat/completions` | Astrai inference router — routes Q review requests to the optimal model | ## Security & Privacy - **No code storage:** Your Q code is sent to the selected AI provider for inference and is not stored by Astrai. - **BYOK:** When you provide your own provider keys, requests go directly through Astrai's router to your provider account. Astrai does not store or log your provider keys beyond the request lifecycle. - **Transport:** All communication uses HTTPS/TLS. - **No telemetry:** The skill does not send analytics or telemetry data. Only the review request goes to Astrai. - **Local processing:** File reading and result formatting happen entirely on your machine. ## Why Q needs specialized review Q is unlike any mainstream programming language: - **Extreme terseness:** A single line of Q can express what takes 20 lines in Python. This density makes bugs nearly invisible during manual review. - **Implicit type coercion:** Q silently coerces types in many operations. Comparing a long to a float, or joining on mismatched key types, can produce silently wrong results. - **1000x performance gaps:** The difference between idiomatic and naive Q is not 2x or 10x — it is often 1000x. Missing a sorted attribute on a time column turns an O(log n) asof join into O(n). Using `each` instead of vector operations adds interpreter overhead per element. - **Adverb complexity:** Q's adverbs (`/`, `\`, `'`, `/:`, `\:`, `':`) modify function behavior in powerful but subtle ways. `+/` is reduce-add, `+\` is scan-add, `+'` is each-both-add. Confusing these causes wrong results, not errors. - **Most AI models struggle:** Without Q-specific prompting, general-purpose AI models treat Q code as line noise. This skill provides detailed system prompts that teach the model Q semantics, kdb+ internals, and finance-domain patterns. ## Pricing Uses Astrai's inference routing. Your costs depend on the models selected: | Plan | Rate | Includes | |------|------|----------| | Free | $0 | 1,000 requests/day | | Pro | $49/mo | 50,000 requests/day, priority routing | | Business | $199/mo | Unlimited requests, dedicated support | With BYOK, you pay your provider directly at their rates. Astrai's routing is included in the plan price.

存档时间线

版本存档时间内容哈希内容
v12026-09-28 01:070753b484 可取

版本索引永久保留;内容副本只保留最近 2 版,更早版本仅留索引与哈希(存档时间线的证据链不会因此断裂)。

下载存档内容副本

纠错与举报(发现条目失效、署名有误或涉及侵权?)
提交举报 / 纠错

侵权举报经核验成立后,我们会即时下线该条目并删除已存的内容副本。