[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6F4EWDTCFPR7HTZ9Y11NBFS":3,"skill-same:01M6F4EWDTCFPR7HTZ9Y11NBFS":79},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":22,"publishedAt":44,"linkOnly":45,"markdownContent":46,"markdownBody":47,"frontMatter":48,"refName":37,"commitSha":59,"skillDirectory":60,"forksCount":61,"repositoryHtmlUrl":62,"repositoryHomepageUrl":6,"ownerHtmlUrl":63,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":64,"install":65,"resources":78},"01M6F4EWDTCFPR7HTZ9Y11NBFS","calibrate-first",null,"Measure a dataset's detection floor before reading any trading-signal result, pre-register every test, and report too-small-to-see as UNDECIDABLE, not 'no effect'.","boisenoise\u002Fskills-collections","boisenoise","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F193180?v=4","01M6CDBDQK6BDN55ZMA6B6PKBM","01M6CDBDVSJ3JPTBYN26FZ7TZK",12,"MIT","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-calibrate-first\u002FSKILL.md",[17],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",[23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43],"calibrate first","calibrate","first","backtesting","signal","factor-research","multiple-testing","register","dataset","factor","critical","as","statistics","testing","main","community","effect","license","test","research","github","2026-11-10 10:12:30",false,"---\nname: calibrate-first\ndescription: \"Measure a dataset's detection floor before reading any trading-signal result, pre-register every test, and report too-small-to-see as UNDECIDABLE, not 'no effect'.\"\ncategory: finance\nrisk: critical\nsource: \"https:\u002F\u002Fgithub.com\u002Fassaylabdesk-sudo\u002Fassay-lite\"\nsource_repo: assaylabdesk-sudo\u002Fassay-lite\nsource_type: community\ndate_added: \"2026-10-21\"\nauthor: assaylabdesk-sudo\ntags: [quant, backtesting, statistics, multiple-testing, factor-research]\ntools: [claude]\nlicense: MIT\nlicense_source: \"https:\u002F\u002Fgithub.com\u002Fassaylabdesk-sudo\u002Fassay-lite\u002Fblob\u002Fmain\u002FLICENSE\"\n---\n\n# Calibrate First\n\n## Overview\n\nA backtest result is only as good as the instrument that produced it. This skill\nmakes Claude measure the instrument before it measures the signal. It drives\n[assay-lite](https:\u002F\u002Fgithub.com\u002Fassaylabdesk-sudo\u002Fassay-lite), a single-file,\noffline Python tool. `floor` injects synthetic signals of known strength into the\nuser's own returns to find the smallest effect the data can detect. `test` charges\nevery run to an append-only registry *before* computing, and a result below the\nfloor is reported as UNDECIDABLE rather than \"the signal doesn't work\".\n\n## When to Use\n\n- The user asks whether a trading signal, factor or ranking \"works\", is\n  \"significant\", or has an \"edge\".\n- The user wants to read an information coefficient (IC) or a cross-sectional\n  backtest result, especially a null one.\n- The user is about to try several variants of an idea and pick the best one.\n\nDo not use it for single-asset timing signals, intraday data, live trading or\nposition sizing. assay-lite does not cover them.\n\n## How It Works\n\nUse only a previously reviewed local `assay_lite.py` at an explicit absolute path, verified against commit `78104a4356541affe2a469dfdf69cb1e418eb0c5`, together with a fully locked and reviewed numpy\u002Fpandas\u002Fscipy environment. This skill does not download code or resolve dependencies. If absent, stop before execution and return the input schema and analysis plan. Do not substitute a same-named project file. A separate installation task must stage and inspect every file and dependency with installation hooks disabled, verify immutable bytes, then obtain approval before executing or writing the trial registry. `uv` caching is not isolation.\n\nFour rules:\n\n1. **Run `floor` before interpreting any result.** Until the floor is measured for\n   these prices and this horizon, a non-significant result means nothing either way.\n2. **Never compare p with a conventional 0.05.** The only bars are the ones the\n   registry prints: 0.05 divided by every trial ever charged. \"Bar for the last\n   trial charged\" and \"the NEXT test will face\" are different bars. Quote the one\n   that matches the question.\n3. **Trials are never refunded.** Re-running a signal, tweaking a parameter or\n   trying another horizon is a new trial. Never suggest deleting registry lines or\n   using a fresh `--home` to reset the count.\n4. **Below the floor is UNDECIDABLE, not \"no effect\".** Say \"too small for this data\n   to see\", never \"doesn't work\".\n\nProcedure:\n\n1. Check the inputs. Prices are `date,asset,close`. The signal is\n   `date,asset,signal`, known at that date's close.\n2. Run `breadth`, and state the effective number of independent bets next to the\n   asset count.\n3. Run `floor` for the exact prices file and horizon you will test.\n4. Write down in one sentence what you expect and why, then run `test` once.\n5. Report the verdict line verbatim, with IC, p, the bar it faced, the dispersion\n   ratio and the scaled floor.\n\n## Examples\n\n```bash\npython \u002Fabsolute\u002Freviewed\u002Fassay_lite.py demo          # synthetic data; shows PASS, UNDECIDABLE, and a scaled floor\npython \u002Fabsolute\u002Freviewed\u002Fassay_lite.py breadth  --prices prices.csv\npython \u002Fabsolute\u002Freviewed\u002Fassay_lite.py floor    --prices prices.csv --horizon 1\npython \u002Fabsolute\u002Freviewed\u002Fassay_lite.py test     --prices prices.csv --signal signal.csv --name momentum_12_1 --horizon 1\npython \u002Fabsolute\u002Freviewed\u002Fassay_lite.py registry\n```\n\n| verdict | say this | not this |\n|---|---|---|\n| PASS | \"cleared the multiple-testing bar\" | \"proven\", \"profitable\" |\n| UNDECIDABLE | \"too small for this data to see\" | \"doesn't work\" |\n| FAIL | \"large but unreliable\" | \"zero\" |\n\n## Limitations\n\n- Cross-sectional and daily only, using Spearman IC. No timing signals and no\n  portfolio simulation.\n- No transaction costs. A PASS says nothing about profit after costs.\n- Bonferroni is conservative when trials are correlated.\n- The floor is calibrated with independent noise and then scaled up by each\n  signal's daily-IC dispersion. That corrects for factor structure on average, not\n  exactly.\n- Nothing here is investment advice. A PASS is evidence of a ranking effect, not\n  permission to trade.\n\n## Security & Safety Notes\n\n- assay-lite makes no network calls and needs no API keys. It reads the CSVs the\n  user points it at and writes only to its own `.assay-lite\u002F` folder.\n- The registry is append-only on purpose. Don't edit or delete it on the user's\n  behalf.\n","# Calibrate First\n\n## Overview\n\nA backtest result is only as good as the instrument that produced it. This skill\nmakes Claude measure the instrument before it measures the signal. It drives\n[assay-lite](https:\u002F\u002Fgithub.com\u002Fassaylabdesk-sudo\u002Fassay-lite), a single-file,\noffline Python tool. `floor` injects synthetic signals of known strength into the\nuser's own returns to find the smallest effect the data can detect. `test` charges\nevery run to an append-only registry *before* computing, and a result below the\nfloor is reported as UNDECIDABLE rather than \"the signal doesn't work\".\n\n## When to Use\n\n- The user asks whether a trading signal, factor or ranking \"works\", is\n  \"significant\", or has an \"edge\".\n- The user wants to read an information coefficient (IC) or a cross-sectional\n  backtest result, especially a null one.\n- The user is about to try several variants of an idea and pick the best one.\n\nDo not use it for single-asset timing signals, intraday data, live trading or\nposition sizing. assay-lite does not cover them.\n\n## How It Works\n\nUse only a previously reviewed local `assay_lite.py` at an explicit absolute path, verified against commit `78104a4356541affe2a469dfdf69cb1e418eb0c5`, together with a fully locked and reviewed numpy\u002Fpandas\u002Fscipy environment. This skill does not download code or resolve dependencies. If absent, stop before execution and return the input schema and analysis plan. Do not substitute a same-named project file. A separate installation task must stage and inspect every file and dependency with installation hooks disabled, verify immutable bytes, then obtain approval before executing or writing the trial registry. `uv` caching is not isolation.\n\nFour rules:\n\n1. **Run `floor` before interpreting any result.** Until the floor is measured for\n   these prices and this horizon, a non-significant result means nothing either way.\n2. **Never compare p with a conventional 0.05.** The only bars are the ones the\n   registry prints: 0.05 divided by every trial ever charged. \"Bar for the last\n   trial charged\" and \"the NEXT test will face\" are different bars. Quote the one\n   that matches the question.\n3. **Trials are never refunded.** Re-running a signal, tweaking a parameter or\n   trying another horizon is a new trial. Never suggest deleting registry lines or\n   using a fresh `--home` to reset the count.\n4. **Below the floor is UNDECIDABLE, not \"no effect\".** Say \"too small for this data\n   to see\", never \"doesn't work\".\n\nProcedure:\n\n1. Check the inputs. Prices are `date,asset,close`. The signal is\n   `date,asset,signal`, known at that date's close.\n2. Run `breadth`, and state the effective number of independent bets next to the\n   asset count.\n3. Run `floor` for the exact prices file and horizon you will test.\n4. Write down in one sentence what you expect and why, then run `test` once.\n5. Report the verdict line verbatim, with IC, p, the bar it faced, the dispersion\n   ratio and the scaled floor.\n\n## Examples\n\n```bash\npython \u002Fabsolute\u002Freviewed\u002Fassay_lite.py demo          # synthetic data; shows PASS, UNDECIDABLE, and a scaled floor\npython \u002Fabsolute\u002Freviewed\u002Fassay_lite.py breadth  --prices prices.csv\npython \u002Fabsolute\u002Freviewed\u002Fassay_lite.py floor    --prices prices.csv --horizon 1\npython \u002Fabsolute\u002Freviewed\u002Fassay_lite.py test     --prices prices.csv --signal signal.csv --name momentum_12_1 --horizon 1\npython \u002Fabsolute\u002Freviewed\u002Fassay_lite.py registry\n```\n\n| verdict | say this | not this |\n|---|---|---|\n| PASS | \"cleared the multiple-testing bar\" | \"proven\", \"profitable\" |\n| UNDECIDABLE | \"too small for this data to see\" | \"doesn't work\" |\n| FAIL | \"large but unreliable\" | \"zero\" |\n\n## Limitations\n\n- Cross-sectional and daily only, using Spearman IC. No timing signals and no\n  portfolio simulation.\n- No transaction costs. A PASS says nothing about profit after costs.\n- Bonferroni is conservative when trials are correlated.\n- The floor is calibrated with independent noise and then scaled up by each\n  signal's daily-IC dispersion. That corrects for factor structure on average, not\n  exactly.\n- Nothing here is investment advice. A PASS is evidence of a ranking effect, not\n  permission to trade.\n\n## Security & Safety Notes\n\n- assay-lite makes no network calls and needs no API keys. It reads the CSVs the\n  user points it at and writes only to its own `.assay-lite\u002F` folder.\n- The registry is append-only on purpose. Don't edit or delete it on the user's\n  behalf.\n",{"name":5,"risk":33,"tags":49,"tools":51,"author":53,"source":54,"license":14,"category":55,"date_added":56,"description":7,"source_repo":57,"source_type":38,"license_source":58},[50,26,35,29,28],"quant",[52],"claude","assaylabdesk-sudo","https:\u002F\u002Fgithub.com\u002Fassaylabdesk-sudo\u002Fassay-lite","finance","2026-10-21","assaylabdesk-sudo\u002Fassay-lite","https:\u002F\u002Fgithub.com\u002Fassaylabdesk-sudo\u002Fassay-lite\u002Fblob\u002Fmain\u002FLICENSE","7bf2279c8a65758319526a721d5c4b75683aec9c","skills\u002Fantigravity-calibrate-first",3,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections","https:\u002F\u002Fgithub.com\u002Fboisenoise","2026-11-10 14:20:15",{"source":8,"skillName":5,"commands":66,"prompt":76,"zipAvailable":77},[67,70,73],{"tool":68,"command":69},"npx","npx skills add boisenoise\u002Fskills-collections --skill calibrate-first",{"tool":71,"command":72},"bunx","bunx skills add boisenoise\u002Fskills-collections --skill calibrate-first",{"tool":74,"command":75},"pnpm","pnpm dlx skills add boisenoise\u002Fskills-collections --skill calibrate-first","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-calibrate-first\u002FSKILL.md",true,[],[80,109,133,159,178,200],{"skillNo":81,"name":82,"nameZh":6,"description":83,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":84,"licenseFileUrl":85,"sourceHtmlUrl":86,"categories":87,"keywords":88,"publishedAt":44},"01M6WNH92BHVFXHGPDZCPJ0AG0","web-access","Use Treg for public web or platform data only when existing search, browser and connected tools cannot cover the task, with explicit cost and data boundaries.","Apache-2.0","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-web-access\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-web-access\u002FSKILL.md",[],[89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,33,104,105,106,107,108],"web","access","web access","official","development","browser","search","data","Tools","read","fetch","only","youtube","free tools","platform","free","cover","normal","when","2026",{"skillNo":110,"name":111,"nameZh":6,"description":112,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":84,"licenseFileUrl":113,"sourceHtmlUrl":114,"categories":115,"keywords":119,"publishedAt":44},"01M6WNF9XAYAB2CZDDJBAKNM93","treg","Use the Treg CLI or MCP catalog to discover, price and call authorized external tools with team-scoped credentials and a user-approved budget.","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-treg\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-treg\u002FSKILL.md",[116],{"categoryNo":117,"categoryName":118,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000023","Skill与智能体开发",[111,120,121,43,92,93,40,97,122,123,124,125,126,127,128,33,129,130,131,132,108],"MCP","cli","Budget","credentials","team","catalog","use","call","discover","external tools","with","scoped","blob",{"skillNo":134,"name":135,"nameZh":6,"description":136,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":84,"licenseFileUrl":137,"sourceHtmlUrl":138,"categories":139,"keywords":145,"publishedAt":44},"01M6WN93MEAZ4E41DYAHJRPHQT","recruit","Turn a job description into an evidence-linked candidate shortlist through Treg, with job-related ranking and optional authorized business contact enrichment.","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-recruit\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-recruit\u002FSKILL.md",[140],{"categoryNo":141,"categoryName":142,"taxonomyType":143,"taxonomyTypeDesc":144},"01JBSEEDCAT000000000000038","人力资源","PROFESSION","适用职业",[135,43,92,40,146,147,148,149,150,151,33,152,153,154,130,155,156,157,158,132,111,108],"https","email","enrichment","business","evidence","phone","ranking","post","job description","for","person","candidate","reason",{"skillNo":160,"name":161,"nameZh":6,"description":162,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":84,"licenseFileUrl":163,"sourceHtmlUrl":164,"categories":165,"keywords":166,"publishedAt":44},"01M6WN8R5RXSMHM9B4D9FAFX42","rea-growth","Analyze a company’s public growth and content through Treg, distinguish observations from hypotheses, and produce an evidence-linked playbook within an approved budget.","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-rea-growth\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-rea-growth\u002FSKILL.md",[],[167,168,169,43,92,40,170,171,146,172,122,173,174,175,150,33,176,177,132,111,108],"growth","rea","rea growth","produce","content","playbook","marketing","analyze","public","observations","company",{"skillNo":179,"name":180,"nameZh":6,"description":181,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":84,"licenseFileUrl":182,"sourceHtmlUrl":183,"categories":184,"keywords":185,"publishedAt":44},"01M6WN2EVE3RQRGWAKBT4S7YT2","make-ugc","Create original AI UGC-style product videos through Treg: research hooks, approve a licensed presenter and voice, generate clips, add captions and report costs.","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-make-ugc\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-make-ugc\u002FSKILL.md",[],[186,187,43,42,92,188,40,189,190,191,192,193,33,194,195,196,197,198,199,132],"make","make ugc","create","Video","Captions","ads","short","hooks","head","style","niche","trending","talking-head","approve",{"skillNo":201,"name":202,"nameZh":6,"description":203,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":84,"licenseFileUrl":204,"sourceHtmlUrl":205,"categories":206,"keywords":207,"publishedAt":44},"01M6WN10ARAA63Y8K1YNGXJ2RM","lead-signals","Find and qualify public buying signals through Treg, rank fitting business accounts and optionally enrich authorized business contact information.","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-lead-signals\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-lead-signals\u002FSKILL.md",[],[208,209,210,43,92,40,211,212,149,213,34,33,214,215,216,217,218,219,220,132],"signals","lead","lead signals","how","find","ready","how to","qualify","people","information","enrich","changes","funding"]