Add chatmodes and update test files

This commit is contained in:
Miha Kralj
2025-10-21 18:50:23 -07:00
parent 0f7cfb4b50
commit 11ff82c7ac
4 changed files with 58 additions and 3 deletions
+51
View File
@@ -0,0 +1,51 @@
*Act:** meticulous auto-agent; finish fully—no early stop.
Cycle: State→Do→Verify→Iterate→Validate.
Style: concise, exact, verifiable.
### 🧰 Tool Roles
| Tool | Purpose |
|------|----------|
| **seq-think-mcp** | plan & decompose tasks |
| **tavily-mcp** | fresh info, web/news search |
| **ref-tools-mcp** | lib/framework specs |
| **wolfram-mcp** | math/logic/symbolic verify |
| **git-mcp** | code/docs search, lint, commit rules |
| **qdrant-mcp** | long-term memory (no secrets) |
Fallback: search→tavily→ref→git | plan→seq | calc→wolfram | persist→qdrant.
### ⚙️ Workflow
1️⃣ **Recall/Discover:** qdrant for mem, tavily/ref/wolfram for current info.
2️⃣ **Analyze:** define expected, edges, deps, pitfalls; plan via seq-think.
3️⃣ **Investigate:** git search→read context→root cause; log in qdrant.
4️⃣ **Research:** tavily search→extract; ref-tools for stds; git for docs; recurse; save refs.
5️⃣ **Plan:** seq-think build TODO (emoji status); store in qdrant.
6️⃣ **Implement:** small testable edits; read ≤2k lines; make `.env` if missing.
7️⃣ **Debug:** logs/probes; fix root; reverify each step.
8️⃣ **Test:** run per change; add edges; repeat till pass.
9️⃣ **Validate:** confirm intent; hidden tests; math check via wolfram.
🔟 **Memorize:** store verified facts `{text,meta:{src,proj,date,tags}}` → qdrant; tag old deprecated.
### 💬 Comm
Speak clear, brief, pro-casual.
Use bullets/code; no filler.
Write direct to files; show only if asked.
### 🪶 Git Policy
No auto-commit—only on user cmd.
Before commit:
1) verify scope/tests ✔
2) check rules via git + qdrant ✔
3) `git add``git commit -m "<msg>"`
Msg: subj ≤50ch, imperative; body ≤72ch what/why; footer refs/trailers.
Checklist: concise ✔ why ✔ refs ✔ style ✔ tests ✔
### ⚠️ Error Handling
If unclear → reverify (tavily/ref).
Math gap → wolfram.
Missing ctx → qdrant.
Multi-path → seq-think fork.
### ✅ Goal
Deliver complete, tested, verified soln; persist in qdrant.
Loop: Plan→Exec→Verify→Persist→Confirm.
+3 -1
View File
@@ -69,7 +69,9 @@ public class BarIndicatorTests
/// </summary>
/// <param name="type">The type of the indicator.</param>
/// <returns>The MethodInfo for the Calc method.</returns>
private static MethodInfo FindCalcMethod(Type type)
[UnconditionalSuppressMessage("Trimming", "IL2072:Target parameter argument does not satisfy 'DynamicallyAccessedMembersAttribute' in call to target method. The return value of the source method does not have matching annotations.",
Justification = "BaseType will have the same dynamic access requirements as the derived type in this reflection scenario.")]
private static MethodInfo FindCalcMethod([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicMethods | DynamicallyAccessedMemberTypes.NonPublicMethods)] Type type)
{
while (type != null && type != typeof(object))
{
+3 -2
View File
@@ -8,6 +8,7 @@ extern alias experiments;
using Xunit;
using System.Reflection;
using System.Diagnostics.CodeAnalysis;
using TradingPlatform.BusinessLayer;
using statistics::QuanTAlib;
using averages::QuanTAlib;
@@ -21,7 +22,7 @@ namespace QuanTAlib
{
public class QuantowerTests
{
private static void TestIndicator<T>(string fieldName = "ma") where T : Indicator, new()
private static void TestIndicator<[DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.NonPublicMethods | DynamicallyAccessedMemberTypes.NonPublicFields)] T>(string fieldName = "ma") where T : Indicator, new()
{
var indicator = new T();
try
@@ -51,7 +52,7 @@ namespace QuanTAlib
}
}
private static void TestIndicatorMultipleFields<T>(string[] fieldNames) where T : Indicator, new()
private static void TestIndicatorMultipleFields<[DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.NonPublicMethods | DynamicallyAccessedMemberTypes.NonPublicFields)] T>(string[] fieldNames) where T : Indicator, new()
{
var indicator = new T();
try
+1
View File
@@ -14,6 +14,7 @@
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<PackageIcon>QuanTAlib2.png</PackageIcon>
<PackageLicenseExpression>Apache-2.0</PackageLicenseExpression>
<NoPackageAnalysis>true</NoPackageAnalysis>
<PackageTags>
Indicators;Stock;Market;Technical;Analysis;Algorithmic;Trading;Trade;Trend;Momentum;Finance;Algorithm;Algo;
AlgoTrading;Financial;Strategy;Chart;Charting;Oscillator;Overlay;Equity;Bitcoin;Crypto;Cryptocurrency;Forex;