chore: ignore .omc, .claude, .playwright-mcp directories and remove from tracking

This commit is contained in:
Justin Gu
2026-06-10 11:54:08 +08:00
parent c867297d45
commit 21f71d3701
21 changed files with 2 additions and 2727 deletions
-16
View File
@@ -1,16 +0,0 @@
{
"hooks": {
"PostToolUse": [
{
"matcher": "Write|Edit",
"hooks": [
{
"type": "command",
"command": "python scripts/ruff_hook.py",
"timeout": 30
}
]
}
]
}
}
-85
View File
@@ -1,85 +0,0 @@
{
"permissions": {
"allow": [
"Skill(update-config)",
"Bash(echo '{\"tool_name\":\"Edit\",\"tool_input\":{\"file_path\":\"D:\\\\\\\\python\\\\\\\\xmtdx\\\\\\\\src\\\\\\\\xmtdx\\\\\\\\__init__.py\"}}')",
"Bash(python -c \"import sys,json,subprocess;d=json.load\\(sys.stdin\\);f=d.get\\('tool_input',{}\\).get\\('file_path',''\\);exec\\('' if not f.endswith\\(\\\\\\\\'.py\\\\\\\\'\\) else 'subprocess.run\\([\\\\\\\\'ruff\\\\\\\\',\\\\\\\\'check\\\\\\\\',\\\\\\\\'--fix\\\\\\\\',f],capture_output=True\\);subprocess.run\\([\\\\\\\\'ruff\\\\\\\\',\\\\\\\\'format\\\\\\\\',f],capture_output=True\\)'\\);print\\(f'done: {f}'\\)\")",
"Bash(python *)",
"Bash(ruff check *)",
"Bash(git add *)",
"Bash(git commit *)",
"Bash(git push *)",
"mcp__zread__get_repo_structure",
"Bash(pip install *)",
"mcp__web-reader__webReader",
"Bash(python3 *)",
"Bash(where mypy *)",
"Bash(pip list *)",
"Bash(uv run *)",
"Bash(git stash *)",
"Bash(dir /s /b src\\\\xmtdx)",
"Bash(git remote *)",
"Bash(uv --version)",
"Bash(git rm *)",
"mcp__plugin_context7_context7__resolve-library-id",
"mcp__plugin_context7_context7__query-docs",
"Bash(grep -E \"\\\\.py$\")",
"Bash(awk '{added+=$1; deleted+=$2} END {print \"+\" added \" -\" deleted}')",
"Bash(find D:/python/easty_tdx/examples/1[1-7]* -name \"*.py\")",
"Bash(easy-tdx ping *)",
"Bash(easy-tdx version *)",
"Bash(easy-tdx kline *)",
"Bash(easy-tdx quote *)",
"Bash(easy-tdx tick *)",
"Bash(easy-tdx transaction *)",
"Bash(easy-tdx auction *)",
"Bash(easy-tdx quote-list *)",
"Bash(easy-tdx board-list *)",
"Bash(easy-tdx board-members *)",
"Bash(easy-tdx belong-board *)",
"Bash(easy-tdx capital-flow *)",
"Bash(echo \"EXIT CODE: $?\")",
"Bash(easy-tdx unusual *)",
"Bash(easy-tdx market-stat *)",
"Bash(easy-tdx server-info *)",
"Bash(easy-tdx symbol-info *)",
"Bash(easy-tdx ex *)",
"WebSearch",
"mcp__zread__search_doc",
"mcp__zread__read_file",
"Bash(git status *)",
"Bash(pip show *)",
"Bash(git tag *)",
"Bash(twine upload *)",
"Bash(pip index *)",
"Bash(curl -s https://pypi.org/pypi/easy-tdx/json)",
"Bash(curl -sI \"https://files.pythonhosted.org/packages/py3/e/easy-tdx/easy_tdx-1.2.0-py3-none-any.whl\")",
"Bash(gh run *)",
"Bash(easy-tdx *)",
"mcp__web-search-prime__web_search_prime",
"mcp__plugin_compound-engineering_context7__resolve-library-id",
"mcp__plugin_compound-engineering_context7__query-docs",
"Bash(pip uninstall *)",
"Bash(xargs grep -l \"Command\\\\|Request\\\\|Response\")",
"Bash(quotes/stock_xdxr_info.go)",
"Bash(mypy src/)",
"Bash(ruff format *)",
"mcp__plugin_episodic-memory_episodic-memory__search",
"Bash(echo \"FK/\")",
"Bash(git pull *)",
"mcp__playwright__browser_navigate",
"mcp__playwright__browser_snapshot",
"Bash(gh auth *)",
"Bash(rm -rf easy_tdx.wiki)",
"Bash(gh repo *)",
"Bash(gh api *)",
"Bash(mypy src/easy_tdx/backtest/types.py)",
"Bash(mypy tests/unit/test_backtest_types.py)",
"Bash(mypy src/easy_tdx/backtest/types.py tests/unit/test_backtest_types.py)",
"Bash(mypy *)",
"Bash(git diff *)",
"Bash(echo \"exit: $?\")",
"Bash(where easy-tdx *)"
]
}
}
-57
View File
@@ -1,57 +0,0 @@
---
name: publish
description: Bump version, commit, push tag to trigger GitHub Actions PyPI publish workflow, and verify release
---
Publish a new version of easy-tdx to PyPI via GitHub Actions trusted publisher.
## Prerequisites
- All code changes must already be committed and pushed to `main`.
- PyPI trusted publisher must be configured (owner: `handsomejustin`, repo: `easy_tdx`, workflow: `publish.yml`, environment: `release`).
- GitHub `release` environment must exist in repo settings.
## Steps
1. **Confirm working tree is clean on `main`**: Run `git status` and `git log --oneline -3`. All changes must be pushed.
2. **Determine new version**: Read current version from `pyproject.toml`. Ask user for target version if not obvious (patch/minor/major), defaulting to patch bump.
3. **Bump version**: Edit `version` in `pyproject.toml` to the new version.
4. **Commit and push**:
```bash
git add pyproject.toml
git commit -m "chore: bump version to X.Y.Z"
git push origin main
```
5. **Create and push tag**:
```bash
git tag vX.Y.Z
git push origin vX.Y.Z
```
6. **Wait for GitHub Actions**: Run `gh run list --limit 1` to get the run ID, then `gh run watch <ID>` to monitor. Timeout after 120 seconds.
7. **Verify on PyPI**:
```bash
curl -s https://pypi.org/pypi/easy-tdx/json | python -c "import sys,json; d=json.load(sys.stdin); print('latest:', d['info']['version'])"
```
Confirm the version matches.
8. **Report result**: State the published version and PyPI URL.
## Rollback
If the publish fails:
- Do NOT delete the tag (it's already pushed).
- Fix the issue, bump to next patch version, and re-run.
- If PyPI shows the version but something is wrong, it cannot be yanked automatically — the user must do it manually via PyPI dashboard.
## Notes
- The workflow file is at `.github/workflows/publish.yml`.
- It triggers on `push tags: v*`.
- Uses OIDC trusted publishing — no API tokens needed.
- Build uses `python -m build` (hatchling backend).
-16
View File
@@ -1,16 +0,0 @@
---
name: verify
description: Run full offline verification suite (pytest unit tests + mypy + ruff) before committing changes.
disable-model-invocation: true
---
# Verify
Run the full offline verification pipeline:
1. Run `python -m pytest tests/unit/ -v` — all unit tests must pass.
2. Run `mypy src/` — strict type checking must pass with zero errors.
3. Run `ruff check src/ tests/` — no lint errors.
4. Run `ruff format --check src/ tests/` — formatting must be clean.
If any step fails, fix the issues and re-run. Do not report completion until all four steps pass.
+2
View File
@@ -11,6 +11,8 @@ build/
.venv/
venv/
.omc/
.claude/
.playwright-mcp/
uv.lock
docs/_build/
FK/
-282
View File
@@ -1,282 +0,0 @@
{
"version": "1.0.0",
"lastScanned": 1780948623576,
"projectRoot": "D:\\python\\easy_tdx",
"techStack": {
"languages": [
{
"name": "Python",
"version": null,
"confidence": "high",
"markers": [
"pyproject.toml"
]
}
],
"frameworks": [
{
"name": "pytest",
"version": null,
"category": "testing"
}
],
"packageManager": null,
"runtime": null
},
"build": {
"buildCommand": null,
"testCommand": "python -m pytest tests/unit/ -q --tb=line 2>&1 | tail -5",
"lintCommand": "ruff check",
"devCommand": null,
"scripts": {}
},
"conventions": {
"namingStyle": null,
"importStyle": null,
"testPattern": null,
"fileOrganization": null
},
"structure": {
"isMonorepo": false,
"workspaces": [],
"mainDirectories": [
"docs",
"examples",
"scripts",
"src",
"tests"
],
"gitBranches": {
"defaultBranch": "main",
"branchingStrategy": null
}
},
"customNotes": [],
"directoryMap": {
"dist": {
"path": "dist",
"purpose": "Distribution/build output",
"fileCount": 2,
"lastAccessed": 1780948623545,
"keyFiles": [
"easy_tdx-1.0.0-py3-none-any.whl",
"easy_tdx-1.0.0.tar.gz"
]
},
"docs": {
"path": "docs",
"purpose": "Documentation",
"fileCount": 8,
"lastAccessed": 1780948623545,
"keyFiles": [
"api_reference.md",
"conf.py",
"field_mapping.md",
"index.md",
"indicator-bias-signal.md"
]
},
"examples": {
"path": "examples",
"purpose": "Example code",
"fileCount": 0,
"lastAccessed": 1780948623546,
"keyFiles": []
},
"scripts": {
"path": "scripts",
"purpose": "Build/utility scripts",
"fileCount": 4,
"lastAccessed": 1780948623547,
"keyFiles": [
"probe_unknowns.py",
"ruff_hook.py",
"verify_fixes_20260415.py",
"__init__.py"
]
},
"src": {
"path": "src",
"purpose": "Source code",
"fileCount": 0,
"lastAccessed": 1780948623548,
"keyFiles": []
},
"tests": {
"path": "tests",
"purpose": "Test files",
"fileCount": 1,
"lastAccessed": 1780948623549,
"keyFiles": [
"__init__.py"
]
},
"venv": {
"path": "venv",
"purpose": null,
"fileCount": 2,
"lastAccessed": 1780948623550,
"keyFiles": [
"pyvenv.cfg"
]
},
"tests\\fixtures": {
"path": "tests\\fixtures",
"purpose": "Test fixtures",
"fileCount": 24,
"lastAccessed": 1780948623554,
"keyFiles": [
"company_info_category.hex",
"company_info_category.json",
"company_info_content.hex"
]
},
"venv\\Lib": {
"path": "venv\\Lib",
"purpose": "Library code",
"fileCount": 0,
"lastAccessed": 1780948623555,
"keyFiles": []
},
"venv\\Scripts": {
"path": "venv\\Scripts",
"purpose": "Build/utility scripts",
"fileCount": 25,
"lastAccessed": 1780948623555,
"keyFiles": [
"activate",
"activate.bat",
"activate.fish"
]
}
},
"hotPaths": [
{
"path": "src\\easy_tdx\\backtest\\cli.py",
"accessCount": 14,
"lastAccessed": 1781024440572,
"type": "file"
},
{
"path": "run_all_strategies.py",
"accessCount": 13,
"lastAccessed": 1781024439395,
"type": "file"
},
{
"path": "src\\easy_tdx\\MyTT.py",
"accessCount": 9,
"lastAccessed": 1781025723850,
"type": "file"
},
{
"path": "README.md",
"accessCount": 4,
"lastAccessed": 1781026610801,
"type": "file"
},
{
"path": "src\\easy_tdx\\backtest\\combo.py",
"accessCount": 3,
"lastAccessed": 1781023715594,
"type": "file"
},
{
"path": "src\\easy_tdx\\backtest\\__init__.py",
"accessCount": 3,
"lastAccessed": 1781023799015,
"type": "file"
},
{
"path": "tests\\unit\\test_backtest_combo.py",
"accessCount": 2,
"lastAccessed": 1781023758085,
"type": "file"
},
{
"path": "src\\easy_tdx\\backtest\\strategy.py",
"accessCount": 1,
"lastAccessed": 1781021955703,
"type": "file"
},
{
"path": "src\\easy_tdx\\backtest\\engine.py",
"accessCount": 1,
"lastAccessed": 1781021956588,
"type": "file"
},
{
"path": "src\\easy_tdx\\backtest\\types.py",
"accessCount": 1,
"lastAccessed": 1781021957067,
"type": "file"
},
{
"path": "src\\easy_tdx\\backtest\\dsl.py",
"accessCount": 1,
"lastAccessed": 1781021962044,
"type": "file"
},
{
"path": "strategies\\ma_cross.py",
"accessCount": 1,
"lastAccessed": 1781021963164,
"type": "file"
},
{
"path": "strategies\\macd_cross.py",
"accessCount": 1,
"lastAccessed": 1781021963925,
"type": "file"
},
{
"path": "strategies\\rsi_reversal.py",
"accessCount": 1,
"lastAccessed": 1781021964466,
"type": "file"
},
{
"path": "strategies\\bollinger_breakout.py",
"accessCount": 1,
"lastAccessed": 1781021964950,
"type": "file"
},
{
"path": "src\\easy_tdx\\backtest\\performance.py",
"accessCount": 1,
"lastAccessed": 1781021974264,
"type": "file"
},
{
"path": "strategies\\turtle_breakout.py",
"accessCount": 1,
"lastAccessed": 1781021982151,
"type": "file"
},
{
"path": "C:\\Users\\毛利哥\\.claude\\plans\\2-3-deep-melody.md",
"accessCount": 1,
"lastAccessed": 1781022126312,
"type": "file"
},
{
"path": "tests\\unit\\test_backtest_strategy.py",
"accessCount": 1,
"lastAccessed": 1781023334642,
"type": "file"
},
{
"path": "tests\\unit\\test_backtest_engine.py",
"accessCount": 1,
"lastAccessed": 1781023335435,
"type": "file"
},
{
"path": "pyproject.toml",
"accessCount": 1,
"lastAccessed": 1781026550566,
"type": "file"
}
],
"userDirectives": []
}
@@ -1,8 +0,0 @@
{
"session_id": "1c05c4c7-0987-444f-b329-e1c772d1a048",
"ended_at": "2026-05-21T17:01:21.757Z",
"reason": "prompt_input_exit",
"agents_spawned": 0,
"agents_completed": 0,
"modes_used": []
}
@@ -1,8 +0,0 @@
{
"session_id": "718ffd08-a67f-463d-ae5b-dea1d6703fc8",
"ended_at": "2026-05-21T04:31:14.583Z",
"reason": "clear",
"agents_spawned": 0,
"agents_completed": 0,
"modes_used": []
}
@@ -1,8 +0,0 @@
{
"session_id": "8e49af4a-ddee-483a-92bb-550dbb3cc506",
"ended_at": "2026-05-21T04:31:59.748Z",
"reason": "prompt_input_exit",
"agents_spawned": 0,
"agents_completed": 0,
"modes_used": []
}
@@ -1,8 +0,0 @@
{
"session_id": "a3ab4095-2313-431e-be46-a80ffa727e66",
"ended_at": "2026-05-21T17:15:43.971Z",
"reason": "prompt_input_exit",
"agents_spawned": 0,
"agents_completed": 0,
"modes_used": []
}
@@ -1,16 +0,0 @@
{
"created_at": "2026-05-21T18:43:39.866Z",
"trigger": "manual",
"active_modes": {},
"todo_summary": {
"pending": 0,
"in_progress": 0,
"completed": 0
},
"wisdom_exported": false,
"background_jobs": {
"active": [],
"recent": [],
"stats": null
}
}
@@ -1,16 +0,0 @@
{
"created_at": "2026-05-21T19:44:09.191Z",
"trigger": "manual",
"active_modes": {},
"todo_summary": {
"pending": 0,
"in_progress": 0,
"completed": 0
},
"wisdom_exported": false,
"background_jobs": {
"active": [],
"recent": [],
"stats": null
}
}
-1
View File
@@ -1 +0,0 @@
{"session_id":"86732a4c-5e66-4d81-afe8-a170fdd2102f","transcript_path":"C:\\Users\\毛利哥\\.claude\\projects\\D--python-easy-tdx\\86732a4c-5e66-4d81-afe8-a170fdd2102f.jsonl","cwd":"D:\\python\\easy_tdx","effort":{"level":"medium"},"session_name":"multi-factor-combo-backtest","model":{"id":"glm-5.1","display_name":"glm-5.1"},"workspace":{"current_dir":"D:\\python\\easy_tdx","project_dir":"D:\\python\\easy_tdx","added_dirs":[],"repo":{"host":"github.com","owner":"handsomejustin","name":"easy_tdx"}},"version":"2.1.165","output_style":{"name":"default"},"cost":{"total_cost_usd":5.7581050000000005,"total_duration_ms":77996980,"total_api_duration_ms":1457761,"total_lines_added":1393,"total_lines_removed":28},"context_window":{"total_input_tokens":134645,"total_output_tokens":42,"context_window_size":200000,"current_usage":{"input_tokens":245,"output_tokens":42,"cache_creation_input_tokens":0,"cache_read_input_tokens":134400},"used_percentage":67,"remaining_percentage":33},"exceeds_200k_tokens":false,"fast_mode":false,"thinking":{"enabled":true}}
@@ -1,6 +0,0 @@
{
"timestamp": "2026-05-21T04:37:36.738Z",
"backgroundTasks": [],
"sessionStartTimestamp": "2026-05-21T04:35:51.188Z",
"sessionId": "1c05c4c7-0987-444f-b329-e1c772d1a048"
}
@@ -1,6 +0,0 @@
{
"session_id": "4a6378cc-96bc-4f30-809a-a6b4c4243d5e",
"started_at": "2026-05-21T17:02:00.621Z",
"cwd": "D:\\python\\easty_tdx",
"pid": 13160
}
@@ -1,6 +0,0 @@
{
"timestamp": "2026-05-21T04:21:33.768Z",
"backgroundTasks": [],
"sessionStartTimestamp": "2026-05-21T04:21:11.890Z",
"sessionId": "718ffd08-a67f-463d-ae5b-dea1d6703fc8"
}
@@ -1,6 +0,0 @@
{
"timestamp": "2026-05-21T17:33:21.608Z",
"backgroundTasks": [],
"sessionStartTimestamp": "2026-05-21T17:30:31.097Z",
"sessionId": "84b721c5-06e3-4191-ae03-5f4795cf33f3"
}
@@ -1,6 +0,0 @@
{
"timestamp": "2026-05-21T04:31:15.192Z",
"backgroundTasks": [],
"sessionStartTimestamp": "2026-05-21T04:31:14.919Z",
"sessionId": "8e49af4a-ddee-483a-92bb-550dbb3cc506"
}
@@ -1,6 +0,0 @@
{
"timestamp": "2026-05-21T17:07:49.338Z",
"backgroundTasks": [],
"sessionStartTimestamp": "2026-05-21T17:07:32.750Z",
"sessionId": "a3ab4095-2313-431e-be46-a80ffa727e66"
}
@@ -1 +0,0 @@
[ 12502ms] [ERROR] Failed to load resource: the server responded with a status of 503 () @ https://collector.github.com/github/collect:0
File diff suppressed because it is too large Load Diff