[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6C0VF0688K6EQ3QJMW0V30X":3,"skill-same:01M6C0VF0688K6EQ3QJMW0V30X":100},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":48,"linkOnly":49,"markdownContent":50,"markdownBody":51,"frontMatter":52,"refName":53,"commitSha":54,"skillDirectory":55,"forksCount":14,"repositoryHtmlUrl":56,"repositoryHomepageUrl":6,"ownerHtmlUrl":57,"ownerBlogUrl":6,"ownerDescription":58,"updatedAt":59,"install":60,"resources":73},"01M6C0VF0688K6EQ3QJMW0V30X","findings-crosscheck",null,"Adversarially verify REPORTED findings against the real code before any of them becomes a task. Use when an audit, a security scan, another agent's relay, a \"N fields are missing \u002F X is broken\" list, a bug report, or even your own claim from a past session asserts something is true about the system — triage the falsifiable claims, fan out one verifier per claim (file:line CONFIRMED\u002FREFUTED\u002FRECLASSIFIED), adversarially verify the consequential ones in BOTH directions, reproduce alarming numbers, and only let survivors become work.","matheusnorjosa\u002Faprender_sistema","matheusnorjosa","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F117673804?v=4","01M6C0S19FG12BDFBTRWY9TTEQ","Matheus Norjosa","01M6C0S1DF0YB17TKGEYC70GSP",0,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Fmatheusnorjosa\u002Faprender_sistema\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Ffindings-crosscheck\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47],"findings crosscheck","when","security","fan out","claims","true","directions","relay","missing","verifier","claim","scan","task","only","use","session","list","broken","work","reproduce","system","verify","audit","file","security scan","report","code","bug report","triage","2026-11-10 10:12:30",false,"---\nname: findings-crosscheck\ndescription: Adversarially verify REPORTED findings against the real code before any of them becomes a task. Use when an audit, a security scan, another agent's relay, a \"N fields are missing \u002F X is broken\" list, a bug report, or even your own claim from a past session asserts something is true about the system — triage the falsifiable claims, fan out one verifier per claim (file:line CONFIRMED\u002FREFUTED\u002FRECLASSIFIED), adversarially verify the consequential ones in BOTH directions, reproduce alarming numbers, and only let survivors become work.\n---\n\n# Findings Cross-Check — Aprender Sistema v2\n\n**A reported finding is a hypothesis, not a fact.** Reproduce it against the real code before it\nbecomes a task. A scan that doesn't reach its target returns empty, and empty reads as absence —\nso the error is always *directional*: reports hide real state, they don't invent it.\n\n> **SSOT**: the living defect audit is `v2\u002Fdocs\u002Faudits\u002FACHADOS_REAIS.md` (cross-reference every\n> surviving finding there before opening an issue — see [[reference-achados-reais-living-audit]]).\n> This skill is the *operational method*; it complements — does not replace — `plan-crosscheck`\n> (which verifies a PLAN you are about to write, not findings someone reported).\n\n## When to use\n\nInvoke the moment findings *arrive* — before triaging them into issues, a plan, or a debugging session:\n\n- An external report lands: audit, security\u002FCodeQL scan, a relay from another agent\u002Ftool, a\n  spreadsheet-reconciliation (\"76 fields have no home\", \"156 events collide\").\n- A claim asserts the system is broken\u002Fmissing\u002Fdead (\"the importer drops these fields\", \"this\n  serializer is unused\", \"X is not implemented\") and you're about to act on it.\n- You're revisiting a **claim you or a past session wrote** (a memory, a TODO, an ACHADOS row) and\n  the code has moved since.\n\n**Skip when**: the failure is already reproduced as real (a red test, a stack trace) — go straight\nto `debugging-and-error-recovery`; or the input is a PLAN you'll implement — use `plan-crosscheck`.\n\n## The method\n\n**1. Triage the report into falsifiable claims, by who can settle them.**\n- **System-side** (verifiable in code, file:line) — the bulk; this skill's job.\n- **Source-side** (about a spreadsheet\u002Fexternal dataset you can't read locally) — you cannot confirm;\n  relay a request for an *aggregate measurement* back (never open PII files).\n- **Business decision** (intent, not fact) — route to the owner; don't guess.\n\n**2. Fan out one verifier per claim (or cluster), READ-ONLY, returning file:line.** Use the Workflow\ntemplate in [reference\u002Fworkflow-template.md](reference\u002Fworkflow-template.md). Each verifier returns\n`{verdict, evidence(file:line), how}` where verdict ∈ **CONFIRMED \u002F REFUTED \u002F RECLASSIFIED \u002F\nNEEDS-RUNTIME**. A \"home exists\" can be a same-name field, a **renamed** field, reachable via an\n**FK path**, a `@property`, a serializer field, or **derived** — not just a same-name grep. Delegate\nthe wide reads; keep synthesis in the main context.\n\n**3. Adversarially verify the CONSEQUENTIAL verdicts — in BOTH directions.** Both errors cost:\n- a **false GAP** (finder says \"missing\" but it exists) → *phantom construction work*;\n- a **false EXISTS\u002F\"fixed\"** (finder says \"has a home \u002F handled\") → *hidden bug or data loss*.\n\n  For a `GAP` verdict, a skeptic tries hard to *find* a home it missed. For an `EXISTS`\u002Ffix verdict,\n  a skeptic tries to *refute* it: does the claimed home actually store and carry **this** datum, or\n  is it a same-named field \u002F a computed property that loses info? Is the fix sufficient, or does a\n  residual case survive?\n\n**4. Reproduce every alarming number before it becomes a task.** Measure, don't accept. Coverage that\nlooks good can hide the *wrong target* — re-measure against the alternative (75.6% vs **100%** flipped\nan FK's target). In this project's history: *\"57 fields don't arrive\"* → **4**; *\"4 import defects\"* →\n**0**; *\"76 fields to build\"* → **31 already had a home**.\n\n**4b. When the alarming number is a command's OWN opaque status** (`skipped_not_found: 43`,\n`would_apply: 0`, `noop: N`), reproduce it by **replaying that command's own service methods per row**\nand tallying *where each row stops* — instantiate the real service and call its own lookups, never\nreimplement them (a reimplementation measures itself, not the system). One opaque count becomes an\nactionable breakdown that localizes the real blocker and often flips the fix: in the v25 reconcile\n(2026-09-11) `skipped_not_found: 43` replayed into `para_nao_resolveu: 38 \u002F sol_nao_encontrada: 5` —\nthe 38 were a **missing user in prod**, not a code bug, so the fix was to onboard that person (by CPF,\nthe stable key), not to change the reconciler. Output aggregates\u002Fbooleans only, never PII.\n\n**5. Apply the blind-instrument test.** Ask: *what would I see if my scan were blind?* If the answer is\n\"exactly this number\", it measured nothing — the empty came from the instrument, not the system.\nKnown blind spots that all read as false absence: filter-by-filename (code lives in packages),\nexcluded dirs (`services\u002F`), path bugs (a `\"\u002Fservices\u002F\"` check that never matches), regex blind to\nannotated FKs (`municipio: models.ForeignKey[...]`), a conclusion drawn from a 2-line sample.\n\n**6. Guard your own verification.**\n- Don't turn *your* hypothesis into a refuted claim the source never made (unintentional strawman).\n- A content-verification guard must check the **axis of the ambiguity**, not the fields that already\n  match by construction (checking município+data+hora is a no-op when those are exactly what tied).\n- Reproduce the **negatives** too: *\"this is junk \u002F doesn't exist\"* deserves the same proof as\n  *\"this is a bug\"*.\n\n**7. Only survivors become work.** Cross-reference `ACHADOS_REAIS.md` before opening an issue (avoids\nduplicates). Relay corrections back to the source so its map improves. Reclassify honestly: a\n\"defect\" that is really *unimplemented scope* is a different (often deferred) task than a bug.\n\n## Anti-patterns\n\n| Excuse \u002F Red flag | Reality | Action |\n|-------------------|---------|--------|\n| \"The report is detailed, it's probably right\" | Detail ≠ verified. The relay that reported 9 findings had all 9 wrong, same direction. | Reproduce each falsifiable claim file:line. |\n| \"It's not in the model, so it's a gap\" | Grep by name misses FK-backed, renamed, folder-nested, and derived homes. | Check field \u002F FK path \u002F property \u002F serializer \u002F derivation before calling GAP. |\n| \"The scan found nothing there\" | A scan that can't reach returns empty = false absence. | Blind-instrument test: would a blind scan show the same? |\n| \"I verified it exists, done\" | An EXISTS can hide a data-loss bug (a unique key that `update_or_create` collapses silently). | Adversarially verify EXISTS too — does it carry THIS datum, is it sufficient? |\n| \"Adding field X resolves the collision\" | X may resolve *because it's noisy*, not because it discriminates; and it may be nullable. | Measure the residual; check stability and the null case. |\n| Opening an issue straight from the report | May duplicate an ACHADOS row or an already-merged fix. | Cross-check `ACHADOS_REAIS.md` + PR state first ([[feedback-verify-issue-not-already-resolved]]). |\n\n## Verification checklist\n\nBefore any finding becomes a task:\n- [ ] Every falsifiable claim has a file:line verdict (CONFIRMED\u002FREFUTED\u002FRECLASSIFIED\u002FNEEDS-RUNTIME).\n- [ ] Consequential verdicts got an adversarial second pass in the direction that costs.\n- [ ] Every alarming number was reproduced (and measured against the alternative target).\n- [ ] Blind-instrument test applied to every \"nothing\u002Fabsent\" result.\n- [ ] Survivors cross-referenced against `ACHADOS_REAIS.md` (no duplicate issue).\n- [ ] Source-side claims relayed back as aggregate measurements; business calls routed to the owner.\n\n## Worked example (this method's origin — the sheets.banco relay, 2026-08-25)\n\nAn external agent relayed a field-by-field map of the system. Cross-checked with fan-out + adversarial\nverify: of **76** \"fields with no home\", **31 already had one** (FK\u002Frename\u002Fderived — the scan's regex\nwas blind to annotated FKs); the **\"4 import defects\"** were **0** (the entities weren't implemented in\nthat importer at all — reclassified as scope, not bug); and one surviving finding — a dedup hash whose\n6-field recipe collided on **284→128** real events — was a genuine silent-data-loss bug\n(`update_or_create(external_hash=…)` overwriting in place, counted as success). The relay's *own*\nproposed fix (\"add `segmento`\") was then overturned by measurement (segmento is noisy, 579 empty), and\na stable id (`external_event_id`) turned out to be attachable only heuristically — so a guard that\nchecked município+data+hora was a **no-op on the exact ambiguous tier**. Every correction, in both\ndirections, came from reproduction — none from opinion.\n\n## Related skills\n\n- Runs **before** `create-plan` \u002F `debugging-and-error-recovery`: triage the finding first, so only\n  survivors become a plan or a bug. (Sibling of `plan-crosscheck`, which sits *after* create-plan.)\n- Uses `subagent-development` (fan-out) and the `Workflow` tool for the verifier panel.\n- Feeds `verification-gate` (prove your own resulting fix works) once a survivor becomes work.\n- Encodes the memories: [[feedback-multi-claude-relay-verify-system-side]] ·\n  [[feedback-metadata-vs-code-verification]] · [[feedback-comentario-nao-e-evidencia]] ·\n  [[feedback-first-real-execution-latent-bugs]] · [[feedback-workflow-verifier-silent-drop]] ·\n  [[reference-dynamic-runtime-audit-playbook]].\n","# Findings Cross-Check — Aprender Sistema v2\n\n**A reported finding is a hypothesis, not a fact.** Reproduce it against the real code before it\nbecomes a task. A scan that doesn't reach its target returns empty, and empty reads as absence —\nso the error is always *directional*: reports hide real state, they don't invent it.\n\n> **SSOT**: the living defect audit is `v2\u002Fdocs\u002Faudits\u002FACHADOS_REAIS.md` (cross-reference every\n> surviving finding there before opening an issue — see [[reference-achados-reais-living-audit]]).\n> This skill is the *operational method*; it complements — does not replace — `plan-crosscheck`\n> (which verifies a PLAN you are about to write, not findings someone reported).\n\n## When to use\n\nInvoke the moment findings *arrive* — before triaging them into issues, a plan, or a debugging session:\n\n- An external report lands: audit, security\u002FCodeQL scan, a relay from another agent\u002Ftool, a\n  spreadsheet-reconciliation (\"76 fields have no home\", \"156 events collide\").\n- A claim asserts the system is broken\u002Fmissing\u002Fdead (\"the importer drops these fields\", \"this\n  serializer is unused\", \"X is not implemented\") and you're about to act on it.\n- You're revisiting a **claim you or a past session wrote** (a memory, a TODO, an ACHADOS row) and\n  the code has moved since.\n\n**Skip when**: the failure is already reproduced as real (a red test, a stack trace) — go straight\nto `debugging-and-error-recovery`; or the input is a PLAN you'll implement — use `plan-crosscheck`.\n\n## The method\n\n**1. Triage the report into falsifiable claims, by who can settle them.**\n- **System-side** (verifiable in code, file:line) — the bulk; this skill's job.\n- **Source-side** (about a spreadsheet\u002Fexternal dataset you can't read locally) — you cannot confirm;\n  relay a request for an *aggregate measurement* back (never open PII files).\n- **Business decision** (intent, not fact) — route to the owner; don't guess.\n\n**2. Fan out one verifier per claim (or cluster), READ-ONLY, returning file:line.** Use the Workflow\ntemplate in [reference\u002Fworkflow-template.md](reference\u002Fworkflow-template.md). Each verifier returns\n`{verdict, evidence(file:line), how}` where verdict ∈ **CONFIRMED \u002F REFUTED \u002F RECLASSIFIED \u002F\nNEEDS-RUNTIME**. A \"home exists\" can be a same-name field, a **renamed** field, reachable via an\n**FK path**, a `@property`, a serializer field, or **derived** — not just a same-name grep. Delegate\nthe wide reads; keep synthesis in the main context.\n\n**3. Adversarially verify the CONSEQUENTIAL verdicts — in BOTH directions.** Both errors cost:\n- a **false GAP** (finder says \"missing\" but it exists) → *phantom construction work*;\n- a **false EXISTS\u002F\"fixed\"** (finder says \"has a home \u002F handled\") → *hidden bug or data loss*.\n\n  For a `GAP` verdict, a skeptic tries hard to *find* a home it missed. For an `EXISTS`\u002Ffix verdict,\n  a skeptic tries to *refute* it: does the claimed home actually store and carry **this** datum, or\n  is it a same-named field \u002F a computed property that loses info? Is the fix sufficient, or does a\n  residual case survive?\n\n**4. Reproduce every alarming number before it becomes a task.** Measure, don't accept. Coverage that\nlooks good can hide the *wrong target* — re-measure against the alternative (75.6% vs **100%** flipped\nan FK's target). In this project's history: *\"57 fields don't arrive\"* → **4**; *\"4 import defects\"* →\n**0**; *\"76 fields to build\"* → **31 already had a home**.\n\n**4b. When the alarming number is a command's OWN opaque status** (`skipped_not_found: 43`,\n`would_apply: 0`, `noop: N`), reproduce it by **replaying that command's own service methods per row**\nand tallying *where each row stops* — instantiate the real service and call its own lookups, never\nreimplement them (a reimplementation measures itself, not the system). One opaque count becomes an\nactionable breakdown that localizes the real blocker and often flips the fix: in the v25 reconcile\n(2026-09-11) `skipped_not_found: 43` replayed into `para_nao_resolveu: 38 \u002F sol_nao_encontrada: 5` —\nthe 38 were a **missing user in prod**, not a code bug, so the fix was to onboard that person (by CPF,\nthe stable key), not to change the reconciler. Output aggregates\u002Fbooleans only, never PII.\n\n**5. Apply the blind-instrument test.** Ask: *what would I see if my scan were blind?* If the answer is\n\"exactly this number\", it measured nothing — the empty came from the instrument, not the system.\nKnown blind spots that all read as false absence: filter-by-filename (code lives in packages),\nexcluded dirs (`services\u002F`), path bugs (a `\"\u002Fservices\u002F\"` check that never matches), regex blind to\nannotated FKs (`municipio: models.ForeignKey[...]`), a conclusion drawn from a 2-line sample.\n\n**6. Guard your own verification.**\n- Don't turn *your* hypothesis into a refuted claim the source never made (unintentional strawman).\n- A content-verification guard must check the **axis of the ambiguity**, not the fields that already\n  match by construction (checking município+data+hora is a no-op when those are exactly what tied).\n- Reproduce the **negatives** too: *\"this is junk \u002F doesn't exist\"* deserves the same proof as\n  *\"this is a bug\"*.\n\n**7. Only survivors become work.** Cross-reference `ACHADOS_REAIS.md` before opening an issue (avoids\nduplicates). Relay corrections back to the source so its map improves. Reclassify honestly: a\n\"defect\" that is really *unimplemented scope* is a different (often deferred) task than a bug.\n\n## Anti-patterns\n\n| Excuse \u002F Red flag | Reality | Action |\n|-------------------|---------|--------|\n| \"The report is detailed, it's probably right\" | Detail ≠ verified. The relay that reported 9 findings had all 9 wrong, same direction. | Reproduce each falsifiable claim file:line. |\n| \"It's not in the model, so it's a gap\" | Grep by name misses FK-backed, renamed, folder-nested, and derived homes. | Check field \u002F FK path \u002F property \u002F serializer \u002F derivation before calling GAP. |\n| \"The scan found nothing there\" | A scan that can't reach returns empty = false absence. | Blind-instrument test: would a blind scan show the same? |\n| \"I verified it exists, done\" | An EXISTS can hide a data-loss bug (a unique key that `update_or_create` collapses silently). | Adversarially verify EXISTS too — does it carry THIS datum, is it sufficient? |\n| \"Adding field X resolves the collision\" | X may resolve *because it's noisy*, not because it discriminates; and it may be nullable. | Measure the residual; check stability and the null case. |\n| Opening an issue straight from the report | May duplicate an ACHADOS row or an already-merged fix. | Cross-check `ACHADOS_REAIS.md` + PR state first ([[feedback-verify-issue-not-already-resolved]]). |\n\n## Verification checklist\n\nBefore any finding becomes a task:\n- [ ] Every falsifiable claim has a file:line verdict (CONFIRMED\u002FREFUTED\u002FRECLASSIFIED\u002FNEEDS-RUNTIME).\n- [ ] Consequential verdicts got an adversarial second pass in the direction that costs.\n- [ ] Every alarming number was reproduced (and measured against the alternative target).\n- [ ] Blind-instrument test applied to every \"nothing\u002Fabsent\" result.\n- [ ] Survivors cross-referenced against `ACHADOS_REAIS.md` (no duplicate issue).\n- [ ] Source-side claims relayed back as aggregate measurements; business calls routed to the owner.\n\n## Worked example (this method's origin — the sheets.banco relay, 2026-08-25)\n\nAn external agent relayed a field-by-field map of the system. Cross-checked with fan-out + adversarial\nverify: of **76** \"fields with no home\", **31 already had one** (FK\u002Frename\u002Fderived — the scan's regex\nwas blind to annotated FKs); the **\"4 import defects\"** were **0** (the entities weren't implemented in\nthat importer at all — reclassified as scope, not bug); and one surviving finding — a dedup hash whose\n6-field recipe collided on **284→128** real events — was a genuine silent-data-loss bug\n(`update_or_create(external_hash=…)` overwriting in place, counted as success). The relay's *own*\nproposed fix (\"add `segmento`\") was then overturned by measurement (segmento is noisy, 579 empty), and\na stable id (`external_event_id`) turned out to be attachable only heuristically — so a guard that\nchecked município+data+hora was a **no-op on the exact ambiguous tier**. Every correction, in both\ndirections, came from reproduction — none from opinion.\n\n## Related skills\n\n- Runs **before** `create-plan` \u002F `debugging-and-error-recovery`: triage the finding first, so only\n  survivors become a plan or a bug. (Sibling of `plan-crosscheck`, which sits *after* create-plan.)\n- Uses `subagent-development` (fan-out) and the `Workflow` tool for the verifier panel.\n- Feeds `verification-gate` (prove your own resulting fix works) once a survivor becomes work.\n- Encodes the memories: [[feedback-multi-claude-relay-verify-system-side]] ·\n  [[feedback-metadata-vs-code-verification]] · [[feedback-comentario-nao-e-evidencia]] ·\n  [[feedback-first-real-execution-latent-bugs]] · [[feedback-workflow-verifier-silent-drop]] ·\n  [[reference-dynamic-runtime-audit-playbook]].\n",{"name":5,"description":7},"main","9e3a882d83e0853bdc570ae9d89c02d2a53bed82",".claude\u002Fskills\u002Ffindings-crosscheck","https:\u002F\u002Fgithub.com\u002Fmatheusnorjosa\u002Faprender_sistema","https:\u002F\u002Fgithub.com\u002Fmatheusnorjosa","Dev Python | IA | Automation | HTML | CSS | Data | Process | Projects","2026-11-11 08:34:26",{"source":8,"skillName":5,"commands":61,"prompt":71,"zipAvailable":72},[62,65,68],{"tool":63,"command":64},"npx","npx skills add matheusnorjosa\u002Faprender_sistema --skill findings-crosscheck",{"tool":66,"command":67},"bunx","bunx skills add matheusnorjosa\u002Faprender_sistema --skill findings-crosscheck",{"tool":69,"command":70},"pnpm","pnpm dlx skills add matheusnorjosa\u002Faprender_sistema --skill findings-crosscheck","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmatheusnorjosa\u002Faprender_sistema\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Ffindings-crosscheck\u002FSKILL.md",true,[74,80,84,88,92,96],{"path":75,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":78,"sourceHtmlUrl":79},"project-context-template.md","REFERENCE","参考文档",543,"https:\u002F\u002Fgithub.com\u002FStarksJohn\u002FCursorUserDir\u002Fblob\u002Fmain\u002Fskills\u002Fbmad-generate-project-context\u002Fproject-context-template.md",{"path":81,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":82,"sourceHtmlUrl":83},"reference\u002Fworkflow-template.md",5139,"https:\u002F\u002Fgithub.com\u002Fmatheusnorjosa\u002Faprender_sistema\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Ffindings-crosscheck\u002Freference\u002Fworkflow-template.md",{"path":85,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":86,"sourceHtmlUrl":87},"steps\u002Fstep-01-discover.md",6016,"https:\u002F\u002Fgithub.com\u002FStarksJohn\u002FCursorUserDir\u002Fblob\u002Fmain\u002Fskills\u002Fbmad-generate-project-context\u002Fsteps\u002Fstep-01-discover.md",{"path":89,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":90,"sourceHtmlUrl":91},"steps\u002Fstep-02-generate.md",9135,"https:\u002F\u002Fgithub.com\u002FStarksJohn\u002FCursorUserDir\u002Fblob\u002Fmain\u002Fskills\u002Fbmad-generate-project-context\u002Fsteps\u002Fstep-02-generate.md",{"path":93,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":94,"sourceHtmlUrl":95},"steps\u002Fstep-03-complete.md",8122,"https:\u002F\u002Fgithub.com\u002FStarksJohn\u002FCursorUserDir\u002Fblob\u002Fmain\u002Fskills\u002Fbmad-generate-project-context\u002Fsteps\u002Fstep-03-complete.md",{"path":97,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":98,"sourceHtmlUrl":99},"workflow.md",1668,"https:\u002F\u002Fgithub.com\u002FStarksJohn\u002FCursorUserDir\u002Fblob\u002Fmain\u002Fskills\u002Fbmad-generate-project-context\u002Fworkflow.md",[101,139,161,182,194,220],{"skillNo":102,"name":103,"nameZh":6,"description":104,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":105,"categories":106,"keywords":117,"publishedAt":48},"01M6C0WHSP7S2QMJGGMQRXJ6PD","writing-standards","Apply AS v2 technical-writing standards (clarity, brevity, active voice, Python\u002FDjango conventions). Use when writing a README, a docstring (PEP 257), a commit message, a PR description, an error message, or any technical doc.","https:\u002F\u002Fgithub.com\u002Fmatheusnorjosa\u002Faprender_sistema\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fwriting-standards\u002FSKILL.md",[107,112],{"categoryNo":108,"categoryName":109,"taxonomyType":110,"taxonomyTypeDesc":111},"01JBSEEDCAT000000000000018","写作与文案","SCENARIO","使用场景",{"categoryNo":113,"categoryName":114,"taxonomyType":115,"taxonomyTypeDesc":116},"01JBSEEDCAT000000000000036","内容创作者","PROFESSION","适用职业",[118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,20],"writing","writing standards","standards","python","commit","pr","pr description","commit message","doc","voice","clarity","django","technical","README","message","active","as","error","technical-writing","brevity","docstring",{"skillNo":140,"name":141,"nameZh":6,"description":142,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":143,"categories":144,"keywords":145,"publishedAt":48},"01M6C0WG2SBP9PJG1YQFGGVJAR","verification-gate","Verify before claiming success. Use when about to say something works\u002Fis done, after implementing a feature, after a bugfix, or before pushing — run the proof command and confirm output first.","https:\u002F\u002Fgithub.com\u002Fmatheusnorjosa\u002Faprender_sistema\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fverification-gate\u002FSKILL.md",[],[146,147,148,149,150,40,151,33,152,153,154,155,156,157,158,159,160,20],"verification","verification gate","gate","run","first","command","verify before claiming","say","done","feature","proof","bugfix","output","about","implementing",{"skillNo":162,"name":163,"nameZh":6,"description":164,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":165,"categories":166,"keywords":170,"publishedAt":48},"01M6C0WE010G12KH45YZW6M7K5","test-driven-development","Write the failing test before the implementation in AS v2 (pytest + Django\u002FDRF). Use when implementing a feature or fixing a bug, before any production code is written.","https:\u002F\u002Fgithub.com\u002Fmatheusnorjosa\u002Faprender_sistema\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Ftest-driven-development\u002FSKILL.md",[167],{"categoryNo":168,"categoryName":169,"taxonomyType":110,"taxonomyTypeDesc":111},"01JBSEEDCAT000000000000008","测试与质量",[171,172,173,174,45,175,129,176,33,177,178,179,155,134,180,160,20,181],"test","test driven development","development","driven","Production","write","bug","implementation","pytest","drf","failing",{"skillNo":183,"name":184,"nameZh":6,"description":185,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":186,"categories":187,"keywords":188,"publishedAt":48},"01M6C0WC6Y81XRVBJQSTKA96XQ","subagent-development","Orquestra subagents no AS v2 — decompõe a tarefa em domínios independentes, paraleliza e revisa em 2 estágios. Use ao delegar exploração, implementação ou validação cross-arquivo para acelerar o trabalho e poupar o contexto principal.","https:\u002F\u002Fgithub.com\u002Fmatheusnorjosa\u002Faprender_sistema\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fsubagent-development\u002FSKILL.md",[],[173,189,190,191,192,33,193,134],"subagent","subagent development","para","subagents","ao",{"skillNo":195,"name":196,"nameZh":6,"description":197,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":198,"categories":199,"keywords":200,"publishedAt":48},"01M6C0W9W8D6JJWXW28Q7ZHAC9","security-scan","Automated security scanning for AS v2. Use before commits or when reviewing changes for vulnerabilities. Runs dependency audit (pip-audit, npm audit), secret detection (grep patterns), and code pattern scanning (SQL injection, XSS, eval, pickle, hardcoded secrets). Integrates with project hooks system.","https:\u002F\u002Fgithub.com\u002Fmatheusnorjosa\u002Faprender_sistema\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fsecurity-scan\u002FSKILL.md",[],[21,43,30,201,202,45,203,41,204,205,206,207,208,209,210,39,211,212,33,213,214,215,134,216,24,217,218,219,20],"vulnerabilities","sql","npm","dependency audit","detection","injection","xss","secrets","pip-audit","commits","grep","eval","hooks","security scanning","project","with","pip","for","changes",{"skillNo":221,"name":222,"nameZh":6,"description":223,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":224,"categories":225,"keywords":229,"publishedAt":48},"01M6C0W7RE3G3C2852YXQKR5J9","resume-handoff","Resume work from a saved handoff document, validating its state against the current codebase before continuing. Use when resuming work from a saved handoff after a context clear or in a new session (path, session name, or GitHub issue).","https:\u002F\u002Fgithub.com\u002Fmatheusnorjosa\u002Faprender_sistema\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fresume-handoff\u002FSKILL.md",[226],{"categoryNo":227,"categoryName":228,"taxonomyType":115,"taxonomyTypeDesc":116},"01JBSEEDCAT000000000000038","人力资源",[230,231,232,233,234,235,37,236,34,33,237,238,239,240,241,242,243,244,20,245],"handoff","resume handoff","resume","github","state","new session","context","github issue","issue","document","clear","name","saved","codebase","resuming","new"]