{"id":"d4a61aa5-4303-47cf-b6fb-7a51d10f11cc","entityType":"agent","slug":"clawhub-athola-nm-gauntlet-gauntlet-curate","name":"gauntlet-curate","canonicalUrl":"https://www.xpersona.co/agent/clawhub-athola-nm-gauntlet-gauntlet-curate","canonicalPath":"/agent/clawhub-athola-nm-gauntlet-gauntlet-curate","generatedAt":"2026-10-13T06:42:28.885Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-11T21:11:23.339Z","emptyReason":null},"description":"Audits the DSA problem bank for coverage gaps and proposes new YAML entries Skill: gauntlet-curate Owner: athola Summary: Audits the DSA problem bank for coverage gaps and proposes new YAML entries Tags: latest:1.9.19 Version history: v1.9.19 | 2026-08-26T13:11:34.195Z | user Release v1.9.19 v1.9.17 | 2026-07-30T05:33:29.603Z | user Release v1.9.17 v1.9.16 | 2026-07-14T19:50:15.052Z | user Release v1.9.16 v1.9.14 | 2026-06-30T17:59:30.771Z | user Release v1.9.14 v1.9.13 | 2026-06-27T16:18:18","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 992 downloads reported by the source. Last updated 10/11/2026.","installCommand":"clawhub skill install s17emme0e2m3cpf7k2jvp3a84984b8z9:nm-gauntlet-gauntlet-curate","sourceUrl":"https://clawhub.ai/athola/nm-gauntlet-gauntlet-curate","homepage":"https://clawhub.ai/athola/skills/nm-gauntlet-gauntlet-curate","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/athola/nm-gauntlet-gauntlet-curate","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/athola/skills/nm-gauntlet-gauntlet-curate","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":60,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Audits the DSA problem bank for coverage gaps and proposes new YAML entries Skill: gauntlet-curate Owner: athola Summary: Audits the DSA problem bank for covera"},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-11T21:11:23.339Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T21:11:23.339Z","emptyReason":null},"stars":null,"forks":null,"downloads":992,"likes":null,"task":null,"library":null,"packageName":null,"latestVersion":"1.9.19","tractionLabel":"992 downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T21:11:23.326Z","emptyReason":null},"lastUpdatedAt":"2026-10-11T21:11:23.339Z","lastCrawledAt":"2026-10-11T21:11:23.326Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-12T21:11:23.326Z","lastVerifiedAt":null,"highlights":[{"version":"1.9.19","createdAt":"2026-08-26T13:11:34.195Z","changelog":"Release v1.9.19","fileCount":3,"zipByteSize":3240},{"version":"1.9.17","createdAt":"2026-07-30T05:33:29.603Z","changelog":"Release v1.9.17","fileCount":3,"zipByteSize":3359},{"version":"1.9.16","createdAt":"2026-07-14T19:50:15.052Z","changelog":"Release v1.9.16","fileCount":3,"zipByteSize":3288},{"version":"1.9.14","createdAt":"2026-06-30T17:59:30.771Z","changelog":"Release v1.9.14","fileCount":3,"zipByteSize":3229},{"version":"1.9.13","createdAt":"2026-06-27T16:18:18.441Z","changelog":"Release v1.9.13","fileCount":3,"zipByteSize":3303},{"version":"1.9.12","createdAt":"2026-06-19T03:12:19.066Z","changelog":"Release v1.9.12","fileCount":3,"zipByteSize":3166},{"version":"1.0.0","createdAt":"2026-06-18T14:07:30.171Z","changelog":"Initial release of the Gauntlet Curate skill. - Audits the DSA problem bank for coverage gaps based on NeetCode counts. - Generates a markdown report with coverage summaries and missing problem areas. - Proposes new YAML problem entries (in report only) for human review, without modifying data files. - Includes schema and validation steps for proposal format. - Ensures human approval is always required before changes to problem files.","fileCount":3,"zipByteSize":3228}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s17emme0e2m3cpf7k2jvp3a84984b8z9:nm-gauntlet-gauntlet-curate","setupComplexity":"low","setupSteps":["Setup complexity is classified as HIGH. You must provision dedicated cloud infrastructure or an isolated VM. Do not run this directly on your local workstation.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-athola-nm-gauntlet-gauntlet-curate/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-athola-nm-gauntlet-gauntlet-curate/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-athola-nm-gauntlet-gauntlet-curate/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-athola-nm-gauntlet-gauntlet-curate/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-athola-nm-gauntlet-gauntlet-curate/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-athola-nm-gauntlet-gauntlet-curate/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-13T06:42:28.884Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-athola-nm-gauntlet-gauntlet-curate/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-athola-nm-gauntlet-gauntlet-curate/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-athola-nm-gauntlet-gauntlet-curate/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-athola-nm-gauntlet-gauntlet-curate/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"high","updatedAt":"2026-10-11T21:11:23.339Z","emptyReason":null},"readme":"Skill: gauntlet-curate\n\nOwner: athola\n\nSummary: Audits the DSA problem bank for coverage gaps and proposes new YAML entries\n\nTags: latest:1.9.19\n\nVersion history:\n\nv1.9.19 | 2026-08-26T13:11:34.195Z | user\n\nRelease v1.9.19\n\nv1.9.17 | 2026-07-30T05:33:29.603Z | user\n\nRelease v1.9.17\n\nv1.9.16 | 2026-07-14T19:50:15.052Z | user\n\nRelease v1.9.16\n\nv1.9.14 | 2026-06-30T17:59:30.771Z | user\n\nRelease v1.9.14\n\nv1.9.13 | 2026-06-27T16:18:18.441Z | user\n\nRelease v1.9.13\n\nv1.9.12 | 2026-06-19T03:12:19.066Z | user\n\nRelease v1.9.12\n\nv1.0.0 | 2026-06-18T14:07:30.171Z | auto\n\nInitial release of the Gauntlet Curate skill.\n\n- Audits the DSA problem bank for coverage gaps based on NeetCode counts.\n- Generates a markdown report with coverage summaries and missing problem areas.\n- Proposes new YAML problem entries (in report only) for human review, without modifying data files.\n- Includes schema and validation steps for proposal format.\n- Ensures human approval is always required before changes to problem files.\n\nArchive index:\n\nArchive v1.9.19: 3 files, 3240 bytes\n\nFiles: skill-card.md (1846b), SKILL.md (3832b), _meta.json (147b)\n\nFile v1.9.19:SKILL.md\n\n---\nname: gauntlet-curate\ndescription: Audits the DSA problem bank for coverage gaps and proposes new YAML entries\nversion: 1.9.8\ntriggers:\n  - refreshing the problem bank during update-plugins runs\nmetadata: {\"openclaw\": {\"homepage\": \"https://github.com/athola/claude-night-market/tree/master/plugins/gauntlet\", \"emoji\": \"\\ud83e\\udd9e\"}}\nsource: claude-night-market\nsource_plugin: gauntlet\n---\n\n> **Night Market Skill** — ported from [claude-night-market/gauntlet](https://github.com/athola/claude-night-market/tree/master/plugins/gauntlet). For the full experience with agents, hooks, and commands, install the Claude Code plugin.\n\n\n# Gauntlet Curate\n\nSurvey the DSA problem bank, identify coverage gaps, and propose\nnew YAML entries for human review.\n\n## When This Skill Fires\n\nInvoke this skill manually with `Skill(gauntlet:gauntlet-curate)`\nwhen the problem bank needs a coverage review. The skill is intended\nto participate in `/update-plugins` runs but is not yet wired into\nthat command (see openpackage.yml registration). It is distinct from\n`gauntlet:curate`, which handles per-annotation knowledge capture\nand is what `/gauntlet-curate` invokes today.\n\n## Steps\n\n1. **Locate the problem bank** at `plugins/gauntlet/data/problems/`.\n   Read `_manifest.yaml` to load the expected NeetCode counts per\n   category.\n\n2. **Survey current coverage** by counting problems in each YAML\n   file (skipping `_manifest.yaml`).\n   Run the analysis script:\n\n   ```bash\n   cd plugins/gauntlet\n   python scripts/curate_problems.py data/problems/ --output /tmp/gauntlet-curate-report.md\n   ```\n\n3. **Identify gaps**: categories whose actual count falls below\n   the `neetcode_count` in the manifest.\n   The script sorts gaps largest-first so the worst shortfalls\n   appear at the top.\n\n4. **Review existing problems** in each gap category to understand\n   what is already covered before proposing additions.\n\n5. **Propose new YAML entries** following the schema below.\n   Add proposals to the report under \"Proposed New Problems\".\n   Do NOT write proposals directly into `data/problems/*.yaml`.\n\n6. **Validate proposals** by running:\n\n   ```bash\n   python -c \"\n   import yaml, sys\n   sys.path.insert(0, 'src')\n   from gauntlet.models import BankProblem\n   proposals = yaml.safe_load(open('proposals.yaml'))\n   for p in proposals:\n       BankProblem.from_dict(p)\n   print('All proposals valid.')\n   \"\n   ```\n\n7. **Present the report** to the human for review.\n   The report includes the coverage table, gap list, and proposed\n   entries.\n   The human decides which proposals to merge into the YAML files.\n\n## Problem Schema\n\nEach proposed entry must follow this schema:\n\n```yaml\n- id: category-NNN\n  title: Problem Title\n  difficulty: easy       # easy | medium | hard | extra_hard\n  prompt: |\n    Problem statement with constraints and examples.\n  hints:\n    - First hint.\n    - Second hint.\n  solution_outline: |\n    Approach and time/space complexity.\n  tags: [tag1, tag2]\n  neetcode_id: neetcode-NNN\n  challenge_type: explain_why  # explain_why | multiple_choice | trace\n                                # | code_complete | debug | rank\n```\n\nRequired fields: `id`, `title`, `difficulty`, `prompt`.\nOptional fields default to empty values.\n\n## Safety Constraints\n\n- Never modify files under `data/problems/` directly.\n- Never run with a `--write` or `--fix` flag: the script\n  intentionally has none.\n- All output is a proposal report for human approval.\n- Existing hand-curated problems are never touched.\n\n## Output\n\nA markdown report at the path specified by `--output`, containing:\n\n- Coverage summary table (expected vs. actual per category)\n- Gaps list sorted by missing count\n- YAML schema template for new proposals\n- Space for the human reviewer to add proposed entries\n\nHuman review is required before any YAML file changes.\n\nFile v1.9.19:_meta.json\n\n{\n  \"ownerId\": \"kn7d107jg9jv602h9ytsegydq184a42s\",\n  \"slug\": \"nm-gauntlet-gauntlet-curate\",\n  \"version\": \"1.9.19\",\n  \"publishedAt\": 1787749894195\n}\n\nFile v1.9.19:skill-card.md\n\n## Description:\n\nAudits the DSA problem bank for coverage gaps and proposes new YAML entries.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[athola](https://clawhub.ai/user/athola)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers maintaining the Gauntlet DSA problem bank use this skill to audit category coverage against manifest counts and prepare proposed YAML problem entries for human review.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Proposed problem entries could be inaccurate, incomplete, or misaligned with the existing problem bank.\n\nMitigation: Keep the generated report in review mode and require a human to approve any YAML additions before merging.\n\nRisk: The workflow assumes the Gauntlet plugin layout and supporting scripts are present.\n\nMitigation: Confirm the expected plugin directory, problem manifest, and curation script before running the workflow.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/athola/skills/nm-gauntlet-gauntlet-curate)\n- [Gauntlet plugin homepage](https://github.com/athola/claude-night-market/tree/master/plugins/gauntlet)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, shell commands, configuration, guidance]\n\n**Output Format:** [Markdown report with YAML proposal examples and inline shell commands]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Human approval is required before proposed problem entries are merged into the problem bank.]\n\n## Skill Version(s):\n\n1.9.19 (source: server release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.9.17: 3 files, 3359 bytes\n\nFiles: skill-card.md (2212b), SKILL.md (3832b), _meta.json (147b)\n\nFile v1.9.17:SKILL.md\n\n---\nname: gauntlet-curate\ndescription: Audits the DSA problem bank for coverage gaps and proposes new YAML entries\nversion: 1.9.8\ntriggers:\n  - refreshing the problem bank during update-plugins runs\nmetadata: {\"openclaw\": {\"homepage\": \"https://github.com/athola/claude-night-market/tree/master/plugins/gauntlet\", \"emoji\": \"\\ud83e\\udd9e\"}}\nsource: claude-night-market\nsource_plugin: gauntlet\n---\n\n> **Night Market Skill** — ported from [claude-night-market/gauntlet](https://github.com/athola/claude-night-market/tree/master/plugins/gauntlet). For the full experience with agents, hooks, and commands, install the Claude Code plugin.\n\n\n# Gauntlet Curate\n\nSurvey the DSA problem bank, identify coverage gaps, and propose\nnew YAML entries for human review.\n\n## When This Skill Fires\n\nInvoke this skill manually with `Skill(gauntlet:gauntlet-curate)`\nwhen the problem bank needs a coverage review. The skill is intended\nto participate in `/update-plugins` runs but is not yet wired into\nthat command (see openpackage.yml registration). It is distinct from\n`gauntlet:curate`, which handles per-annotation knowledge capture\nand is what `/gauntlet-curate` invokes today.\n\n## Steps\n\n1. **Locate the problem bank** at `plugins/gauntlet/data/problems/`.\n   Read `_manifest.yaml` to load the expected NeetCode counts per\n   category.\n\n2. **Survey current coverage** by counting problems in each YAML\n   file (skipping `_manifest.yaml`).\n   Run the analysis script:\n\n   ```bash\n   cd plugins/gauntlet\n   python scripts/curate_problems.py data/problems/ --output /tmp/gauntlet-curate-report.md\n   ```\n\n3. **Identify gaps**: categories whose actual count falls below\n   the `neetcode_count` in the manifest.\n   The script sorts gaps largest-first so the worst shortfalls\n   appear at the top.\n\n4. **Review existing problems** in each gap category to understand\n   what is already covered before proposing additions.\n\n5. **Propose new YAML entries** following the schema below.\n   Add proposals to the report under \"Proposed New Problems\".\n   Do NOT write proposals directly into `data/problems/*.yaml`.\n\n6. **Validate proposals** by running:\n\n   ```bash\n   python -c \"\n   import yaml, sys\n   sys.path.insert(0, 'src')\n   from gauntlet.models import BankProblem\n   proposals = yaml.safe_load(open('proposals.yaml'))\n   for p in proposals:\n       BankProblem.from_dict(p)\n   print('All proposals valid.')\n   \"\n   ```\n\n7. **Present the report** to the human for review.\n   The report includes the coverage table, gap list, and proposed\n   entries.\n   The human decides which proposals to merge into the YAML files.\n\n## Problem Schema\n\nEach proposed entry must follow this schema:\n\n```yaml\n- id: category-NNN\n  title: Problem Title\n  difficulty: easy       # easy | medium | hard | extra_hard\n  prompt: |\n    Problem statement with constraints and examples.\n  hints:\n    - First hint.\n    - Second hint.\n  solution_outline: |\n    Approach and time/space complexity.\n  tags: [tag1, tag2]\n  neetcode_id: neetcode-NNN\n  challenge_type: explain_why  # explain_why | multiple_choice | trace\n                                # | code_complete | debug | rank\n```\n\nRequired fields: `id`, `title`, `difficulty`, `prompt`.\nOptional fields default to empty values.\n\n## Safety Constraints\n\n- Never modify files under `data/problems/` directly.\n- Never run with a `--write` or `--fix` flag: the script\n  intentionally has none.\n- All output is a proposal report for human approval.\n- Existing hand-curated problems are never touched.\n\n## Output\n\nA markdown report at the path specified by `--output`, containing:\n\n- Coverage summary table (expected vs. actual per category)\n- Gaps list sorted by missing count\n- YAML schema template for new proposals\n- Space for the human reviewer to add proposed entries\n\nHuman review is required before any YAML file changes.\n\nFile v1.9.17:_meta.json\n\n{\n  \"ownerId\": \"kn7d107jg9jv602h9ytsegydq184a42s\",\n  \"slug\": \"nm-gauntlet-gauntlet-curate\",\n  \"version\": \"1.9.17\",\n  \"publishedAt\": 1785389609603\n}\n\nFile v1.9.17:skill-card.md\n\n## Description: <br>\nAudits the DSA problem bank for coverage gaps and proposes new YAML entries. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[athola](https://clawhub.ai/user/athola) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nDevelopers maintaining the Gauntlet DSA problem bank use this skill to audit category coverage against the manifest and prepare human-reviewed YAML proposal reports for missing problems. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Generated problem proposals may be inaccurate, duplicative, or poorly aligned with the existing DSA problem bank. <br>\nMitigation: Review the generated report before merging any proposal and validate proposed entries against the Gauntlet problem schema. <br>\nRisk: Using the skill outside the intended Gauntlet plugin repository may produce misleading coverage analysis. <br>\nMitigation: Confirm the local workspace contains the Gauntlet problem bank before running the suggested analysis commands. <br>\nRisk: Direct edits to problem-bank YAML files could bypass the intended review process. <br>\nMitigation: Keep output as a proposal report and require human approval before applying any YAML changes. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/athola/skills/nm-gauntlet-gauntlet-curate) <br>\n- [Gauntlet plugin homepage](https://github.com/athola/claude-night-market/tree/master/plugins/gauntlet) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [Text, Markdown, Shell commands, Configuration, Guidance] <br>\n**Output Format:** [Markdown report with YAML snippets and inline shell command blocks] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Human review is required before any proposed YAML entries are merged.] <br>\n\n## Skill Version(s): <br>\n1.9.17 (source: server release evidence) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v1.9.16: 3 files, 3288 bytes\n\nFiles: skill-card.md (1977b), SKILL.md (3832b), _meta.json (147b)\n\nFile v1.9.16:SKILL.md\n\n---\nname: gauntlet-curate\ndescription: Audits the DSA problem bank for coverage gaps and proposes new YAML entries\nversion: 1.9.8\ntriggers:\n  - refreshing the problem bank during update-plugins runs\nmetadata: {\"openclaw\": {\"homepage\": \"https://github.com/athola/claude-night-market/tree/master/plugins/gauntlet\", \"emoji\": \"\\ud83e\\udd9e\"}}\nsource: claude-night-market\nsource_plugin: gauntlet\n---\n\n> **Night Market Skill** — ported from [claude-night-market/gauntlet](https://github.com/athola/claude-night-market/tree/master/plugins/gauntlet). For the full experience with agents, hooks, and commands, install the Claude Code plugin.\n\n\n# Gauntlet Curate\n\nSurvey the DSA problem bank, identify coverage gaps, and propose\nnew YAML entries for human review.\n\n## When This Skill Fires\n\nInvoke this skill manually with `Skill(gauntlet:gauntlet-curate)`\nwhen the problem bank needs a coverage review. The skill is intended\nto participate in `/update-plugins` runs but is not yet wired into\nthat command (see openpackage.yml registration). It is distinct from\n`gauntlet:curate`, which handles per-annotation knowledge capture\nand is what `/gauntlet-curate` invokes today.\n\n## Steps\n\n1. **Locate the problem bank** at `plugins/gauntlet/data/problems/`.\n   Read `_manifest.yaml` to load the expected NeetCode counts per\n   category.\n\n2. **Survey current coverage** by counting problems in each YAML\n   file (skipping `_manifest.yaml`).\n   Run the analysis script:\n\n   ```bash\n   cd plugins/gauntlet\n   python scripts/curate_problems.py data/problems/ --output /tmp/gauntlet-curate-report.md\n   ```\n\n3. **Identify gaps**: categories whose actual count falls below\n   the `neetcode_count` in the manifest.\n   The script sorts gaps largest-first so the worst shortfalls\n   appear at the top.\n\n4. **Review existing problems** in each gap category to understand\n   what is already covered before proposing additions.\n\n5. **Propose new YAML entries** following the schema below.\n   Add proposals to the report under \"Proposed New Problems\".\n   Do NOT write proposals directly into `data/problems/*.yaml`.\n\n6. **Validate proposals** by running:\n\n   ```bash\n   python -c \"\n   import yaml, sys\n   sys.path.insert(0, 'src')\n   from gauntlet.models import BankProblem\n   proposals = yaml.safe_load(open('proposals.yaml'))\n   for p in proposals:\n       BankProblem.from_dict(p)\n   print('All proposals valid.')\n   \"\n   ```\n\n7. **Present the report** to the human for review.\n   The report includes the coverage table, gap list, and proposed\n   entries.\n   The human decides which proposals to merge into the YAML files.\n\n## Problem Schema\n\nEach proposed entry must follow this schema:\n\n```yaml\n- id: category-NNN\n  title: Problem Title\n  difficulty: easy       # easy | medium | hard | extra_hard\n  prompt: |\n    Problem statement with constraints and examples.\n  hints:\n    - First hint.\n    - Second hint.\n  solution_outline: |\n    Approach and time/space complexity.\n  tags: [tag1, tag2]\n  neetcode_id: neetcode-NNN\n  challenge_type: explain_why  # explain_why | multiple_choice | trace\n                                # | code_complete | debug | rank\n```\n\nRequired fields: `id`, `title`, `difficulty`, `prompt`.\nOptional fields default to empty values.\n\n## Safety Constraints\n\n- Never modify files under `data/problems/` directly.\n- Never run with a `--write` or `--fix` flag: the script\n  intentionally has none.\n- All output is a proposal report for human approval.\n- Existing hand-curated problems are never touched.\n\n## Output\n\nA markdown report at the path specified by `--output`, containing:\n\n- Coverage summary table (expected vs. actual per category)\n- Gaps list sorted by missing count\n- YAML schema template for new proposals\n- Space for the human reviewer to add proposed entries\n\nHuman review is required before any YAML file changes.\n\nFile v1.9.16:_meta.json\n\n{\n  \"ownerId\": \"kn7d107jg9jv602h9ytsegydq184a42s\",\n  \"slug\": \"nm-gauntlet-gauntlet-curate\",\n  \"version\": \"1.9.16\",\n  \"publishedAt\": 1784058615052\n}\n\nFile v1.9.16:skill-card.md\n\n## Description: <br>\nAudits the DSA problem bank for coverage gaps and proposes new YAML entries. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[athola](https://clawhub.ai/user/athola) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nDevelopers and maintainers use this skill to review DSA problem-bank coverage, identify gaps against the manifest, and prepare proposed YAML entries for human approval. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Generated problem proposals can be incomplete, inaccurate, or misaligned with the existing DSA problem bank. <br>\nMitigation: Review the markdown report and validate proposed YAML entries before merging any changes. <br>\nRisk: Repository or service actions may be privileged when the skill is used inside broader release or administration workflows. <br>\nMitigation: Use scoped access, review commands before execution, and avoid granting unrelated production credentials. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/athola/skills/nm-gauntlet-gauntlet-curate) <br>\n- [Project homepage from ClawHub metadata](https://github.com/athola/claude-night-market/tree/master/plugins/gauntlet) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [Markdown, YAML, Shell commands, Guidance] <br>\n**Output Format:** [Markdown report with YAML proposal snippets and shell command blocks] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Proposal-only output; human review is required before modifying problem-bank YAML files.] <br>\n\n## Skill Version(s): <br>\n1.9.16 (source: release evidence) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v1.9.14: 3 files, 3229 bytes\n\nFiles: skill-card.md (1838b), SKILL.md (3832b), _meta.json (147b)\n\nFile v1.9.14:SKILL.md\n\n---\nname: gauntlet-curate\ndescription: Audits the DSA problem bank for coverage gaps and proposes new YAML entries\nversion: 1.9.8\ntriggers:\n  - refreshing the problem bank during update-plugins runs\nmetadata: {\"openclaw\": {\"homepage\": \"https://github.com/athola/claude-night-market/tree/master/plugins/gauntlet\", \"emoji\": \"\\ud83e\\udd9e\"}}\nsource: claude-night-market\nsource_plugin: gauntlet\n---\n\n> **Night Market Skill** — ported from [claude-night-market/gauntlet](https://github.com/athola/claude-night-market/tree/master/plugins/gauntlet). For the full experience with agents, hooks, and commands, install the Claude Code plugin.\n\n\n# Gauntlet Curate\n\nSurvey the DSA problem bank, identify coverage gaps, and propose\nnew YAML entries for human review.\n\n## When This Skill Fires\n\nInvoke this skill manually with `Skill(gauntlet:gauntlet-curate)`\nwhen the problem bank needs a coverage review. The skill is intended\nto participate in `/update-plugins` runs but is not yet wired into\nthat command (see openpackage.yml registration). It is distinct from\n`gauntlet:curate`, which handles per-annotation knowledge capture\nand is what `/gauntlet-curate` invokes today.\n\n## Steps\n\n1. **Locate the problem bank** at `plugins/gauntlet/data/problems/`.\n   Read `_manifest.yaml` to load the expected NeetCode counts per\n   category.\n\n2. **Survey current coverage** by counting problems in each YAML\n   file (skipping `_manifest.yaml`).\n   Run the analysis script:\n\n   ```bash\n   cd plugins/gauntlet\n   python scripts/curate_problems.py data/problems/ --output /tmp/gauntlet-curate-report.md\n   ```\n\n3. **Identify gaps**: categories whose actual count falls below\n   the `neetcode_count` in the manifest.\n   The script sorts gaps largest-first so the worst shortfalls\n   appear at the top.\n\n4. **Review existing problems** in each gap category to understand\n   what is already covered before proposing additions.\n\n5. **Propose new YAML entries** following the schema below.\n   Add proposals to the report under \"Proposed New Problems\".\n   Do NOT write proposals directly into `data/problems/*.yaml`.\n\n6. **Validate proposals** by running:\n\n   ```bash\n   python -c \"\n   import yaml, sys\n   sys.path.insert(0, 'src')\n   from gauntlet.models import BankProblem\n   proposals = yaml.safe_load(open('proposals.yaml'))\n   for p in proposals:\n       BankProblem.from_dict(p)\n   print('All proposals valid.')\n   \"\n   ```\n\n7. **Present the report** to the human for review.\n   The report includes the coverage table, gap list, and proposed\n   entries.\n   The human decides which proposals to merge into the YAML files.\n\n## Problem Schema\n\nEach proposed entry must follow this schema:\n\n```yaml\n- id: category-NNN\n  title: Problem Title\n  difficulty: easy       # easy | medium | hard | extra_hard\n  prompt: |\n    Problem statement with constraints and examples.\n  hints:\n    - First hint.\n    - Second hint.\n  solution_outline: |\n    Approach and time/space complexity.\n  tags: [tag1, tag2]\n  neetcode_id: neetcode-NNN\n  challenge_type: explain_why  # explain_why | multiple_choice | trace\n                                # | code_complete | debug | rank\n```\n\nRequired fields: `id`, `title`, `difficulty`, `prompt`.\nOptional fields default to empty values.\n\n## Safety Constraints\n\n- Never modify files under `data/problems/` directly.\n- Never run with a `--write` or `--fix` flag: the script\n  intentionally has none.\n- All output is a proposal report for human approval.\n- Existing hand-curated problems are never touched.\n\n## Output\n\nA markdown report at the path specified by `--output`, containing:\n\n- Coverage summary table (expected vs. actual per category)\n- Gaps list sorted by missing count\n- YAML schema template for new proposals\n- Space for the human reviewer to add proposed entries\n\nHuman review is required before any YAML file changes.\n\nFile v1.9.14:_meta.json\n\n{\n  \"ownerId\": \"kn7d107jg9jv602h9ytsegydq184a42s\",\n  \"slug\": \"nm-gauntlet-gauntlet-curate\",\n  \"version\": \"1.9.14\",\n  \"publishedAt\": 1782842370771\n}\n\nFile v1.9.14:skill-card.md\n\n## Description: <br>\nAudits the DSA problem bank for coverage gaps and proposes new YAML entries. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[athola](https://clawhub.ai/user/athola) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nDevelopers and maintainers use this skill to audit a Gauntlet DSA problem bank, identify categories below expected NeetCode coverage, and prepare a markdown proposal report for human review. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The broader Gauntlet plugin may include agents, hooks, and commands outside this packaged skill. <br>\nMitigation: Review the separate full Claude Code plugin before installing it. <br>\nRisk: Generated problem proposals could be incorrect or unsuitable for the curated problem bank. <br>\nMitigation: Keep output as a proposal report and require human review before merging YAML entries. <br>\n\n\n## Reference(s): <br>\n- [Gauntlet plugin homepage](https://github.com/athola/claude-night-market/tree/master/plugins/gauntlet) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [Markdown, Configuration, Shell commands, Guidance] <br>\n**Output Format:** [Markdown report with YAML proposal examples and inline shell commands] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Human review is required before changing problem-bank YAML files.] <br>\n\n## Skill Version(s): <br>\n1.9.14 (source: server release metadata; artifact frontmatter reports 1.9.8) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v1.9.13: 3 files, 3303 bytes\n\nFiles: skill-card.md (2084b), SKILL.md (3832b), _meta.json (147b)\n\nFile v1.9.13:SKILL.md\n\n---\nname: gauntlet-curate\ndescription: Audits the DSA problem bank for coverage gaps and proposes new YAML entries\nversion: 1.9.8\ntriggers:\n  - refreshing the problem bank during update-plugins runs\nmetadata: {\"openclaw\": {\"homepage\": \"https://github.com/athola/claude-night-market/tree/master/plugins/gauntlet\", \"emoji\": \"\\ud83e\\udd9e\"}}\nsource: claude-night-market\nsource_plugin: gauntlet\n---\n\n> **Night Market Skill** — ported from [claude-night-market/gauntlet](https://github.com/athola/claude-night-market/tree/master/plugins/gauntlet). For the full experience with agents, hooks, and commands, install the Claude Code plugin.\n\n\n# Gauntlet Curate\n\nSurvey the DSA problem bank, identify coverage gaps, and propose\nnew YAML entries for human review.\n\n## When This Skill Fires\n\nInvoke this skill manually with `Skill(gauntlet:gauntlet-curate)`\nwhen the problem bank needs a coverage review. The skill is intended\nto participate in `/update-plugins` runs but is not yet wired into\nthat command (see openpackage.yml registration). It is distinct from\n`gauntlet:curate`, which handles per-annotation knowledge capture\nand is what `/gauntlet-curate` invokes today.\n\n## Steps\n\n1. **Locate the problem bank** at `plugins/gauntlet/data/problems/`.\n   Read `_manifest.yaml` to load the expected NeetCode counts per\n   category.\n\n2. **Survey current coverage** by counting problems in each YAML\n   file (skipping `_manifest.yaml`).\n   Run the analysis script:\n\n   ```bash\n   cd plugins/gauntlet\n   python scripts/curate_problems.py data/problems/ --output /tmp/gauntlet-curate-report.md\n   ```\n\n3. **Identify gaps**: categories whose actual count falls below\n   the `neetcode_count` in the manifest.\n   The script sorts gaps largest-first so the worst shortfalls\n   appear at the top.\n\n4. **Review existing problems** in each gap category to understand\n   what is already covered before proposing additions.\n\n5. **Propose new YAML entries** following the schema below.\n   Add proposals to the report under \"Proposed New Problems\".\n   Do NOT write proposals directly into `data/problems/*.yaml`.\n\n6. **Validate proposals** by running:\n\n   ```bash\n   python -c \"\n   import yaml, sys\n   sys.path.insert(0, 'src')\n   from gauntlet.models import BankProblem\n   proposals = yaml.safe_load(open('proposals.yaml'))\n   for p in proposals:\n       BankProblem.from_dict(p)\n   print('All proposals valid.')\n   \"\n   ```\n\n7. **Present the report** to the human for review.\n   The report includes the coverage table, gap list, and proposed\n   entries.\n   The human decides which proposals to merge into the YAML files.\n\n## Problem Schema\n\nEach proposed entry must follow this schema:\n\n```yaml\n- id: category-NNN\n  title: Problem Title\n  difficulty: easy       # easy | medium | hard | extra_hard\n  prompt: |\n    Problem statement with constraints and examples.\n  hints:\n    - First hint.\n    - Second hint.\n  solution_outline: |\n    Approach and time/space complexity.\n  tags: [tag1, tag2]\n  neetcode_id: neetcode-NNN\n  challenge_type: explain_why  # explain_why | multiple_choice | trace\n                                # | code_complete | debug | rank\n```\n\nRequired fields: `id`, `title`, `difficulty`, `prompt`.\nOptional fields default to empty values.\n\n## Safety Constraints\n\n- Never modify files under `data/problems/` directly.\n- Never run with a `--write` or `--fix` flag: the script\n  intentionally has none.\n- All output is a proposal report for human approval.\n- Existing hand-curated problems are never touched.\n\n## Output\n\nA markdown report at the path specified by `--output`, containing:\n\n- Coverage summary table (expected vs. actual per category)\n- Gaps list sorted by missing count\n- YAML schema template for new proposals\n- Space for the human reviewer to add proposed entries\n\nHuman review is required before any YAML file changes.\n\nFile v1.9.13:_meta.json\n\n{\n  \"ownerId\": \"kn7d107jg9jv602h9ytsegydq184a42s\",\n  \"slug\": \"nm-gauntlet-gauntlet-curate\",\n  \"version\": \"1.9.13\",\n  \"publishedAt\": 1782577098441\n}\n\nFile v1.9.13:skill-card.md\n\n## Description: <br>\nAudits the DSA problem bank for coverage gaps and proposes new YAML entries. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[athola](https://clawhub.ai/user/athola) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nDevelopers maintaining the Gauntlet DSA problem bank use this skill to audit category coverage against expected counts and prepare human-reviewed YAML problem proposals. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Generated problem proposals may be incomplete or inaccurate. <br>\nMitigation: Review the proposal report and validate entries before merging any YAML changes. <br>\nRisk: The analysis command expects the local Gauntlet problem-bank layout and Python script. <br>\nMitigation: Run the command only in the expected Gauntlet workspace and inspect the report before relying on it. <br>\nRisk: Direct edits to hand-curated problem-bank files could bypass the intended review workflow. <br>\nMitigation: Use the skill output as a proposal report; apply accepted changes manually after human review. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/athola/skills/nm-gauntlet-gauntlet-curate) <br>\n- [Gauntlet plugin homepage](https://github.com/athola/claude-night-market/tree/master/plugins/gauntlet) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [markdown, code, shell commands, guidance] <br>\n**Output Format:** [Markdown report with YAML proposal snippets and shell commands] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Human review is required before any problem-bank changes.] <br>\n\n## Skill Version(s): <br>\n1.9.13 (source: server release evidence; artifact frontmatter lists 1.9.8) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v1.9.12: 3 files, 3166 bytes\n\nFiles: skill-card.md (1723b), SKILL.md (3832b), _meta.json (147b)\n\nFile v1.9.12:SKILL.md\n\n---\nname: gauntlet-curate\ndescription: Audits the DSA problem bank for coverage gaps and proposes new YAML entries\nversion: 1.9.8\ntriggers:\n  - refreshing the problem bank during update-plugins runs\nmetadata: {\"openclaw\": {\"homepage\": \"https://github.com/athola/claude-night-market/tree/master/plugins/gauntlet\", \"emoji\": \"\\ud83e\\udd9e\"}}\nsource: claude-night-market\nsource_plugin: gauntlet\n---\n\n> **Night Market Skill** — ported from [claude-night-market/gauntlet](https://github.com/athola/claude-night-market/tree/master/plugins/gauntlet). For the full experience with agents, hooks, and commands, install the Claude Code plugin.\n\n\n# Gauntlet Curate\n\nSurvey the DSA problem bank, identify coverage gaps, and propose\nnew YAML entries for human review.\n\n## When This Skill Fires\n\nInvoke this skill manually with `Skill(gauntlet:gauntlet-curate)`\nwhen the problem bank needs a coverage review. The skill is intended\nto participate in `/update-plugins` runs but is not yet wired into\nthat command (see openpackage.yml registration). It is distinct from\n`gauntlet:curate`, which handles per-annotation knowledge capture\nand is what `/gauntlet-curate` invokes today.\n\n## Steps\n\n1. **Locate the problem bank** at `plugins/gauntlet/data/problems/`.\n   Read `_manifest.yaml` to load the expected NeetCode counts per\n   category.\n\n2. **Survey current coverage** by counting problems in each YAML\n   file (skipping `_manifest.yaml`).\n   Run the analysis script:\n\n   ```bash\n   cd plugins/gauntlet\n   python scripts/curate_problems.py data/problems/ --output /tmp/gauntlet-curate-report.md\n   ```\n\n3. **Identify gaps**: categories whose actual count falls below\n   the `neetcode_count` in the manifest.\n   The script sorts gaps largest-first so the worst shortfalls\n   appear at the top.\n\n4. **Review existing problems** in each gap category to understand\n   what is already covered before proposing additions.\n\n5. **Propose new YAML entries** following the schema below.\n   Add proposals to the report under \"Proposed New Problems\".\n   Do NOT write proposals directly into `data/problems/*.yaml`.\n\n6. **Validate proposals** by running:\n\n   ```bash\n   python -c \"\n   import yaml, sys\n   sys.path.insert(0, 'src')\n   from gauntlet.models import BankProblem\n   proposals = yaml.safe_load(open('proposals.yaml'))\n   for p in proposals:\n       BankProblem.from_dict(p)\n   print('All proposals valid.')\n   \"\n   ```\n\n7. **Present the report** to the human for review.\n   The report includes the coverage table, gap list, and proposed\n   entries.\n   The human decides which proposals to merge into the YAML files.\n\n## Problem Schema\n\nEach proposed entry must follow this schema:\n\n```yaml\n- id: category-NNN\n  title: Problem Title\n  difficulty: easy       # easy | medium | hard | extra_hard\n  prompt: |\n    Problem statement with constraints and examples.\n  hints:\n    - First hint.\n    - Second hint.\n  solution_outline: |\n    Approach and time/space complexity.\n  tags: [tag1, tag2]\n  neetcode_id: neetcode-NNN\n  challenge_type: explain_why  # explain_why | multiple_choice | trace\n                                # | code_complete | debug | rank\n```\n\nRequired fields: `id`, `title`, `difficulty`, `prompt`.\nOptional fields default to empty values.\n\n## Safety Constraints\n\n- Never modify files under `data/problems/` directly.\n- Never run with a `--write` or `--fix` flag: the script\n  intentionally has none.\n- All output is a proposal report for human approval.\n- Existing hand-curated problems are never touched.\n\n## Output\n\nA markdown report at the path specified by `--output`, containing:\n\n- Coverage summary table (expected vs. actual per category)\n- Gaps list sorted by missing count\n- YAML schema template for new proposals\n- Space for the human reviewer to add proposed entries\n\nHuman review is required before any YAML file changes.\n\nFile v1.9.12:_meta.json\n\n{\n  \"ownerId\": \"kn7d107jg9jv602h9ytsegydq184a42s\",\n  \"slug\": \"nm-gauntlet-gauntlet-curate\",\n  \"version\": \"1.9.12\",\n  \"publishedAt\": 1781838739066\n}\n\nFile v1.9.12:skill-card.md\n\n## Description: <br>\nAudits the DSA problem bank for coverage gaps and proposes new YAML entries. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[athola](https://clawhub.ai/user/athola) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nDevelopers and maintainers use this skill to review a DSA problem bank, identify category coverage gaps, and prepare YAML proposal entries for human review. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Generated proposals may introduce incorrect or misleading problem-bank content if accepted without review. <br>\nMitigation: Review the generated report and proposed YAML entries before merging; the artifact directs agents not to modify problem-bank files directly. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/athola/nm-gauntlet-gauntlet-curate) <br>\n- [Gauntlet plugin homepage](https://github.com/athola/claude-night-market/tree/master/plugins/gauntlet) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [Markdown, YAML, Shell commands, Guidance] <br>\n**Output Format:** [Markdown report with YAML proposal snippets and bash command blocks] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Human review is required before any proposed YAML entries are merged.] <br>\n\n## Skill Version(s): <br>\n1.9.12 (source: server release metadata) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v1.0.0: 3 files, 3228 bytes\n\nFiles: skill-card.md (1923b), SKILL.md (3832b), _meta.json (146b)\n\nFile v1.0.0:SKILL.md\n\n---\nname: gauntlet-curate\ndescription: Audits the DSA problem bank for coverage gaps and proposes new YAML entries\nversion: 1.9.8\ntriggers:\n  - refreshing the problem bank during update-plugins runs\nmetadata: {\"openclaw\": {\"homepage\": \"https://github.com/athola/claude-night-market/tree/master/plugins/gauntlet\", \"emoji\": \"\\ud83e\\udd9e\"}}\nsource: claude-night-market\nsource_plugin: gauntlet\n---\n\n> **Night Market Skill** — ported from [claude-night-market/gauntlet](https://github.com/athola/claude-night-market/tree/master/plugins/gauntlet). For the full experience with agents, hooks, and commands, install the Claude Code plugin.\n\n\n# Gauntlet Curate\n\nSurvey the DSA problem bank, identify coverage gaps, and propose\nnew YAML entries for human review.\n\n## When This Skill Fires\n\nInvoke this skill manually with `Skill(gauntlet:gauntlet-curate)`\nwhen the problem bank needs a coverage review. The skill is intended\nto participate in `/update-plugins` runs but is not yet wired into\nthat command (see openpackage.yml registration). It is distinct from\n`gauntlet:curate`, which handles per-annotation knowledge capture\nand is what `/gauntlet-curate` invokes today.\n\n## Steps\n\n1. **Locate the problem bank** at `plugins/gauntlet/data/problems/`.\n   Read `_manifest.yaml` to load the expected NeetCode counts per\n   category.\n\n2. **Survey current coverage** by counting problems in each YAML\n   file (skipping `_manifest.yaml`).\n   Run the analysis script:\n\n   ```bash\n   cd plugins/gauntlet\n   python scripts/curate_problems.py data/problems/ --output /tmp/gauntlet-curate-report.md\n   ```\n\n3. **Identify gaps**: categories whose actual count falls below\n   the `neetcode_count` in the manifest.\n   The script sorts gaps largest-first so the worst shortfalls\n   appear at the top.\n\n4. **Review existing problems** in each gap category to understand\n   what is already covered before proposing additions.\n\n5. **Propose new YAML entries** following the schema below.\n   Add proposals to the report under \"Proposed New Problems\".\n   Do NOT write proposals directly into `data/problems/*.yaml`.\n\n6. **Validate proposals** by running:\n\n   ```bash\n   python -c \"\n   import yaml, sys\n   sys.path.insert(0, 'src')\n   from gauntlet.models import BankProblem\n   proposals = yaml.safe_load(open('proposals.yaml'))\n   for p in proposals:\n       BankProblem.from_dict(p)\n   print('All proposals valid.')\n   \"\n   ```\n\n7. **Present the report** to the human for review.\n   The report includes the coverage table, gap list, and proposed\n   entries.\n   The human decides which proposals to merge into the YAML files.\n\n## Problem Schema\n\nEach proposed entry must follow this schema:\n\n```yaml\n- id: category-NNN\n  title: Problem Title\n  difficulty: easy       # easy | medium | hard | extra_hard\n  prompt: |\n    Problem statement with constraints and examples.\n  hints:\n    - First hint.\n    - Second hint.\n  solution_outline: |\n    Approach and time/space complexity.\n  tags: [tag1, tag2]\n  neetcode_id: neetcode-NNN\n  challenge_type: explain_why  # explain_why | multiple_choice | trace\n                                # | code_complete | debug | rank\n```\n\nRequired fields: `id`, `title`, `difficulty`, `prompt`.\nOptional fields default to empty values.\n\n## Safety Constraints\n\n- Never modify files under `data/problems/` directly.\n- Never run with a `--write` or `--fix` flag: the script\n  intentionally has none.\n- All output is a proposal report for human approval.\n- Existing hand-curated problems are never touched.\n\n## Output\n\nA markdown report at the path specified by `--output`, containing:\n\n- Coverage summary table (expected vs. actual per category)\n- Gaps list sorted by missing count\n- YAML schema template for new proposals\n- Space for the human reviewer to add proposed entries\n\nHuman review is required before any YAML file changes.\n\nFile v1.0.0:_meta.json\n\n{\n  \"ownerId\": \"kn7d107jg9jv602h9ytsegydq184a42s\",\n  \"slug\": \"nm-gauntlet-gauntlet-curate\",\n  \"version\": \"1.0.0\",\n  \"publishedAt\": 1781791650171\n}\n\nFile v1.0.0:skill-card.md\n\n## Description: <br>\nAudits the DSA problem bank for coverage gaps and proposes new YAML entries. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[athola](https://clawhub.ai/user/athola) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nDevelopers and maintainers use this skill to review a DSA problem bank, identify categories below expected NeetCode coverage, and prepare proposed YAML problem entries for human approval. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Proposed problem entries or coverage conclusions could be incorrect or misleading. <br>\nMitigation: Review the generated report and proposed YAML entries before accepting any changes. <br>\nRisk: Problem bank files could be changed without sufficient approval if recommendations are applied directly. <br>\nMitigation: Keep the skill's output as a proposal report and require human approval before modifying data files. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/athola/nm-gauntlet-gauntlet-curate) <br>\n- [Gauntlet plugin homepage](https://github.com/athola/claude-night-market/tree/master/plugins/gauntlet) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [markdown, yaml, shell commands, guidance] <br>\n**Output Format:** [Markdown report with YAML proposal entries and inline shell commands] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Human review is required before proposed entries are merged into problem bank files.] <br>\n\n## Skill Version(s): <br>\n1.0.0 (source: ClawHub release evidence) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>","readmeExcerpt":"Skill: gauntlet-curate Owner: athola Summary: Audits the DSA problem bank for coverage gaps and proposes new YAML entries Tags: latest:1.9.19 Version history: v1.9.19 | 2026-08-26T13:11:34.195Z | user Release v1.9.19 v1.9.17 | 2026-07-30T05:33:29.603Z | user Release v1.9.17 v1.9.16 | 2026-07-14T19:50:15.052Z | user Release v1.9.16 v1.9.14 | 2026-06-30T17:59:30.771Z | user Release v1.9.14 v1.9.13 | 2026-06-27T16:18:18","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"cd plugins/gauntlet\n   python scripts/curate_problems.py data/problems/ --output /tmp/gauntlet-curate-report.md"},{"language":"bash","snippet":"python -c \"\n   import yaml, sys\n   sys.path.insert(0, 'src')\n   from gauntlet.models import BankProblem\n   proposals = yaml.safe_load(open('proposals.yaml'))\n   for p in proposals:\n       BankProblem.from_dict(p)\n   print('All proposals valid.')\n   \""},{"language":"yaml","snippet":"- id: category-NNN\n  title: Problem Title\n  difficulty: easy       # easy | medium | hard | extra_hard\n  prompt: |\n    Problem statement with constraints and examples.\n  hints:\n    - First hint.\n    - Second hint.\n  solution_outline: |\n    Approach and time/space complexity.\n  tags: [tag1, tag2]\n  neetcode_id: neetcode-NNN\n  challenge_type: explain_why  # explain_why | multiple_choice | trace\n                                # | code_complete | debug | rank"},{"language":"bash","snippet":"cd plugins/gauntlet\n   python scripts/curate_problems.py data/problems/ --output /tmp/gauntlet-curate-report.md"},{"language":"bash","snippet":"python -c \"\n   import yaml, sys\n   sys.path.insert(0, 'src')\n   from gauntlet.models import BankProblem\n   proposals = yaml.safe_load(open('proposals.yaml'))\n   for p in proposals:\n       BankProblem.from_dict(p)\n   print('All proposals valid.')\n   \""},{"language":"yaml","snippet":"- id: category-NNN\n  title: Problem Title\n  difficulty: easy       # easy | medium | hard | extra_hard\n  prompt: |\n    Problem statement with constraints and examples.\n  hints:\n    - First hint.\n    - Second hint.\n  solution_outline: |\n    Approach and time/space complexity.\n  tags: [tag1, tag2]\n  neetcode_id: neetcode-NNN\n  challenge_type: explain_why  # explain_why | multiple_choice | trace\n                                # | code_complete | debug | rank"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: gauntlet-curate\ndescription: Audits the DSA problem bank for coverage gaps and proposes new YAML entries\nversion: 1.9.8\ntriggers:\n  - refreshing the problem bank during update-plugins runs\nmetadata: {\"openclaw\": {\"homepage\": \"https://github.com/athola/claude-night-market/tree/master/plugins/gauntlet\", \"emoji\": \"\\ud83e\\udd9e\"}}\nsource: claude-night-market\nsource_plugin: gauntlet\n---\n\n> **Night Market Skill** — ported from [claude-night-market/gauntlet](https://github.com/athola/claude-night-market/tree/master/plugins/gauntlet). For the full experience with agents, hooks, and commands, install the Claude Code plugin.\n\n\n# Gauntlet Curate\n\nSurvey the DSA problem bank, identify coverage gaps, and propose\nnew YAML entries for human review.\n\n## When This Skill Fires\n\nInvoke this skill manually with `Skill(gauntlet:gauntlet-curate)`\nwhen the problem bank needs a coverage review. The skill is intended\nto participate in `/update-plugins` runs but is not yet wired into\nthat command (see openpackage.yml registration). It is distinct from\n`gauntlet:curate`, which handles per-annotation knowledge capture\nand is what `/gauntlet-curate` invokes today.\n\n## Steps\n\n1. **Locate the problem bank** at `plugins/gauntlet/data/problems/`.\n   Read `_manifest.yaml` to load the expected NeetCode counts per\n   category.\n\n2. **Survey current coverage** by counting problems in each YAML\n   file (skipping `_manifest.yaml`).\n   Run the analysis script:\n\n   ```bash\n   cd plugins/gauntlet\n   python scripts/curate_problems.py data/problems/ --output /tmp/gauntlet-curate-report.md\n   ```\n\n3. **Identify gaps**: categories whose actual count falls below\n   the `neetcode_count` in the manifest.\n   The script sorts gaps largest-first so the worst shortfalls\n   appear at the top.\n\n4. **Review existing problems** in each gap category to understand\n   what is already covered before proposing additions.\n\n5. **Propose new YAML entries** following the schema below.\n   Add proposals to the report under \"Proposed New Problems\".\n   Do NOT write proposals directly into `data/problems/*.yaml`.\n\n6. **Validate proposals** by running:\n\n   ```bash\n   python -c \"\n   import yaml, sys\n   sys.path.insert(0, 'src')\n   from gauntlet.models import BankProblem\n   proposals = yaml.safe_load(open('proposals.yaml'))\n   for p in proposals:\n       BankProblem.from_dict(p)\n   print('All proposals valid.')\n   \"\n   ```\n\n7. **Present the report** to the human for review.\n   The report includes the coverage table, gap list, and proposed\n   entries.\n   The human decides which proposals to merge into the YAML files.\n\n## Problem Schema\n\nEach proposed entry must follow this schema:\n\n```yaml\n- id: category-NNN\n  title: Problem Title\n  difficulty: easy       # easy | medium | hard | extra_hard\n  prompt: |\n    Problem statement with constraints and examples.\n  hints:\n    - First hint.\n    - Second hint.\n  solution_outline: |\n    Approach and time/space complexity.\n  tags: [tag1, tag2]\n  neetcode_id: neetcode-NNN\n  c"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn7d107jg9jv602h9ytsegydq184a42s\",\n  \"slug\": \"nm-gauntlet-gauntlet-curate\",\n  \"version\": \"1.9.19\",\n  \"publishedAt\": 1787749894195\n}"},{"path":"skill-card.md","content":"## Description:\n\nAudits the DSA problem bank for coverage gaps and proposes new YAML entries.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[athola](https://clawhub.ai/user/athola)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers maintaining the Gauntlet DSA problem bank use this skill to audit category coverage against manifest counts and prepare proposed YAML problem entries for human review.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Proposed problem entries could be inaccurate, incomplete, or misaligned with the existing problem bank.\n\nMitigation: Keep the generated report in review mode and require a human to approve any YAML additions before merging.\n\nRisk: The workflow assumes the Gauntlet plugin layout and supporting scripts are present.\n\nMitigation: Confirm the expected plugin directory, problem manifest, and curation script before running the workflow.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/athola/skills/nm-gauntlet-gauntlet-curate)\n- [Gauntlet plugin homepage](https://github.com/athola/claude-night-market/tree/master/plugins/gauntlet)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, shell commands, configuration, guidance]\n\n**Output Format:** [Markdown report with YAML proposal examples and inline shell commands]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Human approval is required before proposed problem entries are merged into the problem bank.]\n\n## Skill Version(s):\n\n1.9.19 (source: server release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment."}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"Audits the DSA problem bank for coverage gaps and proposes new YAML entries Skill: gauntlet-curate Owner: athola Summary: Audits the DSA problem bank for coverage gaps and proposes new YAML entries Tags: latest:1.9.19 Version history: v1.9.19 | 2026-08-26T13:11:34.195Z | user Release v1.9.19 v1.9.17 | 2026-07-30T05:33:29.603Z | user Release v1.9.17 v1.9.16 | 2026-07-14T19:50:15.052Z | user Release v1.9.16 v1.9.14 | 2026-06-30T17:59:30.771Z | user Release v1.9.14 v1.9.13 | 2026-06-27T16:18:18","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":1066,"uniquenessScore":51,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-11T21:11:23.339Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-11T21:11:23.339Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-13T06:42:28.885Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}