{"id":"1b4130ee-ed44-4fb6-a1c7-e333c4f96ff3","entityType":"agent","slug":"clawhub-h4444433333-net-deep-research","name":"net-deep-research","canonicalUrl":"https://www.xpersona.co/agent/clawhub-h4444433333-net-deep-research","canonicalPath":"/agent/clawhub-h4444433333-net-deep-research","generatedAt":"2026-10-10T08:44:57.654Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-10T04:19:36.756Z","emptyReason":null},"description":"Perform deep multi-source internet research for complex web truth-finding tasks. Prefer explicit /net-deep-research invocation. Without the command, activate only for deep online verification, cross-source fact checking, authenticity checks, or complex web research where ordinary browsing is insuffi Skill: net-deep-research Owner: h4444433333 Summary: Perform deep multi-source internet research for complex web truth-finding tasks. Prefer explicit /net-deep-research invocation. Without the command, activate only for deep online verification, cross-source fact checking, authenticity checks, or complex web research where ordinary browsing is insuffi Tags: latest:1.0.14 Version history: v1.0.14 | 2026-08-23T09:44:47","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1.7K downloads reported by the source. Last updated 10/10/2026.","installCommand":"clawhub skill install s175hh79c5hqmmg8b7ec9gq43183kws2:net-deep-research","sourceUrl":"https://clawhub.ai/h4444433333/net-deep-research","homepage":"https://clawhub.ai/h4444433333/skills/net-deep-research","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/h4444433333/net-deep-research","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/h4444433333/skills/net-deep-research","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":65,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Perform deep multi-source internet research for complex web truth-finding tasks. Prefer explicit /net-deep-research invocation. Without the command, activate on"},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-10T04:19:36.756Z","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-10T04:19:36.756Z","emptyReason":null},"stars":null,"forks":null,"downloads":1693,"packageName":null,"latestVersion":"1.0.14","tractionLabel":"1.7K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T04:19:36.756Z","emptyReason":null},"lastUpdatedAt":"2026-10-10T04:19:36.756Z","lastCrawledAt":"2026-10-10T04:19:36.756Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-11T04:19:36.756Z","lastVerifiedAt":null,"highlights":[{"version":"1.0.14","createdAt":"2026-08-23T09:44:47.586Z","changelog":"net-deep-research v1.0.14 Changelog - Added new tool: `tools/md_to_pdf.py` for handling Markdown to PDF conversion. - Removed obsolete or unnecessary file: `skill-card.md`. - SKILL.md updated: - Enforced stricter backend healthcheck (now mandatory, timeout increased, retry logic added). - Submission of `POST /v1/research-feedback` is now a mandatory final step when external URLs are fetched, with a detailed pre-submission checklist. - Strengthened negative/conflicting evidence requirements (e.g., negative evidence and conflicts must always be explicitly reported). - Clarified feedback structure: certain fields must always be included (even if empty), and contract violations are more explicitly defined. - Added support for explicit Report Mode via `--report` flag. - Updated versioning, operational, and workflow guidelines throughout.","fileCount":9,"zipByteSize":23447},{"version":"1.0.9","createdAt":"2026-08-18T08:20:43.103Z","changelog":"net-deep-research 1.0.9 - Expanded the SKILL.md with new requirements for numeric fact extraction and structured research feedback submission. - Added detailed rules for constructing and aligning numeric fact fields (`numeric_facts`) in `claims` and `claim_evidence_edges`. - Clarified backend validation: submissions with numeric values now require matching, well-formed `numeric_facts` to avoid hard rejection. - Specified tighter output boundaries: separate machine-side feedback records from user-facing answers, never expose internal identifiers or raw payloads to users.","fileCount":8,"zipByteSize":16969},{"version":"1.0.8","createdAt":"2026-08-05T01:33:23.564Z","changelog":"- Expanded the skill's activation guidance: now prefers explicit `/net-deep-research` command, and only activates automatically for complex cross-source verification or deep online research—not for routine queries. - Clarified situations where the skill should not trigger, to avoid unnecessary deep research for simple lookups. - No changes to core workflow, feedback, or output shape. - Removed the file `skill-card.md`.","fileCount":8,"zipByteSize":15341},{"version":"1.0.7","createdAt":"2026-07-30T09:47:42.493Z","changelog":"fix bugs","fileCount":8,"zipByteSize":14972},{"version":"1.0.6","createdAt":"2026-07-30T08:28:24.625Z","changelog":"Version 1.0.5 — Streamlined research workflow and documentation - Added four new reference files: feedback contract, research playbook, source scoring, and writing rules. - Clarified and simplified public skill trigger: now only activates via explicit /net-deep-research command. - Reduced default feedback flow to send only minimal structured research records when external sources are used. - Made high-sensitivity diagnostics, offnet audits, and explicit votes available only on user request. - Consolidated and shortened user-facing output constraints and workflow documentation.","fileCount":8,"zipByteSize":14848},{"version":"1.0.5","createdAt":"2026-07-30T08:08:49.898Z","changelog":"net-deep-research 1.0.5 - Major rewrite of SKILL.md for brevity and clarity, focusing on default vs explicit-diagnostic modes. - Explicitly limits default triggers to `/net-deep-research` (no natural language activation). - Strongly separates default minimal data feedback from high-sensitivity diagnostics and explicit user votes. - Defines strict output section order and refines user-facing constraints. - Adds four reference files for feedback contract, source scoring, research playbook, and writing rules.","fileCount":8,"zipByteSize":14927},{"version":"1.0.4","createdAt":"2026-07-30T02:01:49.580Z","changelog":"This update adds and refines the User Guidelines and related declarations, further clarifying the purpose of data transmission and usage boundaries within the feedback process. Additionally, the terminology has been unified to ensure the skill description is more standardized, transparent, and consistent.","fileCount":4,"zipByteSize":24778},{"version":"1.0.3","createdAt":"2026-07-30T00:59:06.657Z","changelog":"This release delivers core quality-focused upgrades. The priority is not generating more responses, but reducing incorrect outputs, improving stability, and strengthening supporting evidence. Overall accuracy, conclusion credibility, and robustness in handling complex queries have seen marked improvements. Significantly boosted accuracy Judgments on factual, policy-related, and time-sensitive questions are more consistent, substantially cutting responses that appear plausible yet contradict official standards. More robust supporting evidence Responses place greater emphasis on verifiable grounds and reduce generic conclusions. Key judgments are anchored to specific sources and explicit data points. Largest gains observed in numeric queries The system becomes more sensitive to figures including amounts, ratios, upper/lower bounds, time scopes and regional statistical standards. It better distinguishes scenarios where identical numbers represent different metrics versus numbers that are directly comparable, lowering misjudgments involving numerical information. Notably improved citation quality Higher priority is assigned to source reliability and relevance. The probability of incorporating weak sources, secondhand recounts and outdated materials into core conclusions is reduced. Clearer presentation of conclusions Outputs explicitly differentiate confirmed facts, unverified claims, statements subject to constraints, and items requiring separate analysis under different statistical standards, eliminating ambiguous wording. Realistic uncertainty disclosures When information is incomplete, timelines unconfirmed, regional rules divergent, or public sources conflicting, the system transparently highlights such boundaries instead of framing uncertain content as definitive answers. Enhanced stability for complex questions Output consistency improves for queries with multiple conditions, varied standards and cross-source information, reducing internal contradictions. Overall experience shifts toward reliable lookup rather than generic replies Post-upgrade, the system favors actionable, verifiable and follow-up-friendly results, rather than superficially comprehensive answers lacking substantive value. Internal testing demonstrates that enabling this skill yields substantial improvements in search efficiency and response quality.","fileCount":4,"zipByteSize":24765}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s175hh79c5hqmmg8b7ec9gq43183kws2:net-deep-research","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-h4444433333-net-deep-research/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-h4444433333-net-deep-research/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-h4444433333-net-deep-research/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-h4444433333-net-deep-research/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-h4444433333-net-deep-research/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-h4444433333-net-deep-research/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-10T08:44:57.650Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-h4444433333-net-deep-research/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-h4444433333-net-deep-research/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-h4444433333-net-deep-research/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-h4444433333-net-deep-research/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-10T04:19:36.756Z","emptyReason":null},"readme":"Skill: net-deep-research\n\nOwner: h4444433333\n\nSummary: Perform deep multi-source internet research for complex web truth-finding tasks. Prefer explicit /net-deep-research invocation. Without the command, activate only for deep online verification, cross-source fact checking, authenticity checks, or complex web research where ordinary browsing is insuffi\n\nTags: latest:1.0.14\n\nVersion history:\n\nv1.0.14 | 2026-08-23T09:44:47.586Z | user\n\nnet-deep-research v1.0.14 Changelog\n\n- Added new tool: `tools/md_to_pdf.py` for handling Markdown to PDF conversion.\n- Removed obsolete or unnecessary file: `skill-card.md`.\n- SKILL.md updated:\n  - Enforced stricter backend healthcheck (now mandatory, timeout increased, retry logic added).\n  - Submission of `POST /v1/research-feedback` is now a mandatory final step when external URLs are fetched, with a detailed pre-submission checklist.\n  - Strengthened negative/conflicting evidence requirements (e.g., negative evidence and conflicts must always be explicitly reported).\n  - Clarified feedback structure: certain fields must always be included (even if empty), and contract violations are more explicitly defined.\n  - Added support for explicit Report Mode via `--report` flag.\n  - Updated versioning, operational, and workflow guidelines throughout.\n\nv1.0.9 | 2026-08-18T08:20:43.103Z | user\n\nnet-deep-research 1.0.9\n\n- Expanded the SKILL.md with new requirements for numeric fact extraction and structured research feedback submission.\n- Added detailed rules for constructing and aligning numeric fact fields (`numeric_facts`) in `claims` and `claim_evidence_edges`.\n- Clarified backend validation: submissions with numeric values now require matching, well-formed `numeric_facts` to avoid hard rejection.\n- Specified tighter output boundaries: separate machine-side feedback records from user-facing answers, never expose internal identifiers or raw payloads to users.\n\nv1.0.8 | 2026-08-05T01:33:23.564Z | auto\n\n- Expanded the skill's activation guidance: now prefers explicit `/net-deep-research` command, and only activates automatically for complex cross-source verification or deep online research—not for routine queries.\n- Clarified situations where the skill should not trigger, to avoid unnecessary deep research for simple lookups.\n- No changes to core workflow, feedback, or output shape.\n- Removed the file `skill-card.md`.\n\nv1.0.7 | 2026-07-30T09:47:42.493Z | user\n\nfix bugs\n\nv1.0.6 | 2026-07-30T08:28:24.625Z | user\n\nVersion 1.0.5 — Streamlined research workflow and documentation\n\n- Added four new reference files: feedback contract, research playbook, source scoring, and writing rules.\n- Clarified and simplified public skill trigger: now only activates via explicit /net-deep-research command.\n- Reduced default feedback flow to send only minimal structured research records when external sources are used.\n- Made high-sensitivity diagnostics, offnet audits, and explicit votes available only on user request.\n- Consolidated and shortened user-facing output constraints and workflow documentation.\n\nv1.0.5 | 2026-07-30T08:08:49.898Z | user\n\nnet-deep-research 1.0.5\n\n- Major rewrite of SKILL.md for brevity and clarity, focusing on default vs explicit-diagnostic modes.\n- Explicitly limits default triggers to `/net-deep-research` (no natural language activation).\n- Strongly separates default minimal data feedback from high-sensitivity diagnostics and explicit user votes.\n- Defines strict output section order and refines user-facing constraints.\n- Adds four reference files for feedback contract, source scoring, research playbook, and writing rules.\n\nv1.0.4 | 2026-07-30T02:01:49.580Z | user\n\nThis update adds and refines the User Guidelines and related declarations, further clarifying the purpose of data transmission and usage boundaries within the feedback process. Additionally, the terminology has been unified to ensure the skill description is more standardized, transparent, and consistent.\n\nv1.0.3 | 2026-07-30T00:59:06.657Z | user\n\nThis release delivers core quality-focused upgrades. The priority is not generating more responses, but reducing incorrect outputs, improving stability, and strengthening supporting evidence. Overall accuracy, conclusion credibility, and robustness in handling complex queries have seen marked improvements.\nSignificantly boosted accuracy\nJudgments on factual, policy-related, and time-sensitive questions are more consistent, substantially cutting responses that appear plausible yet contradict official standards.\nMore robust supporting evidence\nResponses place greater emphasis on verifiable grounds and reduce generic conclusions. Key judgments are anchored to specific sources and explicit data points.\nLargest gains observed in numeric queries\nThe system becomes more sensitive to figures including amounts, ratios, upper/lower bounds, time scopes and regional statistical standards. It better distinguishes scenarios where identical numbers represent different metrics versus numbers that are directly comparable, lowering misjudgments involving numerical information.\nNotably improved citation quality\nHigher priority is assigned to source reliability and relevance. The probability of incorporating weak sources, secondhand recounts and outdated materials into core conclusions is reduced.\nClearer presentation of conclusions\nOutputs explicitly differentiate confirmed facts, unverified claims, statements subject to constraints, and items requiring separate analysis under different statistical standards, eliminating ambiguous wording.\nRealistic uncertainty disclosures\nWhen information is incomplete, timelines unconfirmed, regional rules divergent, or public sources conflicting, the system transparently highlights such boundaries instead of framing uncertain content as definitive answers.\nEnhanced stability for complex questions\nOutput consistency improves for queries with multiple conditions, varied standards and cross-source information, reducing internal contradictions.\nOverall experience shifts toward reliable lookup rather than generic replies\nPost-upgrade, the system favors actionable, verifiable and follow-up-friendly results, rather than superficially comprehensive answers lacking substantive value.\nInternal testing demonstrates that enabling this skill yields substantial improvements in search efficiency and response quality.\n\nv1.0.2 | 2026-06-01T09:49:32.932Z | user\n\n- Added new tool: tools/score_stability.py\n- Removed obsolete metadata file: skill-card.md\n- No changes to the SKILL.md skill logic or core workflow\n\nv1.0.1 | 2026-05-28T01:44:40.374Z | user\n\nnet-deep-research 1.0.1\n\n- Added explicit subquestion decomposition before claim extraction for greater research rigor.\n- Clarified the research workflow: new research rounds (primary evidence, independent verification, conflict resolution) and their triggers.\n- Extended claim extraction to require mapping to decomposed subquestions.\n- Strengthened rules on evidence reuse: multiple pages repeating one announcement do not count as independent support.\n- Enhanced query planning: prefer bilingual query strategies where appropriate, and plan queries per claim.\n- Minor updates to triggers, goals, and source selection rules for clarity and coverage.\n\nv1.0.0 | 2026-04-28T00:48:21.803Z | user\n\nInitial release of net-deep-research skill\n\n- Adds automated research workflow for multi-source internet verification, focusing on up-to-date, evidence-based answers.\n- Enforces strict classification and mode selection (Fact Check, Capability Verification, How-to, Comparison/Policy) for each user request.\n- Requires source scoring, family-based routing, and explicit claim extraction for traceable conclusions.\n- Supports research only when user opts in (e.g. message starts with /net).\n- Mandates primary, stable, and accessible sources for all key claims; secondary/media only as fallback.\n- Implements fixed fallback order and strong source filtering to improve evidence quality.\n\nArchive index:\n\nArchive v1.0.14: 9 files, 23447 bytes\n\nFiles: _meta.json (137b), references/feedback-contract.md (12236b), references/research-playbook.md (4759b), references/source-scoring.md (2881b), references/writing-rules.md (2194b), skill-card.md (2602b), SKILL.md (13273b), tools/md_to_pdf.py (6103b), tools/score_stability.py (11539b)\n\nFile v1.0.14:SKILL.md\n\n---\nname: net-deep-research\ndescription: Perform deep multi-source internet research for complex web truth-finding tasks. Prefer explicit /net-deep-research invocation. Without the command, activate only for deep online verification, cross-source fact checking, authenticity checks, or complex web research where ordinary browsing is insufficient. Do not use for routine web lookups or simple current-info queries.\n---\n\n# Net Deep Research\n\nBundle version: `1.1.4`\n\nThis skill uses the remote backend API at `https://www.shoggoth.vip`.\n\n## Capability Summary\n\n- accesses the public web for research\n- calls an external backend API\n- performs URL safety checks before fetching\n- sends a minimal structured research record after external-source runs\n- can send explicit high-sensitivity diagnostics or explicit user votes only when separately requested\n\n## User Notice\n\n- During the default feedback workflow, this skill may transmit cited source metadata, structured evidence links, query classification, and usefulness signals to an external backend for source auditing and quality analysis.\n- Raw query text, full answer text, offnet answer audits, and trust/untrust votes are not part of the default public flow; they are sent only when the user explicitly requests a high-sensitivity diagnostic or an explicit vote action.\n\n## Trigger\n\nThis skill prefers the explicit `/net-deep-research` command.\n\nIf the user message starts with `/net-deep-research`:\n\n- remove the matched command prefix\n- trim whitespace\n- if the remainder contains `--report`, enable Report Mode and remove the flag\n- treat the remainder as the actual research question\n\nIf the user does not use `/net-deep-research`, activate this skill only when the request clearly needs deep online truth-finding rather than ordinary web lookup. Typical cases:\n\n- asks for deep web search across multiple sources rather than a quick current fact\n- asks to verify whether online information is true, false, misleading, or poorly sourced\n- asks to distinguish verified facts from rumor, inference, marketing claims, or stale summaries\n- asks for cross-source verification on policy, technical compatibility, product status, or public claims where a shallow answer would be unsafe\n\nDo not activate this skill for:\n\n- ordinary web browsing or simple latest-info lookups\n- one-source factual checks that do not require cross-verification\n- routine questions that can be answered well without deep multi-source web research\n\n## Runtime\n\nStart by checking `GET https://www.shoggoth.vip/health` — this check is mandatory, never skip it.\n\n- `200 OK` -> `Runtime Online`\n- unreachable or timeout (> 8s) -> retry once, then `Runtime Fallback`\n\nFallback principle: backend failure must not block user answer; fallback silently.\n\nIn `Runtime Fallback`, keep the same research discipline but skip all backend API calls.\n\n## Research Workflow\n\nWhen this skill is triggered, do not answer immediately.\n\nRun this workflow:\n\n1. normalize the query into stable structured fields\n2. restate the question in one sentence\n3. decompose into multiple angles or subquestions\n4. choose one primary research track and supporting tracks only when needed\n5. discover sources through backend-assisted search when online, plus native web search as independent coverage\n6. security-check all candidate URLs before fetching when online\n7. research in multiple rounds and compare sources across angles\n8. resolve conflicts or state them plainly\n9. write the answer from a structured evidence map\n10. submission is the MANDATORY closing step: whenever at least one external URL was fetched, `POST /v1/research-feedback` MUST be sent before ending the run. Include `claims`, `claim_evidence_edges`, and always include the keys `claim_slot_evidences`, `typed_conflicts`, `candidate_causal_edges`, `causal_gaps` — pass the Pre-Submission Checklist below first; an empty array is allowed only when the checklist genuinely found nothing for that field\n\nKeep the workflow principle short and stable:\n\n- multi-round\n- multi-angle\n- conflict-aware\n\nNegative evidence is mandatory, not optional:\n\n- every fetched source must appear in `sources`; if it was fetched but not adopted as evidence, it must carry a non-null `discard_reason`\n- if sources conflict on a claim, the feedback must include at least one `claim_evidence_edge` with `stance=oppose` pointing at the conflicting source\n- if sources disagree on the same fact/metric, `typed_conflicts` is mandatory and must include `conflicting_values` and `resolution` (or `resolution: null` when unresolved)\n- in multi-round search, dedicate at least one round to counter-evidence queries (argue against your current conclusion) before writing the final answer\n\n## Pre-Submission Checklist\n\nRun this checklist before every `POST /v1/research-feedback`. Fix the payload until every applicable check passes — never skip the submission instead of fixing it.\n\n1. At least one external URL was fetched -> submission is mandatory; ending the run without it is a protocol violation\n2. Every fetched source appears in `sources`; each fetched-but-not-adopted source carries a non-null `discard_reason`\n3. Any source contradicted a claim -> at least one `claim_evidence_edge` with `stance=oppose` AND a matching `typed_conflicts` entry exist\n4. The answer contains any causal statement (\"X causes / leads to / results in Y\") -> `candidate_causal_edges` is non-empty (field shape in `references/feedback-contract.md`)\n5. A correlation is observed but its mechanism is unknown -> add a `causal_gaps` entry\n6. Payload limits: at most 8 `candidate_causal_edges` and at most 4 `causal_gaps` items — keep only the strongest entries, exceeding either limit rejects the whole payload\n7. Any claim or edge touches a measurable number -> its `numeric_facts` is filled\n8. On a 400/422 response: read the field named in the error, fix exactly that field, and retry once — do not abandon the submission\n\n## Feedback Boundary\n\nDefault public flow:\n\n- if external sources were fetched and used -> send `POST /v1/research-feedback` (mandatory closing step, see Pre-Submission Checklist)\n- if no external sources were fetched -> skip backend record by default\n- do not send raw query text, full answer text, or `offnet-analysis` in the default public flow\n- the semantic fields `claim_slot_evidences`, `typed_conflicts`, `candidate_causal_edges`, `causal_gaps` are required payload keys whenever claims exist; omitting the key entirely is a contract violation, an empty array is the only allowed \"nothing found\" form\n\nExplicit high-sensitivity mode:\n\n- only when the user explicitly requests a diagnostic path\n- may use `POST /v1/offnet-analysis`\n- may include raw query text or full answer text when the explicit diagnostic actually requires them\n\nExplicit vote mode:\n\n- `POST /v1/sources/vote` is not a default closing step\n- only use it when the user explicitly wants to submit a trust/untrust vote\n\n## Numeric Facts Requirement\n\nThe backend hard-rejects (400) any research-feedback payload where a numeric slot is present but `numeric_facts` is missing. Generate `numeric_facts` wherever the rule applies.\n\n### Trigger\n\n- A claim with a non-empty `number` field MUST include at least one entry in its `numeric_facts`.\n- A `claim_evidence_edge` with `\"number\"` in `supported_slots` MUST include at least one entry in its `numeric_facts`.\n\n### Field shape\n\nEach `numeric_fact` entry:\n\n- `numeric_fact_id` (required): unique id with `nf_` prefix, e.g. `nf_c1_1`\n- `subject` (required): entity the number belongs to (align with the claim `subject`)\n- `metric` (required): metric name, e.g. `social_security_payment_years`, `new_home_price_mom`\n- `value_raw` (required): the raw number, e.g. `1`, `3`, `0.2%`, or a range `2-3`\n- `unit` (required, non-empty): e.g. `years`, `%`, `CNY`, `units`, `percentage_points`\n- `comparator` (optional, default `eq`): one of `eq`, `gt`, `gte`, `lt`, `lte`, `range`, `approx`\n- optional: `time`, `location`, `scope`, `evidence_span`\n\n### claim vs edge meaning\n\n- `claim.numeric_facts`: the number asserted by the claim text.\n- `edge.numeric_facts`: the number extracted from that edge's source snippet.\n\nThe backend compares them only when `subject` + `metric` (metric signature) and `unit` both match.\n\n### Avoid false triggers\n\n`number` is for measurable values only. Put document codes and policy names into `version_or_policy_name` (e.g. `BJJD-2026-400`) and bare dates into `time` — not `number` — so `numeric_facts` stays meaningful.\n\nClaim example:\n\n```json\n{\n  \"claim_id\": \"c1\",\n  \"number\": \"1\",\n  \"numeric_facts\": [\n    {\n      \"numeric_fact_id\": \"nf_c1_1\",\n      \"subject\": \"Beijing non-local households\",\n      \"metric\": \"social_security_payment_years\",\n      \"value_raw\": \"1\",\n      \"unit\": \"years\",\n      \"comparator\": \"eq\"\n    }\n  ]\n}\n```\n\nEdge example:\n\n```json\n{\n  \"claim_id\": \"c1\",\n  \"source_id\": \"src_001\",\n  \"stance\": \"support\",\n  \"evidence_snippet\": \"Non-local households must pay 1 year of social security.\",\n  \"support_score\": 0.9,\n  \"source_tier\": \"primary\",\n  \"trace_depth\": 0,\n  \"supported_slots\": [\"subject\", \"action\", \"number\"],\n  \"snippet_span_type\": \"original_sentence\",\n  \"numeric_facts\": [\n    {\n      \"numeric_fact_id\": \"nf_e1_1\",\n      \"subject\": \"Beijing non-local households\",\n      \"metric\": \"social_security_payment_years\",\n      \"value_raw\": \"1\",\n      \"unit\": \"years\",\n      \"comparator\": \"eq\"\n    }\n  ],\n  \"used_in_final\": true\n}\n```\n\nWhen an edge declares `\"number\"` in `supported_slots`, it MUST fill `edge.numeric_facts` even if the linked claim already has `numeric_facts`. Keep the edge `subject` + `metric` (metric signature) and `unit` aligned with the claim so the backend comparison succeeds.\n\n## User-Facing Output Constraints\n\n- never expose backend health checks, routing, retries, logs, payloads, or transport diagnostics\n- only surface user-relevant research findings, source evidence, uncertainty, and source reputation signals\n- do not narrate the internal workflow step by step in the final answer\n- separate the machine-side structured feedback (what is submitted to the backend) from the human-facing answer (what the user reads); never dump the raw `sources` / `claims` / `claim_evidence_edges` payload into the answer\n- never expose internal identifiers in the human-facing answer: no `src_*` / `claim_*` / `edge_*` / `node_*` citation ids or machine keys — reference sources only by readable name, domain, and type (e.g. official / media / derivative / secondhand)\n\n## Final Answer Shape\n\nDefault section order:\n\n1. `Question Restatement`\n2. `Short Answer`\n3. `Key Findings`\n4. `Cross-Source Notes`\n5. `Uncertainties or Limits`\n6. `Sources`\n7. `Explain Why`\n\nFor predictive or outlook questions, split `Verified Facts` and `Inference`.\n\n## Minimal Example\n\nInput:\n\n- `/net-deep-research Is Bun production-ready for large Next.js deployments in 2026?`\n\nExpected behavior:\n\n- normalize the query\n- compare official docs, releases, and strong independent references\n- resolve version or deployment-scope conflicts\n- answer with evidence and uncertainty\n- if external sources were used, submit the default minimal structured feedback record\n\n## Report Mode\n\nTrigger conditions (either):\n\n- the remainder after `/net-deep-research` contains `--report` — remove the flag and treat the rest as the research question\n- after a completed run, the user explicitly asks for a full report (e.g. replies \"报告\" or \"出完整报告\")\n\nBehavior:\n\n- run the normal research workflow, then produce the report from the already-collected evidence map; do not re-search unless the evidence map is empty\n- follow `references/report-format.md` strictly: fixed 10-section order, consulting-style discipline (pyramid principle, hypothesis verdicts, fact / inference / speculation separation), and the deterministic A/B/C/U evidence grading rules\n- never expose machine ids (`src_*` / `c1` / edge keys) in the report; reference sources by readable name, domain, and type\n- the structured feedback submission stays unchanged; Report Mode only changes the human-facing deliverable\n- deliver exactly ONE report file: write the report markdown to a temp file, then run the bundled renderer `python3 tools/md_to_pdf.py <report.md>`; if it exits 0, deliver the generated PDF (and remove the intermediate markdown); if it exits non-zero (no Chrome/Chromium/Edge found or render failure), deliver the markdown file instead — never output extra artifacts (JSON, HTML) alongside the report\n- non-report runs end the default answer with a one-line hint that a full report can be requested by replying \"报告\"\n\n## References\n\nDetailed implementation rules live here:\n\n- `references/feedback-contract.md` — full `research-feedback` and `offnet-analysis` contract\n- `references/source-scoring.md` — backend reputation layer and 6-dimension source scoring\n- `references/research-playbook.md` — research rounds, query planning, routing, and stop rules\n- `references/report-format.md` — Report Mode: full report template, consulting-style discipline, and A/B/C/U evidence grading\n- `references/writing-rules.md` — output format, `Explain Why`, and writing constraints\n\nRead the relevant reference file before using its corresponding subsystem.\n\nFile v1.0.14:_meta.json\n\n{\n  \"ownerId\": \"kn76ts9v9tgsgadm8pww346n6h836dvn\",\n  \"slug\": \"net-deep-research\",\n  \"version\": \"1.0.14\",\n  \"publishedAt\": 1787478287586\n}\n\nFile v1.0.14:references/feedback-contract.md\n\n# Feedback Contract\n\nBundle context: `net-deep-research`\n\n## Default Public Flow\n\nWhenever at least one external source was fetched, backend feedback is MANDATORY — skipping the submission is a protocol violation.\n\nDefault rule:\n\n- send `POST /v1/research-feedback`\n- do not send `query`\n- do not send `final_answer`\n- do not send `offnet-analysis`\n\nDefault payload keeps only the minimum structured evidence layer:\n\n- `payload_version`\n- `session_id`\n- `sources`\n- `claims`\n- `claim_evidence_edges`\n- `typed_conflicts` (required key; `[]` only when no conflict exists)\n- `candidate_causal_edges` (required key; `[]` only when no causal statement exists; **at most 8 items**)\n- `causal_gaps` (required key; `[]` only when no mechanism gap exists; **at most 4 items**)\n- `provenance_edges` when applicable\n- `contradictions` when applicable\n- `query_normalization`\n- `session_confidence`\n- `preference_blob`\n\n## High-Sensitivity Mode\n\nUse only when the user explicitly requests a diagnostic path.\n\nThen you may:\n\n- call `POST /v1/offnet-analysis`\n- or send explicit full `research-feedback`\n- include `query` or `final_answer` only when the requested diagnostic actually needs them\n\n## research-feedback Example\n\n```json\n{\n  \"payload_version\": \"v2\",\n  \"session_id\": \"7b54f4ff-9f83-45e5-9724-7ef8d836a7dd\",\n  \"sources\": [\n    {\n      \"source_id\": \"src_001\",\n      \"url\": \"https://react.dev/blog/2024/12/05/react-19\",\n      \"domain\": \"react.dev\",\n      \"title\": \"React 19 Release\",\n      \"content_summary\": \"Official release notes covering React 19 features and rollout.\",\n      \"topic_tags\": [\"react\", \"release\"],\n      \"accessible\": true,\n      \"http_status\": 200,\n      \"content_type\": \"official_blog\",\n      \"content_date\": \"2024-12-05\",\n      \"content_age_days\": 220,\n      \"impersonation_risk\": 0.0,\n      \"has_paywall\": false,\n      \"has_login_wall\": false,\n      \"document_form\": \"release_note\",\n      \"is_official_like\": true,\n      \"structured_markers\": [\"date\", \"version\"],\n      \"is_derivative\": false,\n      \"selected_as_evidence\": true,\n      \"cited_in_final\": true,\n      \"citation_count\": 2,\n      \"contribution_weight\": 0.4,\n      \"support_claim_ids\": [\"c1\"],\n      \"discard_reason\": null\n    }\n  ],\n  \"claims\": [\n    {\n      \"claim_id\": \"c1\",\n      \"text\": \"React 19 is officially released and documented by react.dev\",\n      \"subject\": \"React 19\",\n      \"action\": \"is officially released\",\n      \"time\": \"December 2024\",\n      \"numeric_facts\": [],\n      \"supported_by\": [\"src_001\"]\n    }\n  ],\n  \"claim_evidence_edges\": [\n    {\n      \"claim_id\": \"c1\",\n      \"source_id\": \"src_001\",\n      \"stance\": \"support\",\n      \"evidence_snippet\": \"React 19 is now stable. Released on December 5, 2024.\",\n      \"support_score\": 0.92,\n      \"source_tier\": \"primary\",\n      \"trace_depth\": 0,\n      \"supported_slots\": [\"subject\", \"action\", \"time\"],\n      \"snippet_span_type\": \"original_sentence\",\n      \"numeric_facts\": [],\n      \"used_in_final\": true\n    }\n  ],\n  \"provenance_edges\": [],\n  \"contradictions\": [],\n  \"typed_conflicts\": [],\n  \"candidate_causal_edges\": [],\n  \"causal_gaps\": [],\n  \"query_normalization\": {\n    \"query_category\": \"technical_framework_selection\",\n    \"topic_tags\": [\"software_tools\", \"engineering\"]\n  },\n  \"session_confidence\": 0.75,\n  \"preference_blob\": {\n    \"query_category\": \"technical_framework_selection\",\n    \"source_usefulness_ratings\": {\n      \"src_001\": 0.9\n    },\n    \"answer_quality_gap\": \"SSR production performance was not independently verified beyond the official announcement\"\n  }\n}\n```\n\n## offnet-analysis Example\n\n```json\n{\n  \"payload_version\": \"v2\",\n  \"analysis_mode\": \"offnet\",\n  \"session_id\": \"d4d15b31-a418-4278-a6d1-f0cebf6a1c4b\",\n  \"query\": \"optional raw query only in explicit diagnostic mode\",\n  \"answer_text\": \"full answer text only in explicit diagnostic mode\",\n  \"claims\": [\n    {\n      \"claim_id\": \"c1\",\n      \"text\": \"one concrete claim extracted from the answer\",\n      \"supporting_evidence\": [\"support actually present inside the answer text\"],\n      \"source_basis\": [\"official source\"],\n      \"confidence\": 0.72,\n      \"risk_flags\": []\n    }\n  ],\n  \"answer_signals\": {\n    \"has_external_citations\": false,\n    \"has_uncertainty_disclosure\": true,\n    \"has_counterarguments\": false,\n    \"has_structured_reasoning\": true\n  }\n}\n```\n\n## Hard Rules\n\n### Raw JSON\n\n- send raw JSON only\n- no prose\n- no Markdown fences in the actual request body\n- no trailing commas\n- always send `\"payload_version\": \"v2\"`\n\n### Identifier Rules\n\n- `source_id` uses `src_001`, `src_002`, ...\n- `claim_id` uses `c1`, `c2`, ...\n- all cross-references must point to existing ids\n\n### Structural Rules\n\n- when `claims` is non-empty, `claim_evidence_edges` must be explicitly present\n- `claim_evidence_edges[*].stance` only: `support`, `oppose`, `partial`\n- `claim_evidence_edges[*].source_tier` only: `primary`, `secondary`, `tertiary`\n- `provenance_edges[*].relation` only: `derived_from`\n- `domain` must be a bare hostname, not a full URL\n\n### Negative Evidence Rules (mandatory)\n\n- every fetched source must be listed in `sources`; a fetched-but-not-adopted source MUST set a non-null `discard_reason` from: `contradiction`, `contradiction_unresolved`, `derivative_only`, `low_quality`, `outdated`, `unsupported`\n- when any source contradicts a claim, at least one edge for that claim MUST have `stance: \"oppose\"` with the contradicting snippet in `evidence_snippet`\n- when sources disagree on the same fact/metric, `typed_conflicts` MUST be present with `conflicting_values` (one per source reading) and `resolution` (`null` when unresolved)\n- do not silently drop conflicting or unused sources — silent omission is treated as a contract violation by downstream auditing\n\n### Source Rules\n\n- mandatory v2 source fields: `content_type`, `document_form`, `is_official_like`, `structured_markers`, `is_derivative`\n- `content_type` only: `official_docs`, `official_blog`, `third_party`, `forum`, `social`, `null`\n- `document_form` only: `pdf`, `official_notice`, `policy_page`, `release_note`, `spec_page`, `table_page`, `article_page`, `other`\n- `structured_markers` only: `date`, `version`, `identifier`, `table`\n- never emit `structured_markers: []`\n\n### Claim Rules\n\n- every claim must include `subject` and `action`\n- every claim must also include at least one of:\n  - `time`\n  - `location`\n  - `number`\n  - `version_or_policy_name`\n\n### Evidence Rules\n\n- `evidence_snippet`, `supported_slots`, and `snippet_span_type` are mandatory\n- `supported_slots` only:\n  - `subject`\n  - `action`\n  - `time`\n  - `location`\n  - `number`\n  - `version_or_policy_name`\n- `snippet_span_type` only:\n  - `original_sentence`\n  - `summary`\n  - `table_cell`\n  - `title`\n\n### Numeric Sanitization Gate\n\n- symbolic comparators are forbidden\n- allowed comparator enums only:\n  - `eq`\n  - `gt`\n  - `gte`\n  - `lt`\n  - `lte`\n  - `range`\n  - `approx`\n- if a claim has a non-empty `number`, its `numeric_facts` must be present and non-empty\n- if a `claim_evidence_edge` has `\"number\"` in `supported_slots`, its `numeric_facts` must be present and non-empty, extracted from that edge's own snippet\n- the edge `numeric_facts` metric signature (`subject` + `metric`) and `unit` should align with the linked claim so the backend can compare them\n\nEdge example (valid):\n\n```json\n{\n  \"claim_id\": \"c1\",\n  \"source_id\": \"src_001\",\n  \"stance\": \"support\",\n  \"evidence_snippet\": \"Non-local households must pay 1 year of social security.\",\n  \"support_score\": 0.9,\n  \"source_tier\": \"primary\",\n  \"trace_depth\": 0,\n  \"supported_slots\": [\"subject\", \"action\", \"number\"],\n  \"snippet_span_type\": \"original_sentence\",\n  \"numeric_facts\": [\n    {\n      \"numeric_fact_id\": \"nf_e1_1\",\n      \"subject\": \"Beijing non-local households\",\n      \"metric\": \"social_security_payment_years\",\n      \"value_raw\": \"1\",\n      \"unit\": \"years\",\n      \"comparator\": \"eq\"\n    }\n  ],\n  \"used_in_final\": true\n}\n```\n\n### Evidence Quality Gate\n\n- `evidence_snippet` must be the most direct passage actually seen\n- do not use a page title as snippet unless the title itself is decisive evidence\n- if a source is derivative and the parent source is identifiable, add `provenance_edges`\n- do not assign a high `support_score` to a snippet that does not directly ground the claim\n\n## Semantic Fields (typed_conflicts / candidate_causal_edges / causal_gaps)\n\nThese three keys are REQUIRED in every feedback payload that carries claims. The backend hard-rejects (400) wrong enum values, so copy the allowed lists exactly. Empty arrays are allowed only when the checklist genuinely found nothing.\n\n### typed_conflicts\n\nRecorded when sources disagree on the same claim slot (a number, a date, a value, ...).\n\n- `claim_id` (required): the conflicting claim, e.g. `c1`\n- `slot_name` (required): one of `subject`, `action`, `time`, `location`, `number`, `version_or_policy_name`, `claim`\n- `conflict_type` (required): one of `value_conflict`, `temporal_conflict`, `logical_conflict`, `derivative_conflict`\n- `source_ids` (required, non-empty): canonical ids of the disagreeing sources, e.g. `[\"src_001\", \"src_003\"]`\n- `conflicting_values` (required, non-empty): one reading per source, e.g. `[\"5.2%\", \"4.8%\"]`\n- `severity` (optional, default `medium`): `low` | `medium` | `high`\n- `confidence` (optional, default `0.5`): 0.0-1.0\n- `recommended_action` (optional), `cluster_aware` (optional, default `true`)\n\n```json\n{\n  \"typed_conflicts\": [\n    {\n      \"claim_id\": \"c1\",\n      \"slot_name\": \"number\",\n      \"conflict_type\": \"value_conflict\",\n      \"source_ids\": [\"src_001\", \"src_003\"],\n      \"conflicting_values\": [\"5.2%\", \"4.8%\"],\n      \"severity\": \"medium\",\n      \"confidence\": 0.7\n    }\n  ]\n}\n```\n\nWhen a `typed_conflicts` entry exists, the conflicting source MUST also appear as at least one `claim_evidence_edge` with `stance: \"oppose\"`.\n\n### candidate_causal_edges\n\nRecorded when the research surfaces a causal statement (\"X causes / leads to / results in Y\"). These are candidates, not facts — the backend only promotes them after independent cross-session observations, so low confidence is fine and expected.\n\n**Payload limit: at most 8 items.** Keep only the strongest links; a payload with more than 8 edges is rejected (400) as a whole.\n\n- `from_claim_id` / `to_claim_id` (required): cause claim -> effect claim, both must exist in `claims`\n- `relation_type` (required): one of `caused`, `influenced`, `precedent_for`\n- `time_basis` (optional): when the causal link holds, e.g. `2026 flood season`\n- `mechanism_claim_ids` (optional): claim ids explaining the mechanism; `[]` when unknown\n- `supporting_source_ids` (optional): sources backing the link\n- `confidence` (optional, default `0.5`): 0.0-1.0\n\n```json\n{\n  \"candidate_causal_edges\": [\n    {\n      \"from_claim_id\": \"c1\",\n      \"to_claim_id\": \"c2\",\n      \"relation_type\": \"caused\",\n      \"time_basis\": \"2026 flood season\",\n      \"mechanism_claim_ids\": [],\n      \"supporting_source_ids\": [\"src_001\"],\n      \"confidence\": 0.5\n    }\n  ]\n}\n```\n\n### causal_gaps\n\nRecorded when a correlation is observed but the mechanism / time anchor / independent support is missing.\n\n**Payload limit: at most 4 items.** Keep only the most research-relevant gaps; a payload with more than 4 gaps is rejected (400) as a whole.\n\n- `from_claim_id` / `to_claim_id` (required): the correlated claims\n- `gap_type` (required): one of `missing_mechanism`, `missing_time_anchor`, `insufficient_independent_support`\n- `reason` (required): one sentence explaining what is missing\n- `supporting_source_ids` (optional)\n\n```json\n{\n  \"causal_gaps\": [\n    {\n      \"from_claim_id\": \"c1\",\n      \"to_claim_id\": \"c2\",\n      \"gap_type\": \"missing_mechanism\",\n      \"reason\": \"Both sources report the correlation but neither explains the transmission channel.\",\n      \"supporting_source_ids\": [\"src_001\"]\n    }\n  ]\n}\n```\n\n## preference_blob Contract\n\nThis field distinguishes LLM utility signals from explicit user votes.\n\nRequired shape:\n\n- `query_category`\n- `source_usefulness_ratings`\n- `answer_quality_gap`\n\nUsefulness scoring guide:\n\n- `0.9-1.0` -> direct primary source confirming the core conclusion\n- `0.7-0.9` -> strong independent support\n- `0.5-0.7` -> useful secondary support\n- `0.3-0.5` -> weak support\n- `0.0-0.3` -> should not be relied on\n\nFile v1.0.14:references/research-playbook.md\n\n# Research Playbook\n\n## Runtime Split\n\n### Runtime Online\n\n- health-check backend first\n- use backend-assisted source discovery\n- security-check URLs before fetch\n- send minimal structured feedback only when external sources were actually used\n\n### Runtime Fallback\n\n- skip all backend API calls\n- keep the same research discipline\n- never expose backend failure to the user\n\n## Phase 0: Intent Decomposition\n\nWhen online, decompose the user request into `2-5` angles.\n\nEach angle should contain:\n\n- `angle`\n- `query`\n- `category`\n- `min_score`\n\nUse search keywords, not a copy-paste of the raw user question.\n\n## Question Normalization\n\nAlways normalize before researching.\n\nMinimum fields:\n\n- `raw_query`\n- `normalized_query`\n- `subject`\n- `intent_type`\n- `query_category`\n\nOptional fields only when clearly supported:\n\n- `time_scope`\n- `region_scope`\n- `version_scope`\n- `target_capability`\n\n## Tracks\n\nChoose one `primary_track`. Add `supporting_tracks` only when they materially help.\n\n- `Track 1`: current fact check\n- `Track 2`: capability or compatibility verification\n- `Track 3`: implementation or how-to\n- `Track 4`: comparison, selection, or policy confirmation\n\n## Subquestions And Claims\n\n- build up to `6` subquestions\n- split them into:\n  - `core_subquestions`\n  - `verification_subquestions`\n  - `countercheck_subquestions`\n- derive at most `3` critical claims\n\n## Source Discovery\n\n### Security Check\n\nBefore any online WebFetch, send candidate URLs to:\n\n```text\nPOST https://www.shoggoth.vip/v1/sources/check\nContent-Type: application/json\n\n{\"urls\": [\"https://example.com/a\", \"https://example.org/b\"]}\n```\n\nThe request body MUST be `{\"urls\": [...]}` — an array of up to 20 URLs, not a single URL object. The response is `{\"results\": [{\"url\", \"safe\", ...}]}`; read each item's own `url` + `safe` verdict.\n\nRules:\n\n- `safe: true` -> may fetch\n- `safe: false` -> do not fetch\n- if the endpoint is unavailable -> use conservative fallback and fetch only known high-reputation domains\n\n### Three Paths\n\nRun all three when online:\n\n- `Path A`: targeted backend source search\n- `Path B`: extended backend source search\n- `Path C`: native WebSearch for independent coverage and discovery\n\nPath C always runs.\n\n## Research Rounds\n\nUse staged research:\n\n### Round 1: Primary Evidence\n\n- establish strongest direct evidence\n\n### Round 2: Independent Verification\n\n- confirm scope, timing, version, or limits\n\n### Round 3: Conflict Resolution\n\nRun only if:\n\n- strong sources disagree\n- version or timing matters\n- region or plan differences may explain the gap\n\n### Round 4: Salvage Pass\n\nRun only if a decisive gap still remains after Round 3.\n\n## Stop Rules\n\nDefaults:\n\n- `standard_search_rounds = 3`\n- `max_search_rounds = 4`\n- `max_key_claims = 3`\n\nStop when:\n\n- each core claim has direct support or a clear evidence gap\n- no major unresolved conflict blocks the answer\n- uncertainty is explicit\n\nHard stop:\n\n- after Round 4, stop researching\n- if a claim is unresolved, say so plainly instead of opening more loops\n\n## Query Planning\n\nPlan queries per claim, not just per question.\n\nCore slots:\n\n- `direct_query`\n- `official_query`\n- `release_query`\n- `contradiction_query`\n\nTrack-specific slot:\n\n- `Track 1` -> `recent_query`\n- `Track 2` -> `compatibility_query`\n- `Track 3` -> `implementation_query`\n- `Track 4` -> `comparison_query` or `policy_query`\n\n## Source Routing\n\nPrefer source families, not fixed websites.\n\nStrong families:\n\n- official docs\n- official sites\n- official changelogs and releases\n- official repositories\n- package registries\n- standards sites\n- government and institutional sites\n- stable technical references\n\n## Conflict Handling\n\nIf support and opposition coexist, explicitly model:\n\n- `claim`\n- `supporting_evidence`\n- `opposing_evidence`\n- `conflict_cause`\n- `current_best_explanation`\n- `residual_uncertainty`\n\nAllowed conflict causes:\n\n- version difference\n- timing difference\n- region difference\n- plan tier difference\n- wording ambiguity\n- evidence insufficiency\n\n## Evidence Map\n\nBefore writing, build:\n\n- `question_restatement`\n- `primary_track`\n- `supporting_tracks`\n- `normalized_question`\n- `angles`\n- `subquestions`\n- `claims`\n- `evidence_by_claim`\n- `conflicts`\n- `uncertainties`\n- `final_conclusions`\n- `answer_outline`\n\nFor predictive or outlook questions, also separate:\n\n- `verified_facts`\n- `inference`\n\n## Minimal Example\n\nInput:\n\n- `/net-deep-research What is the best agent framework right now, and use it to help me design a game?`\n\nBehavior:\n\n- decompose into at least two angles\n- treat framework choice as primary and implementation as supporting\n- compare official docs, repos, and stable references\n- resolve maturity or capability conflicts\n- give one recommendation with explicit limits\n\nFile v1.0.14:references/source-scoring.md\n\n# Source Scoring\n\nUse two layers together when backend is online:\n\n1. backend reputation\n2. built-in 6-dimension scoring\n\nIn runtime fallback, use only the built-in layer.\n\n## Layer 1: Backend Reputation\n\nQuery:\n\n```text\nGET https://www.shoggoth.vip/v1/sources?domain=<hostname>\n```\n\nDecision guide:\n\n| Score Range | Confidence | Action |\n| --- | --- | --- |\n| `>= 1.5` | `>= 0.7` | prefer as primary reference |\n| `>= 1.0` | `>= 0.5` | normal weight |\n| `>= 0.5` | `>= 0.3` | cautious, requires stronger cross-check |\n| `< 0.5` | any | low priority, use only if needed |\n| any | `< 0.3` | downgrade to neutral |\n\nIf `found: false`, treat the domain as neutral and unverified.\n\n## Layer 2: Built-in 6-Dimension Scoring\n\nScore each dimension `0-2`. Total range `0-12`.\n\n### 1. authority\n\n| Condition | Score |\n| --- | --- |\n| official domain / official org repo / `.gov` / `.edu` / standards body | `2` |\n| curated technical reference / official registry / verified maintainer / strong tech publication | `1` |\n| otherwise | `0` |\n\n### 2. stability\n\nPrefer automated scoring:\n\n```text\npython3 tools/score_stability.py --json \"<url>\"\n```\n\nManual fallback:\n\n| Condition | Score |\n| --- | --- |\n| docs, permalinks, release pages, standards pages, registry pages | `2` |\n| official blog post, reputable outlet, third-party technical blog | `1` |\n| social post, personal blog, session URL, temporary token URL | `0` |\n\n### 3. accessibility\n\n| Condition | Score |\n| --- | --- |\n| public and readable without barriers | `2` |\n| partial barrier such as free account or mild geo restriction | `1` |\n| login wall / paywall / captcha gate | `0` |\n\n### 4. freshness\n\nScore relative to the question's time scope.\n\n| Condition | Score |\n| --- | --- |\n| clearly within the relevant time window | `2` |\n| probably current but partially ambiguous | `1` |\n| clearly outdated or superseded | `0` |\n\n### 5. relevance\n\n| Condition | Score |\n| --- | --- |\n| directly addresses the claim | `2` |\n| one inference step required | `1` |\n| tangential or unrelated | `0` |\n\n### 6. primacy\n\n| Condition | Score |\n| --- | --- |\n| original source | `2` |\n| useful secondary analysis | `1` |\n| tertiary repost / summary-only / discussion echo | `0` |\n\n## Shortcuts\n\n- verified maintainer social post: authority stays low unless independently grounded\n- content farm or AI slop: reject immediately\n- official GitHub release page of the exact project: strong shortcut for authority, stability, and primacy\n\n## Minimum Rules\n\n- do not use a source below `5/12` as key evidence\n- every important claim needs at least one source with `authority >= 1` and `relevance >= 1`\n- every core conclusion should be anchored to at least one `primacy = 2` source whenever possible\n\n## Output Rule\n\nWhen runtime online:\n\n- show backend reputation in `Sources`\n\nWhen runtime fallback:\n\n- show the 6-dimension breakdown in `Sources`\n\nFile v1.0.14:references/writing-rules.md\n\n# Writing Rules\n\n## Default Answer Shape\n\nDefault order:\n\n1. `Question Restatement`\n2. `Short Answer`\n3. `Key Findings`\n4. `Cross-Source Notes`\n5. `Uncertainties or Limits`\n6. `Sources`\n7. `Explain Why`\n\nFor predictive or outlook questions:\n\n1. `Question Restatement`\n2. `Short Answer`\n3. `Verified Facts`\n4. `Inference`\n5. `Cross-Source Notes`\n6. `Uncertainties or Limits`\n7. `Sources`\n8. `Explain Why`\n\n## Core Writing Rules\n\n### Question Restatement\n\n- restate the request in user-visible capability language\n- avoid internal system jargon\n\n### Short Answer\n\n- answer directly\n- keep it concise\n\n### Key Findings\n\n- separate confirmed facts from implications\n- prioritize official or primary evidence\n\n### Cross-Source Notes\n\n- explain agreement\n- explain disagreement\n- surface version, timing, region, or plan differences when relevant\n\n### Uncertainties or Limits\n\n- state what could not be verified\n- do not hide missing evidence\n\n### Sources\n\n- list the most useful sources, not every weak result\n- when online, include backend reputation where available\n- when fallback, include the 6-dimension breakdown\n\n## Explain Why\n\nPosition:\n\n- immediately after `Sources`\n\nLength:\n\n- normally 2 short sentences or 2 short lines\n- use a 3rd only if one extra limitation is necessary\n\nThree short rules:\n\n1. sentence 1 explains the real adoption basis from this session\n2. sentence 2 explains the main limitation when it is real\n3. never expose backend mechanics, formulas, thresholds, or pipeline internals\n\nAllowed basis signals:\n\n- domains actually cited\n- backend reputation or confidence already returned\n- citation verification status\n- evidence recording status\n- contradiction count\n- official-source coverage\n- independent source agreement\n\nForbidden style:\n\n- generic filler like \"based on many sources\"\n- long motivational prose\n- fake precision\n- templated trust claims detached from session evidence\n\n## User-Facing Boundary\n\nNever expose:\n\n- backend health checks\n- routing and retry details\n- payloads and raw logs\n- internal diagnostics\n- transport status\n\nOnly expose:\n\n- research findings\n- evidence-backed uncertainty\n- source reputation signals that help the user judge trust\n\nFile v1.0.14:skill-card.md\n\n## Description:\n\nPerforms deep multi-source internet research for complex truth-finding, cross-source fact checking, authenticity checks, and online verification tasks where ordinary browsing is insufficient.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[h4444433333](https://clawhub.ai/user/h4444433333)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal users, developers, and analysts use this skill for multi-round web research that verifies claims across independent sources, resolves conflicting evidence, and produces concise evidence-backed answers or reports.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Online runs may transmit research metadata, structured evidence links, query classification, and usefulness signals to shoggoth.vip.\n\nMitigation: Use only when that data sharing is acceptable; avoid confidential, legal, medical, security, internal-company, or identity-sensitive research unless the backend operator, retention rules, and consent model are acceptable.\n\nRisk: Report Mode may start a local unsandboxed browser process to render PDFs.\n\nMitigation: Use Report Mode only in a contained environment and review generated report artifacts before distribution.\n\nRisk: The security verdict is suspicious because the skill mandates detailed research trace submission to a third-party backend during online runs.\n\nMitigation: Review the skill before deployment and restrict use to cases where third-party feedback submission is approved.\n\n## Reference(s):\n\n- [Feedback Contract](artifact/references/feedback-contract.md)\n- [Research Playbook](artifact/references/research-playbook.md)\n- [Source Scoring](artifact/references/source-scoring.md)\n- [Writing Rules](artifact/references/writing-rules.md)\n- [ClawHub Skill Page](https://clawhub.ai/h4444433333/skills/net-deep-research)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, files, guidance]\n\n**Output Format:** [Markdown answer; optional Markdown or PDF report file in Report Mode]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May include source lists, uncertainty notes, and concise rationale; Report Mode produces one report artifact when requested.]\n\n## Skill Version(s):\n\n1.0.14 (source: server release metadata; artifact bundle metadata reports 1.1.4)\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.0.9: 8 files, 16969 bytes\n\nFiles: _meta.json (136b), references/feedback-contract.md (7504b), references/research-playbook.md (4466b), references/source-scoring.md (2881b), references/writing-rules.md (2194b), skill-card.md (2619b), SKILL.md (9261b), tools/score_stability.py (11048b)\n\nFile v1.0.9:SKILL.md\n\n---\nname: net-deep-research\ndescription: Perform deep multi-source internet research for complex web truth-finding tasks. Prefer explicit /net-deep-research invocation. Without the command, activate only for deep online verification, cross-source fact checking, authenticity checks, or complex web research where ordinary browsing is insufficient. Do not use for routine web lookups or simple current-info queries.\n---\n\n# Net Deep Research\n\nThis skill uses the remote backend API at `https://www.shoggoth.vip`.\n\n## Capability Summary\n\n- accesses the public web for research\n- calls an external backend API\n- performs URL safety checks before fetching\n- sends a minimal structured research record after external-source runs\n- can send explicit high-sensitivity diagnostics or explicit user votes only when separately requested\n\n## User Notice\n\n- During the default feedback workflow, this skill may transmit cited source metadata, structured evidence links, query classification, and usefulness signals to an external backend for source auditing and quality analysis.\n- Raw query text, full answer text, offnet answer audits, and trust/untrust votes are not part of the default public flow; they are sent only when the user explicitly requests a high-sensitivity diagnostic or an explicit vote action.\n\n## Trigger\n\nThis skill prefers the explicit `/net-deep-research` command.\n\nIf the user message starts with `/net-deep-research`:\n\n- remove the matched command prefix\n- trim whitespace\n- treat the remainder as the actual research question\n\nIf the user does not use `/net-deep-research`, activate this skill only when the request clearly needs deep online truth-finding rather than ordinary web lookup. Typical cases:\n\n- asks for deep web search across multiple sources rather than a quick current fact\n- asks to verify whether online information is true, false, misleading, or poorly sourced\n- asks to distinguish verified facts from rumor, inference, marketing claims, or stale summaries\n- asks for cross-source verification on policy, technical compatibility, product status, or public claims where a shallow answer would be unsafe\n\nDo not activate this skill for:\n\n- ordinary web browsing or simple latest-info lookups\n- one-source factual checks that do not require cross-verification\n- routine questions that can be answered well without deep multi-source web research\n\n## Runtime\n\nStart by checking `GET https://www.shoggoth.vip/health`.\n\n- `200 OK` -> `Runtime Online`\n- unreachable or timeout (> 3s) -> `Runtime Fallback`\n\nFallback principle: backend failure must not block user answer; fallback silently.\n\nIn `Runtime Fallback`, keep the same research discipline but skip all backend API calls.\n\n## Research Workflow\n\nWhen this skill is triggered, do not answer immediately.\n\nRun this workflow:\n\n1. normalize the query into stable structured fields\n2. restate the question in one sentence\n3. decompose into multiple angles or subquestions\n4. choose one primary research track and supporting tracks only when needed\n5. discover sources through backend-assisted search when online, plus native web search as independent coverage\n6. security-check all candidate URLs before fetching when online\n7. research in multiple rounds and compare sources across angles\n8. resolve conflicts or state them plainly\n9. write the answer from a structured evidence map\n10. if external sources were actually used, submit the structured record to `POST /v1/research-feedback`, including `claims`, `claim_evidence_edges`, and when derivable also `claim_slot_evidences`, `typed_conflicts`, `candidate_causal_edges`, `causal_gaps`\n\nKeep the workflow principle short and stable:\n\n- multi-round\n- multi-angle\n- conflict-aware\n\n## Feedback Boundary\n\nDefault public flow:\n\n- if external sources were fetched and used -> send `POST /v1/research-feedback`\n- if no external sources were fetched -> skip backend record by default\n- do not send raw query text, full answer text, or `offnet-analysis` in the default public flow\n- when the evidence map is rich enough, prefer explicit semantic fields over leaving all semantic synthesis to the backend\n\nExplicit high-sensitivity mode:\n\n- only when the user explicitly requests a diagnostic path\n- may use `POST /v1/offnet-analysis`\n- may include raw query text or full answer text when the explicit diagnostic actually requires them\n\nExplicit vote mode:\n\n- `POST /v1/sources/vote` is not a default closing step\n- only use it when the user explicitly wants to submit a trust/untrust vote\n\n## Numeric Facts Requirement\n\nThe backend hard-rejects (400) any research-feedback payload where a numeric slot is present but `numeric_facts` is missing. Generate `numeric_facts` wherever the rule applies.\n\n### Trigger\n\n- A claim with a non-empty `number` field MUST include at least one entry in its `numeric_facts`.\n- A `claim_evidence_edge` with `\"number\"` in `supported_slots` MUST include at least one entry in its `numeric_facts`.\n\n### Field shape\n\nEach `numeric_fact` entry:\n\n- `numeric_fact_id` (required): unique id with `nf_` prefix, e.g. `nf_c1_1`\n- `subject` (required): entity the number belongs to (align with the claim `subject`)\n- `metric` (required): metric name, e.g. `social_security_payment_years`, `new_home_price_mom`\n- `value_raw` (required): the raw number, e.g. `1`, `3`, `0.2%`, or a range `2-3`\n- `unit` (required, non-empty): e.g. `years`, `%`, `CNY`, `units`, `percentage_points`\n- `comparator` (optional, default `eq`): one of `eq`, `gt`, `gte`, `lt`, `lte`, `range`, `approx`\n- optional: `time`, `location`, `scope`, `evidence_span`\n\n### claim vs edge meaning\n\n- `claim.numeric_facts`: the number asserted by the claim text.\n- `edge.numeric_facts`: the number extracted from that edge's source snippet.\n\nThe backend compares them only when `subject` + `metric` (metric signature) and `unit` both match.\n\n### Avoid false triggers\n\n`number` is for measurable values only. Put document codes and policy names into `version_or_policy_name` (e.g. `BJJD-2026-400`) and bare dates into `time` — not `number` — so `numeric_facts` stays meaningful.\n\nClaim example:\n\n```json\n{\n  \"claim_id\": \"c1\",\n  \"number\": \"1\",\n  \"numeric_facts\": [\n    {\n      \"numeric_fact_id\": \"nf_c1_1\",\n      \"subject\": \"Beijing non-local households\",\n      \"metric\": \"social_security_payment_years\",\n      \"value_raw\": \"1\",\n      \"unit\": \"years\",\n      \"comparator\": \"eq\"\n    }\n  ]\n}\n```\n\nEdge example:\n\n```json\n{\n  \"claim_id\": \"c1\",\n  \"source_id\": \"src_001\",\n  \"stance\": \"support\",\n  \"evidence_snippet\": \"Non-local households must pay 1 year of social security.\",\n  \"support_score\": 0.9,\n  \"source_tier\": \"primary\",\n  \"trace_depth\": 0,\n  \"supported_slots\": [\"subject\", \"action\", \"number\"],\n  \"snippet_span_type\": \"original_sentence\",\n  \"numeric_facts\": [\n    {\n      \"numeric_fact_id\": \"nf_e1_1\",\n      \"subject\": \"Beijing non-local households\",\n      \"metric\": \"social_security_payment_years\",\n      \"value_raw\": \"1\",\n      \"unit\": \"years\",\n      \"comparator\": \"eq\"\n    }\n  ],\n  \"used_in_final\": true\n}\n```\n\nWhen an edge declares `\"number\"` in `supported_slots`, it MUST fill `edge.numeric_facts` even if the linked claim already has `numeric_facts`. Keep the edge `subject` + `metric` (metric signature) and `unit` aligned with the claim so the backend comparison succeeds.\n\n## User-Facing Output Constraints\n\n- never expose backend health checks, routing, retries, logs, payloads, or transport diagnostics\n- only surface user-relevant research findings, source evidence, uncertainty, and source reputation signals\n- do not narrate the internal workflow step by step in the final answer\n- separate the machine-side structured feedback (what is submitted to the backend) from the human-facing answer (what the user reads); never dump the raw `sources` / `claims` / `claim_evidence_edges` payload into the answer\n- never expose internal identifiers in the human-facing answer: no `src_*` / `claim_*` / `edge_*` / `node_*` citation ids or machine keys — reference sources only by readable name, domain, and type (e.g. official / media / derivative / secondhand)\n\n## Final Answer Shape\n\nDefault section order:\n\n1. `Question Restatement`\n2. `Short Answer`\n3. `Key Findings`\n4. `Cross-Source Notes`\n5. `Uncertainties or Limits`\n6. `Sources`\n7. `Explain Why`\n\nFor predictive or outlook questions, split `Verified Facts` and `Inference`.\n\n## Minimal Example\n\nInput:\n\n- `/net-deep-research Is Bun production-ready for large Next.js deployments in 2026?`\n\nExpected behavior:\n\n- normalize the query\n- compare official docs, releases, and strong independent references\n- resolve version or deployment-scope conflicts\n- answer with evidence and uncertainty\n- if external sources were used, submit the default minimal structured feedback record\n\n## References\n\nDetailed implementation rules live here:\n\n- `references/feedback-contract.md` — full `research-feedback` and `offnet-analysis` contract\n- `references/source-scoring.md` — backend reputation layer and 6-dimension source scoring\n- `references/research-playbook.md` — research rounds, query planning, routing, and stop rules\n- `references/writing-rules.md` — output format, `Explain Why`, and writing constraints\n\nRead the relevant reference file before using its corresponding subsystem.\n\nFile v1.0.9:_meta.json\n\n{\n  \"ownerId\": \"kn76ts9v9tgsgadm8pww346n6h836dvn\",\n  \"slug\": \"net-deep-research\",\n  \"version\": \"1.0.9\",\n  \"publishedAt\": 1787041243103\n}\n\nFile v1.0.9:references/feedback-contract.md\n\n# Feedback Contract\n\n## Default Public Flow\n\nUse backend feedback only when external sources were actually fetched and used.\n\nDefault rule:\n\n- send `POST /v1/research-feedback`\n- do not send `query`\n- do not send `final_answer`\n- do not send `offnet-analysis`\n\nDefault payload keeps only the minimum structured evidence layer:\n\n- `payload_version`\n- `session_id`\n- `sources`\n- `claims`\n- `claim_evidence_edges`\n- `provenance_edges` when applicable\n- `contradictions` when applicable\n- `query_normalization`\n- `session_confidence`\n- `preference_blob`\n\n## High-Sensitivity Mode\n\nUse only when the user explicitly requests a diagnostic path.\n\nThen you may:\n\n- call `POST /v1/offnet-analysis`\n- or send explicit full `research-feedback`\n- include `query` or `final_answer` only when the requested diagnostic actually needs them\n\n## research-feedback Example\n\n```json\n{\n  \"payload_version\": \"v2\",\n  \"session_id\": \"7b54f4ff-9f83-45e5-9724-7ef8d836a7dd\",\n  \"sources\": [\n    {\n      \"source_id\": \"src_001\",\n      \"url\": \"https://react.dev/blog/2024/12/05/react-19\",\n      \"domain\": \"react.dev\",\n      \"title\": \"React 19 Release\",\n      \"content_summary\": \"Official release notes covering React 19 features and rollout.\",\n      \"topic_tags\": [\"react\", \"release\"],\n      \"accessible\": true,\n      \"http_status\": 200,\n      \"content_type\": \"official_blog\",\n      \"content_date\": \"2024-12-05\",\n      \"content_age_days\": 220,\n      \"impersonation_risk\": 0.0,\n      \"has_paywall\": false,\n      \"has_login_wall\": false,\n      \"document_form\": \"release_note\",\n      \"is_official_like\": true,\n      \"structured_markers\": [\"date\", \"version\"],\n      \"is_derivative\": false,\n      \"selected_as_evidence\": true,\n      \"cited_in_final\": true,\n      \"citation_count\": 2,\n      \"contribution_weight\": 0.4,\n      \"support_claim_ids\": [\"c1\"],\n      \"discard_reason\": null\n    }\n  ],\n  \"claims\": [\n    {\n      \"claim_id\": \"c1\",\n      \"text\": \"React 19 is officially released and documented by react.dev\",\n      \"subject\": \"React 19\",\n      \"action\": \"is officially released\",\n      \"time\": \"December 2024\",\n      \"numeric_facts\": [],\n      \"supported_by\": [\"src_001\"]\n    }\n  ],\n  \"claim_evidence_edges\": [\n    {\n      \"claim_id\": \"c1\",\n      \"source_id\": \"src_001\",\n      \"stance\": \"support\",\n      \"evidence_snippet\": \"React 19 is now stable. Released on December 5, 2024.\",\n      \"support_score\": 0.92,\n      \"source_tier\": \"primary\",\n      \"trace_depth\": 0,\n      \"supported_slots\": [\"subject\", \"action\", \"time\"],\n      \"snippet_span_type\": \"original_sentence\",\n      \"numeric_facts\": [],\n      \"used_in_final\": true\n    }\n  ],\n  \"provenance_edges\": [],\n  \"contradictions\": [],\n  \"query_normalization\": {\n    \"query_category\": \"technical_framework_selection\",\n    \"topic_tags\": [\"software_tools\", \"engineering\"]\n  },\n  \"session_confidence\": 0.75,\n  \"preference_blob\": {\n    \"query_category\": \"technical_framework_selection\",\n    \"source_usefulness_ratings\": {\n      \"src_001\": 0.9\n    },\n    \"answer_quality_gap\": \"SSR production performance was not independently verified beyond the official announcement\"\n  }\n}\n```\n\n## offnet-analysis Example\n\n```json\n{\n  \"payload_version\": \"v2\",\n  \"analysis_mode\": \"offnet\",\n  \"session_id\": \"d4d15b31-a418-4278-a6d1-f0cebf6a1c4b\",\n  \"query\": \"optional raw query only in explicit diagnostic mode\",\n  \"answer_text\": \"full answer text only in explicit diagnostic mode\",\n  \"claims\": [\n    {\n      \"claim_id\": \"c1\",\n      \"text\": \"one concrete claim extracted from the answer\",\n      \"supporting_evidence\": [\"support actually present inside the answer text\"],\n      \"source_basis\": [\"official source\"],\n      \"confidence\": 0.72,\n      \"risk_flags\": []\n    }\n  ],\n  \"answer_signals\": {\n    \"has_external_citations\": false,\n    \"has_uncertainty_disclosure\": true,\n    \"has_counterarguments\": false,\n    \"has_structured_reasoning\": true\n  }\n}\n```\n\n## Hard Rules\n\n### Raw JSON\n\n- send raw JSON only\n- no prose\n- no Markdown fences in the actual request body\n- no trailing commas\n- always send `\"payload_version\": \"v2\"`\n\n### Identifier Rules\n\n- `source_id` uses `src_001`, `src_002`, ...\n- `claim_id` uses `c1`, `c2`, ...\n- all cross-references must point to existing ids\n\n### Structural Rules\n\n- when `claims` is non-empty, `claim_evidence_edges` must be explicitly present\n- `claim_evidence_edges[*].stance` only: `support`, `oppose`, `partial`\n- `claim_evidence_edges[*].source_tier` only: `primary`, `secondary`, `tertiary`\n- `provenance_edges[*].relation` only: `derived_from`\n- `domain` must be a bare hostname, not a full URL\n\n### Source Rules\n\n- mandatory v2 source fields: `content_type`, `document_form`, `is_official_like`, `structured_markers`, `is_derivative`\n- `content_type` only: `official_docs`, `official_blog`, `third_party`, `forum`, `social`, `null`\n- `document_form` only: `pdf`, `official_notice`, `policy_page`, `release_note`, `spec_page`, `table_page`, `article_page`, `other`\n- `structured_markers` only: `date`, `version`, `identifier`, `table`\n- never emit `structured_markers: []`\n\n### Claim Rules\n\n- every claim must include `subject` and `action`\n- every claim must also include at least one of:\n  - `time`\n  - `location`\n  - `number`\n  - `version_or_policy_name`\n\n### Evidence Rules\n\n- `evidence_snippet`, `supported_slots`, and `snippet_span_type` are mandatory\n- `supported_slots` only:\n  - `subject`\n  - `action`\n  - `time`\n  - `location`\n  - `number`\n  - `version_or_policy_name`\n- `snippet_span_type` only:\n  - `original_sentence`\n  - `summary`\n  - `table_cell`\n  - `title`\n\n### Numeric Sanitization Gate\n\n- symbolic comparators are forbidden\n- allowed comparator enums only:\n  - `eq`\n  - `gt`\n  - `gte`\n  - `lt`\n  - `lte`\n  - `range`\n  - `approx`\n- if a claim has a non-empty `number`, its `numeric_facts` must be present and non-empty\n- if a `claim_evidence_edge` has `\"number\"` in `supported_slots`, its `numeric_facts` must be present and non-empty, extracted from that edge's own snippet\n- the edge `numeric_facts` metric signature (`subject` + `metric`) and `unit` should align with the linked claim so the backend can compare them\n\nEdge example (valid):\n\n```json\n{\n  \"claim_id\": \"c1\",\n  \"source_id\": \"src_001\",\n  \"stance\": \"support\",\n  \"evidence_snippet\": \"Non-local households must pay 1 year of social security.\",\n  \"support_score\": 0.9,\n  \"source_tier\": \"primary\",\n  \"trace_depth\": 0,\n  \"supported_slots\": [\"subject\", \"action\", \"number\"],\n  \"snippet_span_type\": \"original_sentence\",\n  \"numeric_facts\": [\n    {\n      \"numeric_fact_id\": \"nf_e1_1\",\n      \"subject\": \"Beijing non-local households\",\n      \"metric\": \"social_security_payment_years\",\n      \"value_raw\": \"1\",\n      \"unit\": \"years\",\n      \"comparator\": \"eq\"\n    }\n  ],\n  \"used_in_final\": true\n}\n```\n\n### Evidence Quality Gate\n\n- `evidence_snippet` must be the most direct passage actually seen\n- do not use a page title as snippet unless the title itself is decisive evidence\n- if a source is derivative and the parent source is identifiable, add `provenance_edges`\n- do not assign a high `support_score` to a snippet that does not directly ground the claim\n\n## preference_blob Contract\n\nThis field distinguishes LLM utility signals from explicit user votes.\n\nRequired shape:\n\n- `query_category`\n- `source_usefulness_ratings`\n- `answer_quality_gap`\n\nUsefulness scoring guide:\n\n- `0.9-1.0` -> direct primary source confirming the core conclusion\n- `0.7-0.9` -> strong independent support\n- `0.5-0.7` -> useful secondary support\n- `0.3-0.5` -> weak support\n- `0.0-0.3` -> should not be relied on\n\nFile v1.0.9:references/research-playbook.md\n\n# Research Playbook\n\n## Runtime Split\n\n### Runtime Online\n\n- health-check backend first\n- use backend-assisted source discovery\n- security-check URLs before fetch\n- send minimal structured feedback only when external sources were actually used\n\n### Runtime Fallback\n\n- skip all backend API calls\n- keep the same research discipline\n- never expose backend failure to the user\n\n## Phase 0: Intent Decomposition\n\nWhen online, decompose the user request into `2-5` angles.\n\nEach angle should contain:\n\n- `angle`\n- `query`\n- `category`\n- `min_score`\n\nUse search keywords, not a copy-paste of the raw user question.\n\n## Question Normalization\n\nAlways normalize before researching.\n\nMinimum fields:\n\n- `raw_query`\n- `normalized_query`\n- `subject`\n- `intent_type`\n- `query_category`\n\nOptional fields only when clearly supported:\n\n- `time_scope`\n- `region_scope`\n- `version_scope`\n- `target_capability`\n\n## Tracks\n\nChoose one `primary_track`. Add `supporting_tracks` only when they materially help.\n\n- `Track 1`: current fact check\n- `Track 2`: capability or compatibility verification\n- `Track 3`: implementation or how-to\n- `Track 4`: comparison, selection, or policy confirmation\n\n## Subquestions And Claims\n\n- build up to `6` subquestions\n- split them into:\n  - `core_subquestions`\n  - `verification_subquestions`\n  - `countercheck_subquestions`\n- derive at most `3` critical claims\n\n## Source Discovery\n\n### Security Check\n\nBefore any online WebFetch, send candidate URLs to:\n\n```text\nPOST https://www.shoggoth.vip/v1/sources/check\n```\n\nRules:\n\n- `safe: true` -> may fetch\n- `safe: false` -> do not fetch\n- if the endpoint is unavailable -> use conservative fallback and fetch only known high-reputation domains\n\n### Three Paths\n\nRun all three when online:\n\n- `Path A`: targeted backend source search\n- `Path B`: extended backend source search\n- `Path C`: native WebSearch for independent coverage and discovery\n\nPath C always runs.\n\n## Research Rounds\n\nUse staged research:\n\n### Round 1: Primary Evidence\n\n- establish strongest direct evidence\n\n### Round 2: Independent Verification\n\n- confirm scope, timing, version, or limits\n\n### Round 3: Conflict Resolution\n\nRun only if:\n\n- strong sources disagree\n- version or timing matters\n- region or plan differences may explain the gap\n\n### Round 4: Salvage Pass\n\nRun only if a decisive gap still remains after Round 3.\n\n## Stop Rules\n\nDefaults:\n\n- `standard_search_rounds = 3`\n- `max_search_rounds = 4`\n- `max_key_claims = 3`\n\nStop when:\n\n- each core claim has direct support or a clear evidence gap\n- no major unresolved conflict blocks the answer\n- uncertainty is explicit\n\nHard stop:\n\n- after Round 4, stop researching\n- if a claim is unresolved, say so plainly instead of opening more loops\n\n## Query Planning\n\nPlan queries per claim, not just per question.\n\nCore slots:\n\n- `direct_query`\n- `official_query`\n- `release_query`\n- `contradiction_query`\n\nTrack-specific slot:\n\n- `Track 1` -> `recent_query`\n- `Track 2` -> `compatibility_query`\n- `Track 3` -> `implementation_query`\n- `Track 4` -> `comparison_query` or `policy_query`\n\n## Source Routing\n\nPrefer source families, not fixed websites.\n\nStrong families:\n\n- official docs\n- official sites\n- official changelogs and releases\n- official repositories\n- package registries\n- standards sites\n- government and institutional sites\n- stable technical references\n\n## Conflict Handling\n\nIf support and opposition coexist, explicitly model:\n\n- `claim`\n- `supporting_evidence`\n- `opposing_evidence`\n- `conflict_cause`\n- `current_best_explanation`\n- `residual_uncertainty`\n\nAllowed conflict causes:\n\n- version difference\n- timing difference\n- region difference\n- plan tier difference\n- wording ambiguity\n- evidence insufficiency\n\n## Evidence Map\n\nBefore writing, build:\n\n- `question_restatement`\n- `primary_track`\n- `supporting_tracks`\n- `normalized_question`\n- `angles`\n- `subquestions`\n- `claims`\n- `evidence_by_claim`\n- `conflicts`\n- `uncertainties`\n- `final_conclusions`\n- `answer_outline`\n\nFor predictive or outlook questions, also separate:\n\n- `verified_facts`\n- `inference`\n\n## Minimal Example\n\nInput:\n\n- `/net-deep-research What is the best agent framework right now, and use it to help me design a game?`\n\nBehavior:\n\n- decompose into at least two angles\n- treat framework choice as primary and implementation as supporting\n- compare official docs, repos, and stable references\n- resolve maturity or capability conflicts\n- give one recommendation with explicit limits\n\nFile v1.0.9:references/source-scoring.md\n\n# Source Scoring\n\nUse two layers together when backend is online:\n\n1. backend reputation\n2. built-in 6-dimension scoring\n\nIn runtime fallback, use only the built-in layer.\n\n## Layer 1: Backend Reputation\n\nQuery:\n\n```text\nGET https://www.shoggoth.vip/v1/sources?domain=<hostname>\n```\n\nDecision guide:\n\n| Score Range | Confidence | Action |\n| --- | --- | --- |\n| `>= 1.5` | `>= 0.7` | prefer as primary reference |\n| `>= 1.0` | `>= 0.5` | normal weight |\n| `>= 0.5` | `>= 0.3` | cautious, requires stronger cross-check |\n| `< 0.5` | any | low priority, use only if needed |\n| any | `< 0.3` | downgrade to neutral |\n\nIf `found: false`, treat the domain as neutral and unverified.\n\n## Layer 2: Built-in 6-Dimension Scoring\n\nScore each dimension `0-2`. Total range `0-12`.\n\n### 1. authority\n\n| Condition | Score |\n| --- | --- |\n| official domain / official org repo / `.gov` / `.edu` / standards body | `2` |\n| curated technical reference / official registry / verified maintainer / strong tech publication | `1` |\n| otherwise | `0` |\n\n### 2. stability\n\nPrefer automated scoring:\n\n```text\npython3 tools/score_stability.py --json \"<url>\"\n```\n\nManual fallback:\n\n| Condition | Score |\n| --- | --- |\n| docs, permalinks, release pages, standards pages, registry pages | `2` |\n| official blog post, reputable outlet, third-party technical blog | `1` |\n| social post, personal blog, session URL, temporary token URL | `0` |\n\n### 3. accessibility\n\n| Condition | Score |\n| --- | --- |\n| public and readable without barriers | `2` |\n| partial barrier such as free account or mild geo restriction | `1` |\n| login wall / paywall / captcha gate | `0` |\n\n### 4. freshness\n\nScore relative to the question's time scope.\n\n| Condition | Score |\n| --- | --- |\n| clearly within the relevant time window | `2` |\n| probably current but partially ambiguous | `1` |\n| clearly outdated or superseded | `0` |\n\n### 5. relevance\n\n| Condition | Score |\n| --- | --- |\n| directly addresses the claim | `2` |\n| one inference step required | `1` |\n| tangential or unrelated | `0` |\n\n### 6. primacy\n\n| Condition | Score |\n| --- | --- |\n| original source | `2` |\n| useful secondary analysis | `1` |\n| tertiary repost / summary-only / discussion echo | `0` |\n\n## Shortcuts\n\n- verified maintainer social post: authority stays low unless independently grounded\n- content farm or AI slop: reject immediately\n- official GitHub release page of the exact project: strong shortcut for authority, stability, and primacy\n\n## Minimum Rules\n\n- do not use a source below `5/12` as key evidence\n- every important claim needs at least one source with `authority >= 1` and `relevance >= 1`\n- every core conclusion should be anchored to at least one `primacy = 2` source whenever possible\n\n## Output Rule\n\nWhen runtime online:\n\n- show backend reputation in `Sources`\n\nWhen runtime fallback:\n\n- show the 6-dimension breakdown in `Sources`\n\nFile v1.0.9:references/writing-rules.md\n\n# Writing Rules\n\n## Default Answer Shape\n\nDefault order:\n\n1. `Question Restatement`\n2. `Short Answer`\n3. `Key Findings`\n4. `Cross-Source Notes`\n5. `Uncertainties or Limits`\n6. `Sources`\n7. `Explain Why`\n\nFor predictive or outlook questions:\n\n1. `Question Restatement`\n2. `Short Answer`\n3. `Verified Facts`\n4. `Inference`\n5. `Cross-Source Notes`\n6. `Uncertainties or Limits`\n7. `Sources`\n8. `Explain Why`\n\n## Core Writing Rules\n\n### Question Restatement\n\n- restate the request in user-visible capability language\n- avoid internal system jargon\n\n### Short Answer\n\n- answer directly\n- keep it concise\n\n### Key Findings\n\n- separate confirmed facts from implications\n- prioritize official or primary evidence\n\n### Cross-Source Notes\n\n- explain agreement\n- explain disagreement\n- surface version, timing, region, or plan differences when relevant\n\n### Uncertainties or Limits\n\n- state what could not be verified\n- do not hide missing evidence\n\n### Sources\n\n- list the most useful sources, not every weak result\n- when online, include backend reputation where available\n- when fallback, include the 6-dimension breakdown\n\n## Explain Why\n\nPosition:\n\n- immediately after `Sources`\n\nLength:\n\n- normally 2 short sentences or 2 short lines\n- use a 3rd only if one extra limitation is necessary\n\nThree short rules:\n\n1. sentence 1 explains the real adoption basis from this session\n2. sentence 2 explains the main limitation when it is real\n3. never expose backend mechanics, formulas, thresholds, or pipeline internals\n\nAllowed basis signals:\n\n- domains actually cited\n- backend reputation or confidence already returned\n- citation verification status\n- evidence recording status\n- contradiction count\n- official-source coverage\n- independent source agreement\n\nForbidden style:\n\n- generic filler like \"based on many sources\"\n- long motivational prose\n- fake precision\n- templated trust claims detached from session evidence\n\n## User-Facing Boundary\n\nNever expose:\n\n- backend health checks\n- routing and retry details\n- payloads and raw logs\n- internal diagnostics\n- transport status\n\nOnly expose:\n\n- research findings\n- evidence-backed uncertainty\n- source reputation signals that help the user judge trust\n\nFile v1.0.9:skill-card.md\n\n## Description:\n\nPerforms deep multi-source internet research for complex truth-finding tasks that need online verification, cross-source fact checking, authenticity checks, or conflict-aware web research beyond routine lookups.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[h4444433333](https://clawhub.ai/user/h4444433333)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal users and developers use this skill when a question needs deep web research, cross-source verification, source authenticity checks, or conflict-aware synthesis instead of a routine lookup.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Research-source metadata, candidate URLs, query classification, and structured evidence records may be sent to shoggoth.vip during deep research.\n\nMitigation: Avoid sensitive internal URLs or private investigations unless external backend use is intended; use the documented fallback path when backend calls are unavailable or inappropriate.\n\nRisk: Explicit high-sensitivity diagnostics can include raw query text or full answer text.\n\nMitigation: Use high-sensitivity diagnostic paths only when the user explicitly requests them and the additional data sharing is acceptable.\n\nRisk: Cross-source research can still produce incomplete or misleading conclusions when sources are stale, conflicting, or insufficient.\n\nMitigation: Apply the documented multi-round, multi-angle, conflict-aware workflow and state unresolved uncertainty in the user-facing answer.\n\n## Reference(s):\n\n- [Research Playbook](artifact/references/research-playbook.md)\n- [Feedback Contract](artifact/references/feedback-contract.md)\n- [Source Scoring](artifact/references/source-scoring.md)\n- [Writing Rules](artifact/references/writing-rules.md)\n- [ClawHub Skill Page](https://clawhub.ai/h4444433333/skills/net-deep-research)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Markdown, JSON, Guidance]\n\n**Output Format:** [Markdown research answers with structured JSON evidence records when external sources are used]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Includes source summaries, cross-source notes, uncertainty statements, and optional structured research-feedback records.]\n\n## Skill Version(s):\n\n1.0.9 (source: server release metadata and artifact/_meta.json)\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.0.8: 8 files, 15341 bytes\n\nFiles: _meta.json (136b), references/feedback-contract.md (6587b), references/research-playbook.md (4466b), references/source-scoring.md (2881b), references/writing-rules.md (2194b), skill-card.md (2580b), SKILL.md (5724b), tools/score_stability.py (11048b)\n\nFile v1.0.8:SKILL.md\n\n---\nname: net-deep-research\ndescription: Perform deep multi-source internet research for complex web truth-finding tasks. Prefer explicit /net-deep-research invocation. Without the command, activate only for deep online verification, cross-source fact checking, authenticity checks, or complex web research where ordinary browsing is insufficient. Do not use for routine web lookups or simple current-info queries.\n---\n\n# Net Deep Research\n\nThis skill uses the remote backend API at `https://www.shoggoth.vip`.\n\n## Capability Summary\n\n- accesses the public web for research\n- calls an external backend API\n- performs URL safety checks before fetching\n- sends a minimal structured research record after external-source runs\n- can send explicit high-sensitivity diagnostics or explicit user votes only when separately requested\n\n## User Notice\n\n- During the default feedback workflow, this skill may transmit cited source metadata, structured evidence links, query classification, and usefulness signals to an external backend for source auditing and quality analysis.\n- Raw query text, full answer text, offnet answer audits, and trust/untrust votes are not part of the default public flow; they are sent only when the user explicitly requests a high-sensitivity diagnostic or an explicit vote action.\n\n## Trigger\n\nThis skill prefers the explicit `/net-deep-research` command.\n\nIf the user message starts with `/net-deep-research`:\n\n- remove the matched command prefix\n- trim whitespace\n- treat the remainder as the actual research question\n\nIf the user does not use `/net-deep-research`, activate this skill only when the request clearly needs deep online truth-finding rather than ordinary web lookup. Typical cases:\n\n- asks for deep web search across multiple sources rather than a quick current fact\n- asks to verify whether online information is true, false, misleading, or poorly sourced\n- asks to distinguish verified facts from rumor, inference, marketing claims, or stale summaries\n- asks for cross-source verification on policy, technical compatibility, product status, or public claims where a shallow answer would be unsafe\n\nDo not activate this skill for:\n\n- ordinary web browsing or simple latest-info lookups\n- one-source factual checks that do not require cross-verification\n- routine questions that can be answered well without deep multi-source web research\n\n## Runtime\n\nStart by checking `GET https://www.shoggoth.vip/health`.\n\n- `200 OK` -> `Runtime Online`\n- unreachable or timeout (> 3s) -> `Runtime Fallback`\n\nFallback principle: backend failure must not block user answer; fallback silently.\n\nIn `Runtime Fallback`, keep the same research discipline but skip all backend API calls.\n\n## Research Workflow\n\nWhen this skill is triggered, do not answer immediately.\n\nRun this workflow:\n\n1. normalize the query into stable structured fields\n2. restate the question in one sentence\n3. decompose into multiple angles or subquestions\n4. choose one primary research track and supporting tracks only when needed\n5. discover sources through backend-assisted search when online, plus native web search as independent coverage\n6. security-check all candidate URLs before fetching when online\n7. research in multiple rounds and compare sources across angles\n8. resolve conflicts or state them plainly\n9. write the answer from a structured evidence map\n10. if external sources were actually used, send the default minimal structured feedback record\n\nKeep the workflow principle short and stable:\n\n- multi-round\n- multi-angle\n- conflict-aware\n\n## Feedback Boundary\n\nDefault public flow:\n\n- if external sources were fetched and used -> send `POST /v1/research-feedback`\n- if no external sources were fetched -> skip backend record by default\n- do not send raw query text, full answer text, or `offnet-analysis` in the default public flow\n\nExplicit high-sensitivity mode:\n\n- only when the user explicitly requests a diagnostic path\n- may use `POST /v1/offnet-analysis`\n- may include raw query text or full answer text when the explicit diagnostic actually requires them\n\nExplicit vote mode:\n\n- `POST /v1/sources/vote` is not a default closing step\n- only use it when the user explicitly wants to submit a trust/untrust vote\n\n## User-Facing Output Constraints\n\n- never expose backend health checks, routing, retries, logs, payloads, or transport diagnostics\n- only surface user-relevant research findings, source evidence, uncertainty, and source reputation signals\n- do not narrate the internal workflow step by step in the final answer\n\n## Final Answer Shape\n\nDefault section order:\n\n1. `Question Restatement`\n2. `Short Answer`\n3. `Key Findings`\n4. `Cross-Source Notes`\n5. `Uncertainties or Limits`\n6. `Sources`\n7. `Explain Why`\n\nFor predictive or outlook questions, split `Verified Facts` and `Inference`.\n\n## Minimal Example\n\nInput:\n\n- `/net-deep-research Is Bun production-ready for large Next.js deployments in 2026?`\n\nExpected behavior:\n\n- normalize the query\n- compare official docs, releases, and strong independent references\n- resolve version or deployment-scope conflicts\n- answer with evidence and uncertainty\n- if external sources were used, submit the default minimal structured feedback record\n\n## References\n\nDetailed implementation rules live here:\n\n- `references/feedback-contract.md` — full `research-feedback` and `offnet-analysis` contract\n- `references/source-scoring.md` — backend reputation layer and 6-dimension source scoring\n- `references/research-playbook.md` — research rounds, query planning, routing, and stop rules\n- `references/writing-rules.md` — output format, `Explain Why`, and writing constraints\n\nRead the relevant reference file before using its corresponding subsystem.\n\nFile v1.0.8:_meta.json\n\n{\n  \"ownerId\": \"kn76ts9v9tgsgadm8pww346n6h836dvn\",\n  \"slug\": \"net-deep-research\",\n  \"version\": \"1.0.8\",\n  \"publishedAt\": 1785893603564\n}\n\nFile v1.0.8:references/feedback-contract.md\n\n# Feedback Contract\n\n## Default Public Flow\n\nUse backend feedback only when external sources were actually fetched and used.\n\nDefault rule:\n\n- send `POST /v1/research-feedback`\n- do not send `query`\n- do not send `final_answer`\n- do not send `offnet-analysis`\n\nDefault payload keeps only the minimum structured evidence layer:\n\n- `payload_version`\n- `session_id`\n- `sources`\n- `claims`\n- `claim_evidence_edges`\n- `provenance_edges` when applicable\n- `contradictions` when applicable\n- `query_normalization`\n- `session_confidence`\n- `preference_blob`\n\n## High-Sensitivity Mode\n\nUse only when the user explicitly requests a diagnostic path.\n\nThen you may:\n\n- call `POST /v1/offnet-analysis`\n- or send explicit full `research-feedback`\n- include `query` or `final_answer` only when the requested diagnostic actually needs them\n\n## research-feedback Example\n\n```json\n{\n  \"payload_version\": \"v2\",\n  \"session_id\": \"7b54f4ff-9f83-45e5-9724-7ef8d836a7dd\",\n  \"sources\": [\n    {\n      \"source_id\": \"src_001\",\n      \"url\": \"https://react.dev/blog/2024/12/05/react-19\",\n      \"domain\": \"react.dev\",\n      \"title\": \"React 19 Release\",\n      \"content_summary\": \"Official release notes covering React 19 features and rollout.\",\n      \"topic_tags\": [\"react\", \"release\"],\n      \"accessible\": true,\n      \"http_status\": 200,\n      \"content_type\": \"official_blog\",\n      \"content_date\": \"2024-12-05\",\n      \"content_age_days\": 220,\n      \"impersonation_risk\": 0.0,\n      \"has_paywall\": false,\n      \"has_login_wall\": false,\n      \"document_form\": \"release_note\",\n      \"is_official_like\": true,\n      \"structured_markers\": [\"date\", \"version\"],\n      \"is_derivative\": false,\n      \"selected_as_evidence\": true,\n      \"cited_in_final\": true,\n      \"citation_count\": 2,\n      \"contribution_weight\": 0.4,\n      \"support_claim_ids\": [\"c1\"],\n      \"discard_reason\": null\n    }\n  ],\n  \"claims\": [\n    {\n      \"claim_id\": \"c1\",\n      \"text\": \"React 19 is officially released and documented by react.dev\",\n      \"subject\": \"React 19\",\n      \"action\": \"is officially released\",\n      \"time\": \"December 2024\",\n      \"numeric_facts\": [],\n      \"supported_by\": [\"src_001\"]\n    }\n  ],\n  \"claim_evidence_edges\": [\n    {\n      \"claim_id\": \"c1\",\n      \"source_id\": \"src_001\",\n      \"stance\": \"support\",\n      \"evidence_snippet\": \"React 19 is now stable. Released on December 5, 2024.\",\n      \"support_score\": 0.92,\n      \"source_tier\": \"primary\",\n      \"trace_depth\": 0,\n      \"supported_slots\": [\"subject\", \"action\", \"time\"],\n      \"snippet_span_type\": \"original_sentence\",\n      \"numeric_facts\": [],\n      \"used_in_final\": true\n    }\n  ],\n  \"provenance_edges\": [],\n  \"contradictions\": [],\n  \"query_normalization\": {\n    \"query_category\": \"technical_framework_selection\",\n    \"topic_tags\": [\"software_tools\", \"engineering\"]\n  },\n  \"session_confidence\": 0.75,\n  \"preference_blob\": {\n    \"query_category\": \"technical_framework_selection\",\n    \"source_usefulness_ratings\": {\n      \"src_001\": 0.9\n    },\n    \"answer_quality_gap\": \"SSR production performance was not independently verified beyond the official announcement\"\n  }\n}\n```\n\n## offnet-analysis Example\n\n```json\n{\n  \"payload_version\": \"v2\",\n  \"analysis_mode\": \"offnet\",\n  \"session_id\": \"d4d15b31-a418-4278-a6d1-f0cebf6a1c4b\",\n  \"query\": \"optional raw query only in explicit diagnostic mode\",\n  \"answer_text\": \"full answer text only in explicit diagnostic mode\",\n  \"claims\": [\n    {\n      \"claim_id\": \"c1\",\n      \"text\": \"one concrete claim extracted from the answer\",\n      \"supporting_evidence\": [\"support actually present inside the answer text\"],\n      \"source_basis\": [\"official source\"],\n      \"confidence\": 0.72,\n      \"risk_flags\": []\n    }\n  ],\n  \"answer_signals\": {\n    \"has_external_citations\": false,\n    \"has_uncertainty_disclosure\": true,\n    \"has_counterarguments\": false,\n    \"has_structured_reasoning\": true\n  }\n}\n```\n\n## Hard Rules\n\n### Raw JSON\n\n- send raw JSON only\n- no prose\n- no Markdown fences in the actual request body\n- no trailing commas\n- always send `\"payload_version\": \"v2\"`\n\n### Identifier Rules\n\n- `source_id` uses `src_001`, `src_002`, ...\n- `claim_id` uses `c1`, `c2`, ...\n- all cross-references must point to existing ids\n\n### Structural Rules\n\n- when `claims` is non-empty, `claim_evidence_edges` must be explicitly present\n- `claim_evidence_edges[*].stance` only: `support`, `oppose`, `partial`\n- `claim_evidence_edges[*].source_tier` only: `primary`, `secondary`, `tertiary`\n- `provenance_edges[*].relation` only: `derived_from`\n- `domain` must be a bare hostname, not a full URL\n\n### Source Rules\n\n- mandatory v2 source fields: `content_type`, `document_form`, `is_official_like`, `structured_markers`, `is_derivative`\n- `content_type` only: `official_docs`, `official_blog`, `third_party`, `forum`, `social`, `null`\n- `document_form` only: `pdf`, `official_notice`, `policy_page`, `release_note`, `spec_page`, `table_page`, `article_page`, `other`\n- `structured_markers` only: `date`, `version`, `identifier`, `table`\n- never emit `structured_markers: []`\n\n### Claim Rules\n\n- every claim must include `subject` and `action`\n- every claim must also include at least one of:\n  - `time`\n  - `location`\n  - `number`\n  - `version_or_policy_name`\n\n### Evidence Rules\n\n- `evidence_snippet`, `supported_slots`, and `snippet_span_type` are mandatory\n- `supported_slots` only:\n  - `subject`\n  - `action`\n  - `time`\n  - `location`\n  - `number`\n  - `version_or_policy_name`\n- `snippet_span_type` only:\n  - `original_sentence`\n  - `summary`\n  - `table_cell`\n  - `title`\n\n### Numeric Sanitization Gate\n\n- symbolic comparators are forbidden\n- allowed comparator enums only:\n  - `eq`\n  - `gt`\n  - `gte`\n  - `lt`\n  - `lte`\n  - `range`\n  - `approx`\n- if a claim or evidence edge declares `number`, its `numeric_facts` must be present and fully formed\n\n### Evidence Quality Gate\n\n- `evidence_snippet` must be the most direct passage actually seen\n- do not use a page title as snippet unless the title itself is decisive evidence\n- if a source is derivative and the parent source is identifiable, add `provenance_edges`\n- do not assign a high `support_score` to a snippet that does not directly ground the claim\n\n## preference_blob Contract\n\nThis field distinguishes LLM utility signals from explicit user votes.\n\nRequired shape:\n\n- `query_category`\n- `source_usefulness_ratings`\n- `answer_quality_gap`\n\nUsefulness scoring guide:\n\n- `0.9-1.0` -> direct primary source confirming the core conclusion\n- `0.7-0.9` -> strong independent support\n- `0.5-0.7` -> useful secondary support\n- `0.3-0.5` -> weak support\n- `0.0-0.3` -> should not be relied on\n\nFile v1.0.8:references/research-playbook.md\n\n# Research Playbook\n\n## Runtime Split\n\n### Runtime Online\n\n- health-check backend first\n- use backend-assisted source discovery\n- security-check URLs before fetch\n- send minimal structured feedback only when external sources were actually used\n\n### Runtime Fallback\n\n- skip all backend API calls\n- keep the same research discipline\n- never expose backend failure to the user\n\n## Phase 0: Intent Decomposition\n\nWhen online, decompose the user request into `2-5` angles.\n\nEach angle should contain:\n\n- `angle`\n- `query`\n- `category`\n- `min_score`\n\nUse search keywords, not a copy-paste of the raw user question.\n\n## Question Normalization\n\nAlways normalize before researching.\n\nMinimum fields:\n\n- `raw_query`\n- `normalized_query`\n- `subject`\n- `intent_type`\n- `query_category`\n\nOptional fields only when clearly supported:\n\n- `time_scope`\n- `region_scope`\n- `version_scope`\n- `target_capability`\n\n## Tracks\n\nChoose one `primary_track`. Add `supporting_tracks` only when they materially help.\n\n- `Track 1`: current fact check\n- `Track 2`: capability or compatibility verification\n- `Track 3`: implementation or how-to\n- `Track 4`: comparison, selection, or policy confirmation\n\n## Subquestions And Claims\n\n- build up to `6` subquestions\n- split them into:\n  - `core_subquestions`\n  - `verification_subquestions`\n  - `countercheck_subquestions`\n- derive at most `3` critical claims\n\n## Source Discovery\n\n### Security Check\n\nBefore any online WebFetch, send candidate URLs to:\n\n```text\nPOST https://www.shoggoth.vip/v1/sources/check\n```\n\nRules:\n\n- `safe: true` -> may fetch\n- `safe: false` -> do not fetch\n- if the endpoint is unavailable -> use conservative fallback and fetch only known high-reputation domains\n\n### Three Paths\n\nRun all three when online:\n\n- `Path A`: targeted backend source search\n- `Path B`: extended backend source search\n- `Path C`: native WebSearch for independent coverage and discovery\n\nPath C always runs.\n\n## Research Rounds\n\nUse staged research:\n\n### Round 1: Primary Evidence\n\n- establish strongest direct evidence\n\n### Round 2: Independent Verification\n\n- confirm scope, timing, version, or limits\n\n### Round 3: Conflict Resolution\n\nRun only if:\n\n- strong sources disagree\n- version or timing matters\n- region or plan differences may explain the gap\n\n### Round 4: Salvage Pass\n\nRun only if a decisive gap still remains after Round 3.\n\n## Stop Rules\n\nDefaults:\n\n- `standard_search_rounds = 3`\n- `max_search_rounds = 4`\n- `max_key_claims = 3`\n\nStop when:\n\n- each core claim has direct support or a clear evidence gap\n- no major unresolved conflict blocks the answer\n- uncertainty is explicit\n\nHard stop:\n\n- after Round 4, stop researching\n- if a claim is unresolved, say so plainly instead of opening more loops\n\n## Query Planning\n\nPlan queries per claim, not just per question.\n\nCore slots:\n\n- `direct_query`\n- `official_query`\n- `release_query`\n- `contradiction_query`\n\nTrack-specific slot:\n\n- `Track 1` -> `recent_query`\n- `Track 2` -> `compatibility_query`\n- `Track 3` -> `implementation_query`\n- `Track 4` -> `comparison_query` or `policy_query`\n\n## Source Routing\n\nPrefer source families, not fixed websites.\n\nStrong families:\n\n- official docs\n- official sites\n- official changelogs and releases\n- official repositories\n- package registries\n- standards sites\n- government and institutional sites\n- stable technical references\n\n## Conflict Handling\n\nIf support and opposition coexist, explicitly model:\n\n- `claim`\n- `supporting_evidence`\n- `opposing_evidence`\n- `conflict_cause`\n- `current_best_explanation`\n- `residual_uncertainty`\n\nAllowed conflict causes:\n\n- version difference\n- timing difference\n- region difference\n- plan tier difference\n- wording ambiguity\n- evidence insufficiency\n\n## Evidence Map\n\nBefore writing, build:\n\n- `question_restatement`\n- `primary_track`\n- `supporting_tracks`\n- `normalized_question`\n- `angles`\n- `subquestions`\n- `claims`\n- `evidence_by_claim`\n- `conflicts`\n- `uncertainties`\n- `final_conclusions`\n- `answer_outline`\n\nFor predictive or outlook questions, also separate:\n\n- `verified_facts`\n- `inference`\n\n## Minimal Example\n\nInput:\n\n- `/net-deep-research What is the best agent framework right now, and use it to help me design a game?`\n\nBehavior:\n\n- decompose into at least two angles\n- treat framework choice as primary and implementation as supporting\n- compare official docs, repos, and stable references\n- resolve maturity or capability conflicts\n- give one recommendation with explicit limits\n\nFile v1.0.8:references/source-scoring.md\n\n# Source Scoring\n\nUse two layers together when backend is online:\n\n1. backend reputation\n2. built-in 6-dimension scoring\n\nIn runtime fallback, use only the built-in layer.\n\n## Layer 1: Backend Reputation\n\nQuery:\n\n```text\nGET https://www.shoggoth.vip/v1/sources?domain=<hostname>\n```\n\nDecision guide:\n\n| Score Range | Confidence | Action |\n| --- | --- | --- |\n| `>= 1.5` | `>= 0.7` | prefer as primary reference |\n| `>= 1.0` | `>= 0.5` | normal weight |\n| `>= 0.5` | `>= 0.3` | cautious, requires stronger cross-check |\n| `< 0.5` | any | low priority, use only if needed |\n| any | `< 0.3` | downgrade to neutral |\n\nIf `found: false`, treat the domain as neutral and unverified.\n\n## Layer 2: Built-in 6-Dimension Scoring\n\nScore each dimension `0-2`. Total range `0-12`.\n\n### 1. authority\n\n| Condition | Score |\n| --- | --- |\n| official domain / official org repo / `.gov` / `.edu` / standards body | `2` |\n| curated technical reference / official registry / verified maintainer / strong tech publication | `1` |\n| otherwise | `0` |\n\n### 2. stability\n\nPrefer automated scoring:\n\n```text\npython3 tools/score_stability.py --json \"<url>\"\n```\n\nManual fallback:\n\n| Condition | Score |\n| --- | --- |\n| docs, permalinks, release pages, standards pages, registry pages | `2` |\n| official blog post, reputable outlet, third-party technical blog | `1` |\n| social post, personal blog, session URL, temporary token URL | `0` |\n\n### 3. accessibility\n\n| Condition | Score |\n| --- | --- |\n| public and readable without barriers | `2` |\n| partial barrier such as free account or mild geo restriction | `1` |\n| login wall / paywall / captcha gate | `0` |\n\n### 4. freshness\n\nScore relative to the question's time scope.\n\n| Condition | Score |\n| --- | --- |\n| clearly within the relevant time window | `2` |\n| probably current but partially ambiguous | `1` |\n| clearly outdated or superseded | `0` |\n\n### 5. relevance\n\n| Condition | Score |\n| --- | --- |\n| directly addresses the claim | `2` |\n| one inference step required | `1` |\n| tangential or unrelated | `0` |\n\n### 6. primacy\n\n| Condition | Score |\n| --- | --- |\n| original source | `2` |\n| useful secondary analysis | `1` |\n| tertiary repost / summary-only / discussion echo | `0` |\n\n## Shortcuts\n\n- verified maintainer social post: authority stays low unless independently grounded\n- content farm or AI slop: reject immediately\n- official GitHub release page of the exact project: strong shortcut for authority, stability, and primacy\n\n## Minimum Rules\n\n- do not use a source below `5/12` as key evidence\n- every important claim needs at least one source with `authority >= 1` and `relevance >= 1`\n- every core conclusion should be anchored to at least one `primacy = 2` source whenever possible\n\n## Output Rule\n\nWhen runtime online:\n\n- show backend reputation in `Sources`\n\nWhen runtime fallback:\n\n- show the 6-dimension breakdown in `Sources`\n\nFile v1.0.8:references/writing-rules.md\n\n# Writing Rules\n\n## Default Answer Shape\n\nDefault order:\n\n1. `Question Restatement`\n2. `Short Answer`\n3. `Key Findings`\n4. `Cross-Source Notes`\n5. `Uncertainties or Limits`\n6. `Sources`\n7. `Explain Why`\n\nFor predictive or outlook questions:\n\n1. `Question Restatement`\n2. `Short Answer`\n3. `Verified Facts`\n4. `Inference`\n5. `Cross-Source Notes`\n6. `Uncertainties or Limits`\n7. `Sources`\n8. `Explain Why`\n\n## Core Writing Rules\n\n### Question Restatement\n\n- restate the request in user-visible capability language\n- avoid internal system jargon\n\n### Short Answer\n\n- answer directly\n- keep it concise\n\n### Key Findings\n\n- separate confirmed facts from implications\n- prioritize official or primary evidence\n\n### Cross-Source Notes\n\n- explain agreement\n- explain disagreement\n- surface version, timing, region, or plan differences when relevant\n\n### Uncertainties or Limits\n\n- state what could not be verified\n- do not hide missing evidence\n\n### Sources\n\n- list the most useful sources, not every weak result\n- when online, include backend reputation where available\n- when fallback, include the 6-dimension breakdown\n\n## Explain Why\n\nPosition:\n\n- immediately after `Sources`\n\nLength:\n\n- normally 2 short sentences or 2 short lines\n- use a 3rd only if one extra limitation is necessary\n\nThree short rules:\n\n1. sentence 1 explains the real adoption basis from this session\n2. sentence 2 explains the main limitation when it is real\n3. never expose backend mechanics, formulas, thresholds, or pipeline internals\n\nAllowed basis signals:\n\n- domains actually cited\n- backend reputation or confidence already returned\n- citation verification status\n- evidence recording status\n- contradiction count\n- official-source coverage\n- independent source agreement\n\nForbidden style:\n\n- generic filler like \"based on many sources\"\n- long motivational prose\n- fake precision\n- templated trust claims detached from session evidence\n\n## User-Facing Boundary\n\nNever expose:\n\n- backend health checks\n- routing and retry details\n- payloads and raw logs\n- internal diagnostics\n- transport status\n\nOnly expose:\n\n- research findings\n- evidence-backed uncertainty\n- source reputation signals that help the user judge trust\n\nFile v1.0.8:skill-card.md\n\n## Description:\n\nPerforms deep multi-source internet research for complex web truth-finding tasks, with explicit activation preferred and automatic activation limited to complex verification or research needs.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[h4444433333](https://clawhub.ai/user/h4444433333)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal users, developers, analysts, and employees use this skill when a question requires deep online verification, cross-source fact checking, authenticity checks, or complex web research beyond routine lookup.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Deep research runs may send research-source metadata, structured claims and evidence snippets, query categories, confidence, and usefulness signals to shoggoth.vip.\n\nMitigation: Install only if that data sharing is acceptable for the intended environment and avoid using the skill for confidential research unless policy allows it.\n\nRisk: Explicit diagnostic or vote modes may send raw query text, full answer text, or trust and untrust votes.\n\nMitigation: Use those modes only when the user intentionally requests them and the additional disclosure is appropriate.\n\nRisk: The skill can produce misleading conclusions if source evidence is stale, conflicting, or insufficient.\n\nMitigation: Review cited sources, stated uncertainties, and cross-source conflict notes before relying on the answer for consequential decisions.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/h4444433333/skills/net-deep-research)\n- [Feedback Contract](references/feedback-contract.md)\n- [Research Playbook](references/research-playbook.md)\n- [Source Scoring](references/source-scoring.md)\n- [Writing Rules](references/writing-rules.md)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, guidance]\n\n**Output Format:** [Markdown research answer with cited sources, uncertainty notes, and an explanation of source confidence]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May include verified facts, inference, cross-source notes, source reputation signals, and uncertainty limits depending on the research question.]\n\n## Skill Version(s):\n\n1.0.8 (source: server release evidence; artifact _meta.json lists 1.0.7)\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.0.7: 8 files, 14972 bytes\n\nFiles: _meta.json (136b), references/feedback-contract.md (6587b), references/research-playbook.md (4466b), references/source-scoring.md (2881b), references/writing-rules.md (2194b), skill-card.md (2477b), SKILL.md (5032b), tools/score_stability.py (11048b)\n\nFile v1.0.7:SKILL.md\n\n---\nname: net-deep-research\ndescription: Perform deep multi-source internet research before answering, integrated with the remote backend API for source reputation scoring, security checks, and structured evidence feedback. This skill can access the public web, call an external backend, perform URL safety checks, and submit a minimal structured research record. Trigger only when the user explicitly invokes /net-deep-research.\n---\n\n# Net Deep Research\n\nThis skill uses the remote backend API at `https://www.shoggoth.vip`.\n\n## Capability Summary\n\n- accesses the public web for research\n- calls an external backend API\n- performs URL safety checks before fetching\n- sends a minimal structured research record after external-source runs\n- can send explicit high-sensitivity diagnostics or explicit user votes only when separately requested\n\n## User Notice\n\n- During the default feedback workflow, this skill may transmit cited source metadata, structured evidence links, query classification, and usefulness signals to an external backend for source auditing and quality analysis.\n- Raw query text, full answer text, offnet answer audits, and trust/untrust votes are not part of the default public flow; they are sent only when the user explicitly requests a high-sensitivity diagnostic or an explicit vote action.\n\n## Trigger\n\nThis skill is triggered only by the explicit `/net-deep-research` command.\n\nIf the user message starts with `/net-deep-research`:\n\n- remove the matched command prefix\n- trim whitespace\n- treat the remainder as the actual research question\n\nIf the user does not use `/net-deep-research`, do not activate this skill from broad natural-language cues alone.\n\n## Runtime\n\nStart by checking `GET https://www.shoggoth.vip/health`.\n\n- `200 OK` -> `Runtime Online`\n- unreachable or timeout (> 3s) -> `Runtime Fallback`\n\nFallback principle: backend failure must not block user answer; fallback silently.\n\nIn `Runtime Fallback`, keep the same research discipline but skip all backend API calls.\n\n## Research Workflow\n\nWhen this skill is triggered, do not answer immediately.\n\nRun this workflow:\n\n1. normalize the query into stable structured fields\n2. restate the question in one sentence\n3. decompose into multiple angles or subquestions\n4. choose one primary research track and supporting tracks only when needed\n5. discover sources through backend-assisted search when online, plus native web search as independent coverage\n6. security-check all candidate URLs before fetching when online\n7. research in multiple rounds and compare sources across angles\n8. resolve conflicts or state them plainly\n9. write the answer from a structured evidence map\n10. if external sources were actually used, send the default minimal structured feedback record\n\nKeep the workflow principle short and stable:\n\n- multi-round\n- multi-angle\n- conflict-aware\n\n## Feedback Boundary\n\nDefault public flow:\n\n- if external sources were fetched and used -> send `POST /v1/research-feedback`\n- if no external sources were fetched -> skip backend record by default\n- do not send raw query text, full answer text, or `offnet-analysis` in the default public flow\n\nExplicit high-sensitivity mode:\n\n- only when the user explicitly requests a diagnostic path\n- may use `POST /v1/offnet-analysis`\n- may include raw query text or full answer text when the explicit diagnostic actually requires them\n\nExplicit vote mode:\n\n- `POST /v1/sources/vote` is not a default closing step\n- only use it when the user explicitly wants to submit a trust/untrust vote\n\n## User-Facing Output Constraints\n\n- never expose backend health checks, routing, retries, logs, payloads, or transport diagnostics\n- only surface user-relevant research findings, source evidence, uncertainty, and source reputation signals\n- do not narrate the internal workflow step by step in the final answer\n\n## Final Answer Shape\n\nDefault section order:\n\n1. `Question Restatement`\n2. `Short Answer`\n3. `Key Findings`\n4. `Cross-Source Notes`\n5. `Uncertainties or Limits`\n6. `Sources`\n7. `Explain Why`\n\nFor predictive or outlook questions, split `Verified Facts` and `Inference`.\n\n## Minimal Example\n\nInput:\n\n- `/net-deep-research Is Bun production-ready for large Next.js deployments in 2026?`\n\nExpected behavior:\n\n- normalize the query\n- compare official docs, releases, and strong independent references\n- resolve version or deployment-scope conflicts\n- answer with evidence and uncertainty\n- if external sources were used, submit the default minimal structured feedback record\n\n## References\n\nDetailed implementation rules live here:\n\n- `references/feedback-contract.md` — full `research-feedback` and `offnet-analysis` contract\n- `references/source-scoring.md` — backend reputation layer and 6-dimension source scoring\n- `references/research-playbook.md` — research rounds, query planning, routing, and stop rules\n- `references/writing-rules.md` — output format, `Explain Why`, and writing constraints\n\nRead the relevant reference file before using its corresponding subsystem.\n\nFile v1.0.7:_meta.json\n\n{\n  \"ownerId\": \"kn76ts9v9tgsgadm8pww346n6h836dvn\",\n  \"slug\": \"net-deep-research\",\n  \"version\": \"1.0.7\",\n  \"publishedAt\": 1785404862493\n}\n\nFile v1.0.7:references/feedback-contract.md\n\n# Feedback Contract\n\n## Default Public Flow\n\nUse backend feedback only when external sources were actually fetched and used.\n\nDefault rule:\n\n- send `POST /v1/research-feedback`\n- do not send `query`\n- do not send `final_answer`\n- do not send `offnet-analysis`\n\nDefault payload keeps only the minimum structured evidence layer:\n\n- `payload_version`\n- `session_id`\n- `sources`\n- `claims`\n- `claim_evidence_edges`\n- `provenance_edges` when applicable\n- `contradictions` when applicable\n- `query_normalization`\n- `session_confidence`\n- `preference_blob`\n\n## High-Sensitivity Mode\n\nUse only when the user explicitly requests a diagnostic path.\n\nThen you may:\n\n- call `POST /v1/offnet-analysis`\n- or send explicit full `research-feedback`\n- include `query` or `final_answer` only when the requested diagnostic actually needs them\n\n## research-feedback Example\n\n```json\n{\n  \"payload_version\": \"v2\",\n  \"session_id\": \"7b54f4ff-9f83-45e5-9724-7ef8d836a7dd\",\n  \"sources\": [\n    {\n      \"source_id\": \"src_001\",\n      \"url\": \"https://react.dev/blog/2024/12/05/react-19\",\n      \"domain\": \"react.dev\",\n      \"title\": \"React 19 Release\",\n      \"content_summary\": \"Official release notes covering React 19 features and rollout.\",\n      \"topic_tags\": [\"react\", \"release\"],\n      \"accessible\": true,\n      \"http_status\": 200,\n      \"content_type\": \"official_blog\",\n      \"content_date\": \"2024-12-05\",\n      \"content_age_days\": 220,\n      \"impersonation_risk\": 0.0,\n      \"has_paywall\": false,\n      \"has_login_wall\": false,\n      \"document_form\": \"release_note\",\n      \"is_official_like\": true,\n      \"structured_markers\": [\"date\", \"version\"],\n      \"is_derivative\": false,\n      \"selected_as_evidence\": true,\n      \"cited_in_final\": true,\n      \"citation_count\": 2,\n      \"contribution_weight\": 0.4,\n      \"support_claim_ids\": [\"c1\"],\n      \"discard_reason\": null\n    }\n  ],\n  \"claims\": [\n    {\n      \"claim_id\": \"c1\",\n      \"text\": \"React 19 is officially released and documented by react.dev\",\n      \"subject\": \"React 19\",\n      \"action\": \"is officially released\",\n      \"time\": \"December 2024\",\n      \"numeric_facts\": [],\n      \"supported_by\": [\"src_001\"]\n    }\n  ],\n  \"claim_evidence_edges\": [\n    {\n      \"claim_id\": \"c1\",\n      \"source_id\": \"src_001\",\n      \"stance\": \"support\",\n      \"evidence_snippet\": \"React 19 is now stable. Released on December 5, 2024.\",\n      \"support_score\": 0.92,\n      \"source_tier\": \"primary\",\n      \"trace_depth\": 0,\n      \"supported_slots\": [\"subject\", \"action\", \"time\"],\n      \"snippet_span_type\": \"original_sentence\",\n      \"numeric_facts\": [],\n      \"used_in_final\": true\n    }\n  ],\n  \"provenance_edges\": [],\n  \"contradictions\": [],\n  \"query_normalization\": {\n    \"query_category\": \"technical_framework_selection\",\n    \"topic_tags\": [\"software_tools\", \"engineering\"]\n  },\n  \"session_confidence\": 0.75,\n  \"preference_blob\": {\n    \"query_category\": \"technical_framework_selection\",\n    \"source_usefulness_ratings\": {\n      \"src_001\": 0.9\n    },\n    \"answer_quality_gap\": \"SSR production performance was not independently verified beyond the official announcement\"\n  }\n}\n```\n\n## offnet-analysis Example\n\n```json\n{\n  \"payload_version\": \"v2\",\n  \"analysis_mode\": \"offnet\",\n  \"session_id\": \"d4d15b31-a418-4278-a6d1-f0cebf6a1c4b\",\n  \"query\": \"optional raw query only in explicit diagnostic mode\",\n  \"answer_text\": \"full answer text only in explicit diagnostic mode\",\n  \"claims\": [\n    {\n      \"claim_id\": \"c1\",\n      \"text\": \"one concrete claim extracted from the answer\",\n      \"supporting_evidence\": [\"support actually present inside the answer text\"],\n      \"source_basis\": [\"official source\"],\n      \"confidence\": 0.72,\n      \"risk_flags\": []\n    }\n  ],\n  \"answer_signals\": {\n    \"has_external_citations\": false,\n    \"has_uncertainty_disclosure\": true,\n    \"has_counterarguments\": false,\n    \"has_structured_reasoning\": true\n  }\n}\n```\n\n## Hard Rules\n\n### Raw JSON\n\n- send raw JSON only\n- no prose\n- no Markdown fences in the actual request body\n- no trailing commas\n- always send `\"payload_version\": \"v2\"`\n\n### Identifier Rules\n\n- `source_id` uses `src_001`, `src_002`, ...\n- `claim_id` uses `c1`, `c2`, ...\n- all cross-references must point to existing ids\n\n### Structural Rules\n\n- when `claims` is non-empty, `claim_evidence_edges` must be explicitly present\n- `claim_evidence_edges[*].stance` only: `support`, `oppose`, `partial`\n- `claim_evidence_edges[*].source_tier` only: `primary`, `secondary`, `tertiary`\n- `provenance_edges[*].relation` only: `derived_from`\n- `domain` must be a bare hostname, not a full URL\n\n### Source Rules\n\n- mandatory v2 source fields: `content_type`, `document_form`, `is_official_like`, `structured_markers`, `is_derivative`\n- `content_type` only: `official_docs`, `official_blog`, `third_party`, `forum`, `social`, `null`\n- `document_form` only: `pdf`, `official_notice`, `policy_page`, `release_note`, `spec_page`, `table_page`, `article_page`, `other`\n- `structured_markers` only: `date`, `version`, `identifier`, `table`\n- never emit `structured_markers: []`\n\n### Claim Rules\n\n- every claim must include `subject` and `action`\n- every claim must also include at least one of:\n  - `time`\n  - `location`\n  - `number`\n  - `version_or_policy_name`\n\n### Evidence Rules\n\n- `evidence_snippet`, `supported_slots`, and `snippet_span_type` are mandatory\n- `supported_slots` only:\n  - `subject`\n  - `action`\n  - `time`\n  - `location`\n  - `number`\n  - `version_or_policy_name`\n- `snippet_span_type` only:\n  - `original_sentence`\n  - `summary`\n  - `table_cell`\n  - `title`\n\n### Numeric Sanitization Gate\n\n- symbolic comparators are forbidden\n- allowed comparator enums only:\n  - `eq`\n  - `gt`\n  - `gte`\n  - `lt`\n  - `lte`\n  - `range`\n  - `approx`\n- if a claim or evidence edge declares `number`, its `numeric_facts` must be present and fully formed\n\n### Evidence Quality Gate\n\n- `evidence_snippet` must be the most direct passage actually seen\n- do not use a page title as snippet unless the title itself is decisive evidence\n- if a source is derivative and the parent source is identifiable, add `provenance_edges`\n- do not assign a high `support_score` to a snippet that does not directly ground the claim\n\n## preference_blob Contract\n\nThis field distinguishes LLM utility signals from explicit user votes.\n\nRequired shape:\n\n- `query_category`\n- `source_usefulness_ratings`\n- `answer_quality_gap`\n\nUsefulness scoring guide:\n\n- `0.9-1.0` -> direct primary source confirming the core conclusion\n- `0.7-0.9` -> strong independent support\n- `0.5-0.7` -> useful secondary support\n- `0.3-0.5` -> weak support\n- `0.0-0.3` -> should not be relied on\n\nFile v1.0.7:references/research-playbook.md\n\n# Research Playbook\n\n## Runtime Split\n\n### Runtime Online\n\n- health-check backend first\n- use backend-assisted source discovery\n- security-check URLs before fetch\n- send minimal structured feedback only when external sources were actually used\n\n### Runtime Fallback\n\n- skip all backend API calls\n- keep the same research discipline\n- never expose backend failure to the user\n\n## Phase 0: Intent Decomposition\n\nWhen online, decompose the user request into `2-5` angles.\n\nEach angle should contain:\n\n- `angle`\n- `query`\n- `category`\n- `min_score`\n\nUse search keywords, not a copy-paste of the raw user question.\n\n## Question Normalization\n\nAlways normalize before researching.\n\nMinimum fields:\n\n- `raw_query`\n- `normalized_query`\n- `subject`\n- `intent_type`\n- `query_category`\n\nOptional fields only when clearly supported:\n\n- `time_scope`\n- `region_scope`\n- `version_scope`\n- `target_capability`\n\n## Tracks\n\nChoose one `primary_track`. Add `supporting_tracks` only when they materially help.\n\n- `Track 1`: current fact check\n- `Track 2`: capability or compatibility verification\n- `Track 3`: implementation or how-to\n- `Track 4`: comparison, selection, or policy confirmation\n\n## Subquestions And Claims\n\n- build up to `6` subquestions\n- split them into:\n  - `core_subquestions`\n  - `verification_subquestions`\n  - `countercheck_subquestions`\n- derive at most `3` critical claims\n\n## Source Discovery\n\n### Security Check\n\nBefore any online WebFetch, send candidate URLs to:\n\n```text\nPOST https://www.shoggoth.vip/v1/sources/check\n```\n\nRules:\n\n- `safe: true` -> may fetch\n- `safe: false` -> do not fetch\n- if the endpoint is unavailable -> use conservative fallback and fetch only known high-reputation domains\n\n### Three Paths\n\nRun all three when online:\n\n- `Path A`: targeted backend source search\n- `Path B`: extended backend source search\n- `Path C`: native WebSearch for independent coverage and discovery\n\nPath C always runs.\n\n## Research Rounds\n\nUse staged research:\n\n### Round 1: Primary Evidence\n\n- establish strongest direct evidence\n\n### Round 2: Independent Verification\n\n- confirm scope, timing, version, or limits\n\n### Round 3: Conflict Resolution\n\nRun only if:\n\n- strong sources disagree\n- version or timing matters\n- region or plan differences may explain the gap\n\n### Round 4: Salvage Pass\n\nRun only if a decisive gap still remains after Round 3.\n\n## Stop Rules\n\nDefaults:\n\n- `standard_search_rounds = 3`\n- `max_search_rounds = 4`\n- `max_key_claims = 3`\n\nStop when:\n\n- each core claim has direct support or a clear evidence gap\n- no major unresolved conflict blocks the answer\n- uncertainty is explicit\n\nHard stop:\n\n- after Round 4, stop researching\n- if a claim is unresolved, say so plainly instead of opening more loops\n\n## Query Planning\n\nPlan queries per claim, not just per question.\n\nCore slots:\n\n- `direct_query`\n- `official_query`\n- `release_query`\n- `contradiction_query`\n\nTrack-specific slot:\n\n- `Track 1` -> `recent_query`\n- `Track 2` -> `compatibility_query`\n- `Track 3` -> `implementation_query`\n- `Track 4` -> `comparison_query` or `policy_query`\n\n## Source Routing\n\nPrefer source families, not fixed websites.\n\nStrong families:\n\n- official docs\n- official sites\n- official changelogs and releases\n- official repositories\n- package registries\n- standards sites\n- government and institutional sites\n- stable technical references\n\n## Conflict Handling\n\nIf support and opposition coexist, explicitly model:\n\n- `claim`\n- `supporting_evidence`\n- `opposing_evidence`\n- `conflict_cause`\n- `current_best_explanation`\n- `residual_uncertainty`\n\nAllowed conflict causes:\n\n- version difference\n- timing difference\n- region difference\n- plan tier difference\n- wording ambiguity\n- evidence insufficiency\n\n## Evidence Map\n\nBefore writing, build:\n\n- `question_restatement`\n- `primary_track`\n- `supporting_tracks`\n- `normalized_question`\n- `angles`\n- `subquestions`\n- `claims`\n- `evidence_by_claim`\n- `conflicts`\n- `uncertainties`\n- `final_conclusions`\n- `answer_outline`\n\nFor predictive or outlook questions, also separate:\n\n- `verified_facts`\n- `inference`\n\n## Minimal Example\n\nInput:\n\n- `/net-deep-research What is the best agent framework right now, and use it to help me design a game?`\n\nBehavior:\n\n- decompose into at least two angles\n- treat framework choice as primary and implementation as supporting\n- compare official docs, repos, and stable references\n- resolve maturity or capability conflicts\n- give one recommendation with explicit limits\n\nFile v1.0.7:references/source-scoring.md\n\n# Source Scoring\n\nUse two layers together when backend is online:\n\n1. backend reputation\n2. built-in 6-dimension scoring\n\nIn runtime fallback, use only the built-in layer.\n\n## Layer 1: Backend Reputation\n\nQuery:\n\n```text\nGET https://www.shoggoth.vip/v1/sources?domain=<hostname>\n```\n\nDecision guide:\n\n| Score Range | Confidence | Action |\n| --- | --- | --- |\n| `>= 1.5` | `>= 0.7` | prefer as primary reference |\n| `>= 1.0` | `>= 0.5` | normal weight |\n| `>= 0.5` | `>= 0.3` | cautious, requires stronger cross-check |\n| `< 0.5` | any | low priority, use only if needed |\n| any | `< 0.3` | downgrade to neutral |\n\nIf `found: false`, treat the domain as neutral and unverified.\n\n## Layer 2: Built-in 6-Dimension Scoring\n\nScore each dimension `0-2`. Total range `0-12`.\n\n### 1. authority\n\n| Condition | Score |\n| --- | --- |\n| official domain / official org repo / `.gov` / `.edu` / standards body | `2` |\n| curated technical reference / official registry / verified maintainer / strong tech publication | `1` |\n| otherwise | `0` |\n\n### 2. stability\n\nPrefer automated scoring:\n\n```text\npython3 tools/score_stability.py --json \"<url>\"\n```\n\nManual fallback:\n\n| Condition | Score |\n| --- | --- |\n| docs, permalinks, release pages, standards pages, registry pages | `2` |\n| official blog post, reputable outlet, third-party technical blog | `1` |\n| social post, personal blog, session URL, temporary token URL | `0` |\n\n### 3. accessibility\n\n| Condition | Score |\n| --- | --- |\n| public and readable without barriers | `2` |\n| partial barrier such as free account or mild geo restriction | `1` |\n| login wall / paywall / captcha gate | `0` |\n\n### 4. freshness\n\nScore relative to the question's time scope.\n\n| Condition | Score |\n| --- | --- |\n| clearly within the relevant time window | `2` |\n| probably current but partially ambiguous | `1` |\n| clearly outdated or superseded | `0` |\n\n### 5. relevance\n\n| Condition | Score |\n| --- | --- |\n| directly addresses the claim | `2` |\n| one inference step required | `1` |\n| tangential or unrelated | `0` |\n\n### 6. primacy\n\n| Condition | Score |\n| --- | --- |\n| original source | `2` |\n| useful secondary analysis | `1` |\n| tertiary repost / summary-only / discussion echo | `0` |\n\n## Shortcuts\n\n- verified maintainer social post: authority stays low unless independently grounded\n- content farm or AI slop: reject immediately\n- official GitHub release page of the exact project: strong shortcut for authority, stability, and primacy\n\n## Minimum Rules\n\n- do not use a source below `5/12` as key evidence\n- every important claim needs at least one source with `authority >= 1` and `relevance >= 1`\n- every core conclusion should be anchored to at least one `primacy = 2` source whenever possible\n\n## Output Rule\n\nWhen runtime online:\n\n- show backend reputation in `Sources`\n\nWhen runtime fallback:\n\n- show the 6-dimension breakdown in `Sources`\n\nFile v1.0.7:references/writing-rules.md\n\n# Writing Rules\n\n## Default Answer Shape\n\nDefault order:\n\n1. `Question Restatement`\n2. `Short Answer`\n3. `Key Findings`\n4. `Cross-Source Notes`\n5. `Uncertainties or Limits`\n6. `Sources`\n7. `Explain Why`\n\nFor predictive or outlook questions:\n\n1. `Question Restatement`\n2. `Short Answer`\n3. `Verified Facts`\n4. `Inference`\n5. `Cross-Source Notes`\n6. `Uncertainties or Limits`\n7. `Sources`\n8. `Explain Why`\n\n## Core Writing Rules\n\n### Question Restatement\n\n- restate the request in user-visible capability language\n- avoid internal system jargon\n\n### Short Answer\n\n- answer directly\n- keep it concise\n\n### Key Findings\n\n- separate confirmed facts from implications\n- prioritize official or primary evidence\n\n### Cross-Source Notes\n\n- explain agreement\n- explain disagreement\n- surface version, timing, region, or plan differences when relevant\n\n### Uncertainties or Limits\n\n- state what could not be verified\n- do not hide missing evidence\n\n### Sources\n\n- list the most useful sources, not every weak result\n- when online, include backend reputation where available\n- when fallback, include the 6-dimension breakdown\n\n## Explain Why\n\nPosition:\n\n- immediately after `Sources`\n\nLength:\n\n- normally 2 short sentences or 2 short lines\n- use a 3rd only if one extra limitation is necessary\n\nThree short rules:\n\n1. sentence 1 explains the real adoption basis from this session\n2. sentence 2 explains the main limitation when it is real\n3. never expose backend mechanics, formulas, thresholds, or pipeline internals\n\nAllowed basis signals:\n\n- domains actually cited\n- backend reputation or confidence already returned\n- citation verification status\n- evidence recording status\n- contradiction count\n- official-source coverage\n- independent source agreement\n\nForbidden style:\n\n- generic filler like \"based on many sources\"\n- long motivational prose\n- fake precision\n- templated trust claims detached from session evidence\n\n## User-Facing Boundary\n\nNever expose:\n\n- backend health checks\n- routing and retry details\n- payloads and raw logs\n- internal diagnostics\n- transport status\n\nOnly expose:\n\n- research findings\n- evidence-backed uncertainty\n- source reputation signals that help the user judge trust\n\nFile v1.0.7:skill-card.md\n\n## Description: <br>\nNet Deep Research helps an agent perform explicit, multi-round web research with source reputation scoring, URL safety checks, conflict handling, and structured evidence feedback. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[h4444433333](https://clawhub.ai/user/h4444433333) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nExternal users and developers invoke this skill with `/net-deep-research` when they need an agent to research current or source-sensitive questions across multiple public web sources, compare evidence, explain uncertainty, and return a cited Markdown answer. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill can transmit research-related source domains, URLs, cited-source metadata, evidence links, query classification, and quality signals to a third-party backend. <br>\nMitigation: Use the skill only when that data sharing is acceptable, and avoid private or internal URLs and sensitive investigations unless the disclosure boundary is approved. <br>\nRisk: Explicit high-sensitivity diagnostics or vote actions may send raw query text, full answer text, or trust and untrust votes when separately requested. <br>\nMitigation: Keep those modes opt-in and confirm the user intends to share the additional diagnostic or vote data before using them. <br>\n\n\n## Reference(s): <br>\n- [Research Playbook](artifact/references/research-playbook.md) <br>\n- [Feedback Contract](artifact/references/feedback-contract.md) <br>\n- [Source Scoring](artifact/references/source-scoring.md) <br>\n- [Writing Rules](artifact/references/writing-rules.md) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, guidance, API calls] <br>\n**Output Format:** [Markdown answer with source notes, uncertainty, and optional structured JSON feedback to the backend] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Triggered only by `/net-deep-research`; default feedback excludes raw query text and final answer text.] <br>\n\n## Skill Version(s): <br>\n1.0.7 (source: server release evidence and artifact _meta.json) <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.6: 8 files, 14848 bytes\n\nFiles: _meta.json (136b), references/feedback-contract.md (6587b), references/research-playbook.md (4466b), references/source-scoring.md (2881b), references/writing-rules.md (2194b), skill-card.md (2302b), SKILL.md (5032b), tools/score_stability.py (11048b)\n\nFile v1.0.6:SKILL.md\n\n---\nname: net-deep-research\ndescription: Perform deep multi-source internet research before answering, integrated with the remote backend API for source reputation scoring, security checks, and structured evidence feedback. This skill can access the public web, call an external backend, perform URL safety checks, and submit a minimal structured research record. Trigger only when the user explicitly invokes /net-deep-research.\n---\n\n# Net Deep Research\n\nThis skill uses the remote backend API at `https://www.shoggoth.vip`.\n\n## Capability Summary\n\n- accesses the public web for research\n- calls an external backend API\n- performs URL safety checks before fetching\n- sends a minimal structured research record after external-source runs\n- can send explicit high-sensitivity diagnostics or explicit user votes only when separately requested\n\n## User Notice\n\n- During the default feedback workflow, this skill may transmit cited source metadata, structured evidence links, query classification, and usefulness signals to an external backend for source auditing and quality analysis.\n- Raw query text, full answer text, offnet answer audits, and trust/untrust votes are not part of the default public flow; they are sent only when the user explicitly requests a high-sensitivity diagnostic or an explicit vote action.\n\n## Trigger\n\nThis skill is triggered only by the explicit `/net-deep-research` command.\n\nIf the user message starts with `/net-deep-research`:\n\n- remove the matched command prefix\n- trim whitespace\n- treat the remainder as the actual research question\n\nIf the user does not use `/net-deep-research`, do not activate this skill from broad natural-language cues alone.\n\n## Runtime\n\nStart by checking `GET https://www.shoggoth.vip/health`.\n\n- `200 OK` -> `Runtime Online`\n- unreachable or timeout (> 3s) -> `Runtime Fallback`\n\nFallback principle: backend failure must not block user answer; fallback silently.\n\nIn `Runtime Fallback`, keep the same research discipline but skip all backend API calls.\n\n## Research Workflow\n\nWhen this skill is triggered, do not answer immediately.\n\nRun this workflow:\n\n1. normalize the query into stable structured fields\n2. restate the question in one sentence\n3. decompose into multiple angles or subquestions\n4. choose one primary research track and supporting tracks only when needed\n5. discover sources through backend-assisted search when online, plus native web search as independent coverage\n6. security-check all candidate URLs before fetching when online\n7. research in multiple rounds and compare sources across angles\n8. resolve conflicts or state them plainly\n9. write the answer from a structured evidence map\n10. if external sources were actually used, send the default minimal structured feedback record\n\nKeep the workflow principle short and stable:\n\n- multi-round\n- multi-angle\n- conflict-aware\n\n## Feedback Boundary\n\nDefault public flow:\n\n- if external sources were fetched and used -> send `POST /v1/research-feedback`\n- if no external sources were fetched -> skip backend record by default\n- do not send raw query text, full answer text, or `offnet-analysis` in the default public flow\n\nExplicit high-sensitivity mode:\n\n- only when the user explicitly requests a diagnostic path\n- may use `POST /v1/offnet-analysis`\n- may include raw query text or full answer text when the explicit diagnostic actually requires them\n\nExplicit vote mode:\n\n- `POST /v1/sources/vote` is not a default closing step\n- only use it when the user explicitly wants to submit a trust/untrust vote\n\n## User-Facing Output Constraints\n\n- never expose backend health checks, routing, retries, logs, payloads, or transport diagnostics\n- only surface user-relevant research findings, source evidence, uncertainty, and source reputation signals\n- do not narrate the internal workflow step by step in the final answer\n\n## Final Answer Shape\n\nDefault section order:\n\n1. `Question Restatement`\n2. `Short Answer`\n3. `Key Findings`\n4. `Cross-Source Notes`\n5. `Uncertainties or Limits`\n6. `Sources`\n7. `Explain Why`\n\nFor predictive or outlook questions, split `Verified Facts` and `Inference`.\n\n## Minimal Example\n\nInput:\n\n- `/net-deep-research Is Bun production-ready for large Next.js deployments in 2026?`\n\nExpected behavior:\n\n- normalize the query\n- compare official docs, releases, and strong independent references\n- resolve version or deployment-scope conflicts\n- answer with evidence and uncertainty\n- if external sources were used, submit the default minimal structured feedback record\n\n## References\n\nDetailed implementation rules live here:\n\n- `references/feedback-contract.md` — full `research-feedback` and `offnet-analysis` contract\n- `references/source-scoring.md` — backend reputation layer and 6-dimension source scoring\n- `references/research-playbook.md` — research rounds, query planning, routing, and stop rules\n- `references/writing-rules.md` — output format, `Explain Why`, and writing constraints\n\nRead the relevant reference file before using its corresponding subsystem.\n\nFile v1.0.6:_meta.json\n\n{\n  \"ownerId\": \"kn76ts9v9tgsgadm8pww346n6h836dvn\",\n  \"slug\": \"net-deep-research\",\n  \"version\": \"1.0.6\",\n  \"publishedAt\": 1785400104625\n}\n\nFile v1.0.6:references/feedback-contract.md\n\n# Feedback Contract\n\n## Default Public Flow\n\nUse backend feedback only when external sources were actually fetched and used.\n\nDefault rule:\n\n- send `POST /v1/research-feedback`\n- do not send `query`\n- do not send `final_answer`\n- do not send `offnet-analysis`\n\nDefault payload keeps only the minimum structured evidence layer:\n\n- `payload_version`\n- `session_id`\n- `sources`\n- `claims`\n- `claim_evidence_edges`\n- `provenance_edges` when applicable\n- `contradictions` when applicable\n- `query_normalization`\n- `session_confidence`\n- `preference_blob`\n\n## High-Sensitivity Mode\n\nUse only when the user explicitly requests a diagnostic path.\n\nThen you may:\n\n- call `POST /v1/offnet-analysis`\n- or send explicit full `research-feedback`\n- include `query` or `final_answer` only when the requested diagnostic actually needs them\n\n## research-feedback Example\n\n```json\n{\n  \"payload_version\": \"v2\",\n  \"session_id\": \"7b54f4ff-9f83-45e5-9724-7ef8d836a7dd\",\n  \"sources\": [\n    {\n      \"source_id\": \"src_001\",\n      \"url\": \"https://react.dev/blog/2024/12/05/react-19\",\n      \"domain\": \"react.dev\",\n      \"title\": \"React 19 Release\",\n      \"content_summary\": \"Official release notes covering React 19 features and rollout.\",\n      \"topic_tags\": [\"react\", \"release\"],\n      \"accessible\": true,\n      \"http_status\": 200,\n      \"content_type\": \"official_blog\",\n      \"content_date\": \"2024-12-05\",\n      \"content_age_days\": 220,\n      \"impersonation_risk\": 0.0,\n      \"has_paywall\": false,\n      \"has_login_wall\": false,\n      \"document_form\": \"release_note\",\n      \"is_official_like\": true,\n      \"structured_markers\": [\"date\", \"version\"],\n      \"is_derivative\": false,\n      \"selected_as_evidence\": true,\n      \"cited_in_final\": true,\n      \"citation_count\": 2,\n      \"contribution_weight\": 0.4,\n      \"support_claim_ids\": [\"c1\"],\n      \"discard_reason\": null\n    }\n  ],\n  \"claims\": [\n    {\n      \"claim_id\": \"c1\",\n      \"text\": \"React 19 is officially released and documented by react.dev\",\n      \"subject\": \"React 19\",\n      \"action\": \"is officially released\",\n      \"time\": \"December 2024\",\n      \"numeric_facts\": [],\n      \"supported_by\": [\"src_001\"]\n    }\n  ],\n  \"claim_evidence_edges\": [\n    {\n      \"claim_id\": \"c1\",\n      \"source_id\": \"src_001\",\n      \"stance\": \"support\",\n      \"evidence_snippet\": \"React 19 is now stable. Released on December 5, 2024.\",\n      \"support_score\": 0.92,\n      \"source_tier\": \"primary\",\n      \"trace_depth\": 0,\n      \"supported_slots\": [\"subject\", \"action\", \"time\"],\n      \"snippet_span_type\": \"original_sentence\",\n      \"numeric_facts\": [],\n      \"used_in_final\": true\n    }\n  ],\n  \"provenance_edges\": [],\n  \"contradictions\": [],\n  \"query_normalization\": {\n    \"query_category\": \"technical_framework_selection\",\n    \"topic_tags\": [\"software_tools\", \"engineering\"]\n  },\n  \"session_confidence\": 0.75,\n  \"preference_blob\": {\n    \"query_category\": \"technical_framework_selection\",\n    \"source_usefulness_ratings\": {\n      \"src_001\": 0.9\n    },\n    \"answer_quality_gap\": \"SSR production performance was not independently verified beyond the official announcement\"\n  }\n}\n```\n\n## offnet-analysis Example\n\n```json\n{\n  \"payload_version\": \"v2\",\n  \"analysis_mode\": \"offnet\",\n  \"session_id\": \"d4d15b31-a418-4278-a6d1-f0cebf6a1c4b\",\n  \"query\": \"optional raw query only in explicit diagnostic mode\",\n  \"answer_text\": \"full answer text only in explicit diagnostic mode\",\n  \"claims\": [\n    {\n      \"claim_id\": \"c1\",\n      \"text\": \"one concrete claim extracted from the answer\",\n      \"supporting_evidence\": [\"support actually present inside the answer text\"],\n      \"source_basis\": [\"official source\"],\n      \"confidence\": 0.72,\n      \"risk_flags\": []\n    }\n  ],\n  \"answer_signals\": {\n    \"has_external_citations\": false,\n    \"has_uncertainty_disclosure\": true,\n    \"has_counterarguments\": false,\n    \"has_structured_reasoning\": true\n  }\n}\n```\n\n## Hard Rules\n\n### Raw JSON\n\n- send raw JSON only\n- no prose\n- no Markdown fences in the actual request body\n- no trailing commas\n- always send `\"payload_version\": \"v2\"`\n\n### Identifier Rules\n\n- `source_id` uses `src_001`, `src_002`, ...\n- `claim_id` uses `c1`, `c2`, ...\n- all cross-references must point to existing ids\n\n### Structural Rules\n\n- when `claims` is non-empty, `claim_evidence_edges` must be explicitly present\n- `claim_evidence_edges[*].stance` only: `support`, `oppose`, `partial`\n- `claim_evidence_edges[*].source_tier` only: `primary`, `secondary`, `tertiary`\n- `provenance_edges[*].relation` only: `derived_from`\n- `domain` must be a bare hostname, not a full URL\n\n### Source Rules\n\n- mandatory v2 source fields: `content_type`, `document_form`, `is_official_like`, `structured_markers`, `is_derivative`\n- `content_type` only: `official_docs`, `official_blog`, `third_party`, `forum`, `social`, `null`\n- `document_form` only: `pdf`, `official_notice`, `policy_page`, `release_note`, `spec_page`, `table_page`, `article_page`, `other`\n- `structured_markers` only: `date`, `version`, `identifier`, `table`\n- never emit `structured_markers: []`\n\n### Claim Rules\n\n- every claim must include `subject` and `action`\n- every claim must also include at least one of:\n  - `time`\n  - `location`\n  - `number`\n  - `version_or_policy_name`\n\n### Evidence Rules\n\n- `evidence_snippet`, `supported_slots`, and `snippet_span_type` are mandatory\n- `supported_slots` only:\n  - `subject`\n  - `action`\n  - `time`\n  - `location`\n  - `number`\n  - `version_or_policy_name`\n- `snippet_span_type` only:\n  - `original_sentence`\n  - `summary`\n  - `table_cell`\n  - `title`\n\n### Numeric Sanitization Gate\n\n- symbolic comparators are forbidden\n- allowed comparator enums only:\n  - `eq`\n  - `gt`\n  - `gte`\n  - `lt`\n  - `lte`\n  - `range`\n  - `approx`\n- if a claim or evidence edge declares `number`, its `numeric_facts` must be present and fully formed\n\n### Evidence Quality Gate\n\n- `evidence_snippet` must be the most direct passage actually seen\n- do not use a page title as snippet unless the title itself is decisive evidence\n- if a source is derivative and the parent source is identifiable, add `provenance_edges`\n- do not assign a high `support_score` to a snippet that does not directly ground the claim\n\n## preference_blob Contract\n\nThis field distinguishes LLM utility signals from explicit user votes.\n\nRequired shape:\n\n- `query_category`\n- `source_usefulness_ratings`\n- `answer_quality_gap`\n\nUsefulness scoring guide:\n\n- `0.9-1.0` -> direct primary source confirming the core conclusion\n- `0.7-0.9` -> strong independent support\n- `0.5-0.7` -> useful secondary support\n- `0.3-0.5` -> weak support\n- `0.0-0.3` -> should not be relied on\n\nFile v1.0.6:references/research-playbook.md\n\n# Research Playbook\n\n## Runtime Split\n\n### Runtime Online\n\n- health-check backend first\n- use backend-assisted source discovery\n- security-check URLs before fetch\n- send minimal structured feedback only when external sources were actually used\n\n### Runtime Fallback\n\n- skip all backend API calls\n- keep the same research discipline\n- never expose backend failure to the user\n\n## Phase 0: Intent Decomposition\n\nWhen online, decompose the user request into `2-5` angles.\n\nEach angle should contain:\n\n- `angle`\n- `query`\n- `category`\n- `min_score`\n\nUse search keywords, not a copy-paste of the raw user question.\n\n## Question Normalization\n\nAlways normalize before researching.\n\nMinimum fields:\n\n- `raw_query`\n- `normalized_query`\n- `subject`\n- `intent_type`\n- `query_category`\n\nOptional fields only when clearly supported:\n\n- `time_scope`\n- `region_scope`\n- `version_scope`\n- `target_capability`\n\n## Tracks\n\nChoose one `primary_track`. Add `supporting_tracks` only when they materially help.\n\n- `Track 1`: current fact check\n- `Track 2`: capability or compatibility verification\n- `Track 3`: implementation or how-to\n- `Track 4`: comparison, selection, or policy confirmation\n\n## Subquestions And Claims\n\n- build up to `6` subquestions\n- split them into:\n  - `core_subquestions`\n  - `verification_subquestions`\n  - `countercheck_subquestions`\n- derive at most `3` critical claims\n\n## Source Discovery\n\n### Security Check\n\nBefore any online WebFetch, send candidate URLs to:\n\n```text\nPOST https://www.shoggoth.vip/v1/sources/check\n```\n\nRules:\n\n- `safe: true` -> may fetch\n- `safe: false` -> do not fetch\n- if the endpoint is unavailable -> use conservative fallback and fetch only known high-reputation domains\n\n### Three Paths\n\nRun all three when online:\n\n- `Path A`: targeted backend source search\n- `Path B`: extended backend source search\n- `Path C`: native WebSearch for independent coverage and discovery\n\nPath C always runs.\n\n## Research Rounds\n\nUse staged research:\n\n### Round 1: Primary Evidence\n\n- establish strongest direct evidence\n\n### Round 2: Independent Verification\n\n- confirm scope, timing, version, or limits\n\n### Round 3: Conflict Resolution\n\nRun only if:\n\n- strong sources disagree\n- version or timing matters\n- region or plan differences may explain the gap\n\n### Round 4: Salvage Pass\n\nRun only if a decisive gap still remains after Round 3.\n\n## Stop Rules\n\nDefaults:\n\n- `standard_search_rounds = 3`\n- `max_search_rounds = 4`\n- `max_key_claims = 3`\n\nStop when:\n\n- each core claim has direct support or a clear evidence gap\n- no major unresolved conflict blocks the answer\n- uncertainty is explicit\n\nHard stop:\n\n- after Round 4, stop researching\n- if a claim is unresolved, say so plainly instead of opening more loops\n\n## Query Planning\n\nPlan queries per claim, not just per question.\n\nCore slots:\n\n- `direct_query`\n- `official_query`\n- `release_query`\n- `contradiction_query`\n\nTrack-specific slot:\n\n- `Track 1` -> `recent_query`\n- `Track 2` -> `compatibility_query`\n- `Track 3` -> `implementation_query`\n- `Track 4` -> `comparison_query` or `policy_query`\n\n## Source Routing\n\nPrefer source families, not fixed websites.\n\nStrong families:\n\n- official docs\n- official sites\n- official changelogs and releases\n- official repositories\n- package registries\n- standards sites\n- government and institutional sites\n- stable technical references\n\n## Conflict Handling\n\nIf support and opposition coexist, explicitly model:\n\n- `claim`\n- `supporting_evidence`\n- `opposing_evidence`\n- `conflict_cause`\n- `current_best_explanation`\n- `residual_uncertainty`\n\nAllowed conflict causes:\n\n- version difference\n- timing difference\n- region difference\n- plan tier difference\n- wording ambiguity\n- evidence insufficiency\n\n## Evidence Map\n\nBefore writing, build:\n\n- `question_restatement`\n- `primary_track`\n- `supporting_tracks`\n- `normalized_question`\n- `angles`\n- `subquestions`\n- `claims`\n- `evidence_by_claim`\n- `conflicts`\n- `uncertainties`\n- `final_conclusions`\n- `answer_outline`\n\nFor predictive or outlook questions, also separate:\n\n- `verified_facts`\n- `inference`\n\n## Minimal Example\n\nInput:\n\n- `/net-deep-research What is the best agent framework right now, and use it to help me design a game?`\n\nBehavior:\n\n- decompose into at least two angles\n- treat framework choice as primary and implementation as supporting\n- compare official docs, repos, and stable references\n- resolve maturity or capability conflicts\n- give one recommendation with explicit limits\n\nFile v1.0.6:references/source-scoring.md\n\n# Source Scoring\n\nUse two layers together when backend is online:\n\n1. backend reputation\n2. built-in 6-dimension scoring\n\nIn runtime fallback, use only the built-in layer.\n\n## Layer 1: Backend Reputation\n\nQuery:\n\n```text\nGET https://www.shoggoth.vip/v1/sources?domain=<hostname>\n```\n\nDecision guide:\n\n| Score Range | Confidence | Action |\n| --- | --- | --- |\n| `>= 1.5` | `>= 0.7` | prefer as primary reference |\n| `>= 1.0` | `>= 0.5` | normal weight |\n| `>= 0.5` | `>= 0.3` | cautious, requires stronger cross-check |\n| `< 0.5` | any | low priority, use only if needed |\n| any | `< 0.3` | downgrade to neutral |\n\nIf `found: false`, treat the domain as neutral and unverified.\n\n## Layer 2: Built-in 6-Dimension Scoring\n\nScore each dimension `0-2`. Total range `0-12`.\n\n### 1. authority\n\n| Condition | Score |\n| --- | --- |\n| official domain / official org repo / `.gov` / `.edu` / standards body | `2` |\n| curated technical reference / official registry / verified maintainer / strong tech publication | `1` |\n| otherwise | `0` |\n\n### 2. stability\n\nPrefer automated scoring:\n\n```text\npython3 tools/score_stability.py --json \"<url>\"\n```\n\nManual fallback:\n\n| Condition | Score |\n| --- | --- |\n| docs, permalinks, release pages, standards pages, registry pages | `2` |\n| official blog post, reputable outlet, third-party technical blog | `1` |\n| social post, personal blog, session URL, temporary token URL | `0` |\n\n### 3. accessibility\n\n| Condition | Score |\n| --- | --- |\n| public and readable without barriers | `2` |\n| partial barrier such as free account or mild geo restriction | `1` |\n| login wall / paywall / captcha gate | `0` |\n\n### 4. freshness\n\nScore relative to the question's time scope.\n\n| Condition | Score |\n| --- | --- |\n| clearly within the relevant time window | `2` |\n| probably current but partially ambiguous | `1` |\n| clearly outdated or superseded | `0` |\n\n### 5. relevance\n\n| Condition | Score |\n| --- | --- |\n| directly addresses the claim | `2` |\n| one inference step required | `1` |\n| tangential or unrelated | `0` |\n\n### 6. primacy\n\n| Condition | Score |\n| --- | --- |\n| original source | `2` |\n| useful secondary analysis | `1` |\n| tertiary repost / summary-only / discussion echo | `0` |\n\n## Shortcuts\n\n- verified maintainer social post: authority stays low unless independently grounded\n- content farm or AI slop: reject immediately\n- official GitHub release page of the exact project: strong shortcut for authority, stability, and primacy\n\n## Minimum Rules\n\n- do not use a source below `5/12` as key evidence\n- every important claim needs at least one source with `authority >= 1` and `relevance >= 1`\n- every core conclusion should be anchored to at least one `primacy = 2` source whenever possible\n\n## Output Rule\n\nWhen runtime online:\n\n- show backend reputation in `Sources`\n\nWhen runtime fallback:\n\n- show the 6-dimension breakdown in `Sources`\n\nFile v1.0.6:references/writing-rules.md\n\n# Writing Rules\n\n## Default Answer Shape\n\nDefault order:\n\n1. `Question Restatement`\n2. `Short Answer`\n3. `Key Findings`\n4. `Cross-Source Notes`\n5. `Uncertainties or Limits`\n6. `Sources`\n7. `Explain Why`\n\nFor predictive or outlook questions:\n\n1. `Question Restatement`\n2. `Short Answer`\n3. `Verified Facts`\n4. `Inference`\n5. `Cross-Source Notes`\n6. `Uncertainties or Limits`\n7. `Sources`\n8. `Explain Why`\n\n## Core Writing Rules\n\n### Question Restatement\n\n- restate the request in user-visible capability language\n- avoid internal system jargon\n\n### Short Answer\n\n- answer directly\n- keep it concise\n\n### Key Findings\n\n- separate confirmed facts from implications\n- prioritize official or primary evidence\n\n### Cross-Source Notes\n\n- explain agreement\n- explain disagreement\n- surface version, timing, region, or plan differences when relevant\n\n### Uncertainties or Limits\n\n- state what could not be verified\n- do not hide missing evidence\n\n### Sources\n\n- list the most useful sources, not every weak result\n- when online, include backend reputation where available\n- when fallback, include the 6-dimension breakdown\n\n## Explain Why\n\nPosition:\n\n- immediately after `Sources`\n\nLength:\n\n- normally 2 short sentences or 2 short lines\n- use a 3rd only if one extra limitation is necessary\n\nThree short rules:\n\n1. sentence 1 explains the real adoption basis from this session\n2. sentence 2 explains the main limitation when it is real\n3. never expose backend mechanics, formulas, thresholds, or pipeline internals\n\nAllowed basis signals:\n\n- domains actually cited\n- backend reputation or confidence already returned\n- citation verification status\n- evidence recording status\n- contradiction count\n- official-source coverage\n- independent source agreement\n\nForbidden style:\n\n- generic filler like \"based on many sources\"\n- long motivational prose\n- fake precision\n- templated trust claims detached from session evidence\n\n## User-Facing Boundary\n\nNever expose:\n\n- backend health checks\n- routing and retry details\n- payloads and raw logs\n- internal diagnostics\n- transport status\n\nOnly expose:\n\n- research findings\n- evidence-backed uncertainty\n- source reputation signals that help the user judge trust\n\nFile v1.0.6:skill-card.md\n\n## Description: <br>\nPerforms deep multi-source internet research before answering, with public web access, external source reputation and URL safety checks, and structured evidence feedback. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[h4444433333](https://clawhub.ai/user/h4444433333) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nDevelopers and other users invoke /net-deep-research when they need a multi-round, conflict-aware web research answer with cited sources, uncertainty, and source reputation signals. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The external backend may receive research source metadata, claim summaries, query categories, and source-usefulness signals during /net-deep-research runs. <br>\nMitigation: Avoid using the skill for confidential investigations, private URLs, internal hosts, or links containing tokens unless the data-sharing behavior has been reviewed. <br>\nRisk: Research answers can still contain incorrect, incomplete, or time-sensitive conclusions even when sources are checked. <br>\nMitigation: Review the cited sources, uncertainty notes, and source reputation signals before relying on results for important decisions. <br>\n\n\n## Reference(s): <br>\n- [Feedback Contract](artifact/references/feedback-contract.md) <br>\n- [Research Playbook](artifact/references/research-playbook.md) <br>\n- [Source Scoring](artifact/references/source-scoring.md) <br>\n- [Writing Rules](artifact/references/writing-rules.md) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [Text, Markdown, Guidance] <br>\n**Output Format:** [Structured Markdown answer with cited sources, uncertainty notes, and an Explain Why section] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [May include source reputation or 6-dimension source-scoring notes when external sources are used.] <br>\n\n## Skill Version(s): <br>\n1.0.6 (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.0.5: 8 files, 14927 bytes\n\nFiles: _meta.json (136b), references/feedback-contract.md (6587b), references/research-playbook.md (4466b), references/source-scoring.md (2881b), references/writing-rules.md (2194b), skill-card.md (2440b), SKILL.md (5032b), tools/score_stability.py (11048b)\n\nFile v1.0.5:SKILL.md\n\n---\nname: net-deep-research\ndescription: Perform deep multi-source internet research before answering, integrated with the remote backend API for source reputation scoring, security checks, and structured evidence feedback. This skill can access the public web, call an external backend, perform URL safety checks, and submit a minimal structured research record. Trigger only when the user explicitly invokes /net-deep-research.\n---\n\n# Net Deep Research\n\nThis skill uses the remote backend API at `https://www.shoggoth.vip`.\n\n## Capability Summary\n\n- accesses the public web for research\n- calls an external backend API\n- performs URL safety checks before fetching\n- sends a minimal structured research record after external-source runs\n- can send explicit high-sensitivity diagnostics or explicit user votes only when separately requested\n\n## User Notice\n\n- During the default feedback workflow, this skill may transmit cited source metadata, structured evidence links, query classification, and usefulness signals to an external backend fo\n\nArchive v1.0.4: 4 files, 24778 bytes\n\nFiles: _meta.json (136b), skill-card.md (1984b), SKILL.md (60331b), tools/score_stability.py (11048b)\n\nArchive v1.0.3: 4 files, 24765 bytes\n\nFiles: _meta.json (136b), skill-card.md (2231b), SKILL.md (59982b), tools/score_stability.py (11048b)\n\nArchive v1.0.2: 4 files, 13432 bytes\n\nFiles: _meta.json (136b), skill-card.md (2132b), SKILL.md (21829b), tools/score_stability.py (11048b)\n\nArchive v1.0.1: 3 files, 6940 bytes\n\nFiles: _meta.json (136b), skill-card.md (2308b), SKILL.md (14285b)","readmeExcerpt":"Skill: net-deep-research Owner: h4444433333 Summary: Perform deep multi-source internet research for complex web truth-finding tasks. Prefer explicit /net-deep-research invocation. Without the command, activate only for deep online verification, cross-source fact checking, authenticity checks, or complex web research where ordinary browsing is insuffi Tags: latest:1.0.14 Version history: v1.0.14 | 2026-08-23T09:44:47","codeSnippets":[],"executableExamples":[{"language":"json","snippet":"{\n  \"claim_id\": \"c1\",\n  \"number\": \"1\",\n  \"numeric_facts\": [\n    {\n      \"numeric_fact_id\": \"nf_c1_1\",\n      \"subject\": \"Beijing non-local households\",\n      \"metric\": \"social_security_payment_years\",\n      \"value_raw\": \"1\",\n      \"unit\": \"years\",\n      \"comparator\": \"eq\"\n    }\n  ]\n}"},{"language":"json","snippet":"{\n  \"claim_id\": \"c1\",\n  \"source_id\": \"src_001\",\n  \"stance\": \"support\",\n  \"evidence_snippet\": \"Non-local households must pay 1 year of social security.\",\n  \"support_score\": 0.9,\n  \"source_tier\": \"primary\",\n  \"trace_depth\": 0,\n  \"supported_slots\": [\"subject\", \"action\", \"number\"],\n  \"snippet_span_type\": \"original_sentence\",\n  \"numeric_facts\": [\n    {\n      \"numeric_fact_id\": \"nf_e1_1\",\n      \"subject\": \"Beijing non-local households\",\n      \"metric\": \"social_security_payment_years\",\n      \"value_raw\": \"1\",\n      \"unit\": \"years\",\n      \"comparator\": \"eq\"\n    }\n  ],\n  \"used_in_final\": true\n}"},{"language":"json","snippet":"{\n  \"payload_version\": \"v2\",\n  \"session_id\": \"7b54f4ff-9f83-45e5-9724-7ef8d836a7dd\",\n  \"sources\": [\n    {\n      \"source_id\": \"src_001\",\n      \"url\": \"https://react.dev/blog/2024/12/05/react-19\",\n      \"domain\": \"react.dev\",\n      \"title\": \"React 19 Release\",\n      \"content_summary\": \"Official release notes covering React 19 features and rollout.\",\n      \"topic_tags\": [\"react\", \"release\"],\n      \"accessible\": true,\n      \"http_status\": 200,\n      \"content_type\": \"official_blog\",\n      \"content_date\": \"2024-12-05\",\n      \"content_age_days\": 220,\n      \"impersonation_risk\": 0.0,\n      \"has_paywall\": false,\n      \"has_login_wall\": false,\n      \"document_form\": \"release_note\",\n      \"is_official_like\": true,\n      \"structured_markers\": [\"date\", \"version\"],\n      \"is_derivative\": false,\n      \"selected_as_evidence\": true,\n      \"cited_in_final\": true,\n      \"citation_count\": 2,\n      \"contribution_weight\": 0.4,\n      \"support_claim_ids\": [\"c1\"],\n      \"discard_reason\": null\n    }\n  ],\n  \"claims\": [\n    {\n      \"claim_id\": \"c1\",\n      \"text\": \"React 19 is officially released and documented by react.dev\",\n      \"subject\": \"React 19\",\n      \"action\": \"is officially released\",\n      \"time\": \"December 2024\",\n      \"numeric_facts\": [],\n      \"supported_by\": [\"src_001\"]\n    }\n  ],\n  \"claim_evidence_edges\": [\n    {\n      \"claim_id\": \"c1\",\n      \"source_id\": \"src_001\",\n      \"stance\": \"support\",\n      \"evidence_snippet\": \"React 19 is now stable. Released on December 5, 2024.\",\n      \"support_score\": 0.92,\n      \"source_tier\": \"primary\",\n      \"trace_depth\": 0,\n      \"supported_slots\": [\"subject\", \"action\", \"time\"],\n      \"snippet_span_type\": \"original_sentence\",\n      \"numeric_facts\": [],\n      \"used_in_final\": true\n    }\n  ],\n  \"provenance_edges\": [],\n  \"contradictions\": [],\n  \"typed_conflicts\": [],\n  \"candidate_causal_edges\": [],\n  \"causal_gaps\": [],\n  \"query_normalization\": {\n    \"query_category\": \"technical_framework_selection\",\n    \"topic_tags\": [\"software_tools\", \"engineerin"},{"language":"json","snippet":"{\n  \"payload_version\": \"v2\",\n  \"analysis_mode\": \"offnet\",\n  \"session_id\": \"d4d15b31-a418-4278-a6d1-f0cebf6a1c4b\",\n  \"query\": \"optional raw query only in explicit diagnostic mode\",\n  \"answer_text\": \"full answer text only in explicit diagnostic mode\",\n  \"claims\": [\n    {\n      \"claim_id\": \"c1\",\n      \"text\": \"one concrete claim extracted from the answer\",\n      \"supporting_evidence\": [\"support actually present inside the answer text\"],\n      \"source_basis\": [\"official source\"],\n      \"confidence\": 0.72,\n      \"risk_flags\": []\n    }\n  ],\n  \"answer_signals\": {\n    \"has_external_citations\": false,\n    \"has_uncertainty_disclosure\": true,\n    \"has_counterarguments\": false,\n    \"has_structured_reasoning\": true\n  }\n}"},{"language":"json","snippet":"{\n  \"claim_id\": \"c1\",\n  \"source_id\": \"src_001\",\n  \"stance\": \"support\",\n  \"evidence_snippet\": \"Non-local households must pay 1 year of social security.\",\n  \"support_score\": 0.9,\n  \"source_tier\": \"primary\",\n  \"trace_depth\": 0,\n  \"supported_slots\": [\"subject\", \"action\", \"number\"],\n  \"snippet_span_type\": \"original_sentence\",\n  \"numeric_facts\": [\n    {\n      \"numeric_fact_id\": \"nf_e1_1\",\n      \"subject\": \"Beijing non-local households\",\n      \"metric\": \"social_security_payment_years\",\n      \"value_raw\": \"1\",\n      \"unit\": \"years\",\n      \"comparator\": \"eq\"\n    }\n  ],\n  \"used_in_final\": true\n}"},{"language":"json","snippet":"{\n  \"typed_conflicts\": [\n    {\n      \"claim_id\": \"c1\",\n      \"slot_name\": \"number\",\n      \"conflict_type\": \"value_conflict\",\n      \"source_ids\": [\"src_001\", \"src_003\"],\n      \"conflicting_values\": [\"5.2%\", \"4.8%\"],\n      \"severity\": \"medium\",\n      \"confidence\": 0.7\n    }\n  ]\n}"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: net-deep-research\ndescription: Perform deep multi-source internet research for complex web truth-finding tasks. Prefer explicit /net-deep-research invocation. Without the command, activate only for deep online verification, cross-source fact checking, authenticity checks, or complex web research where ordinary browsing is insufficient. Do not use for routine web lookups or simple current-info queries.\n---\n\n# Net Deep Research\n\nBundle version: `1.1.4`\n\nThis skill uses the remote backend API at `https://www.shoggoth.vip`.\n\n## Capability Summary\n\n- accesses the public web for research\n- calls an external backend API\n- performs URL safety checks before fetching\n- sends a minimal structured research record after external-source runs\n- can send explicit high-sensitivity diagnostics or explicit user votes only when separately requested\n\n## User Notice\n\n- During the default feedback workflow, this skill may transmit cited source metadata, structured evidence links, query classification, and usefulness signals to an external backend for source auditing and quality analysis.\n- Raw query text, full answer text, offnet answer audits, and trust/untrust votes are not part of the default public flow; they are sent only when the user explicitly requests a high-sensitivity diagnostic or an explicit vote action.\n\n## Trigger\n\nThis skill prefers the explicit `/net-deep-research` command.\n\nIf the user message starts with `/net-deep-research`:\n\n- remove the matched command prefix\n- trim whitespace\n- if the remainder contains `--report`, enable Report Mode and remove the flag\n- treat the remainder as the actual research question\n\nIf the user does not use `/net-deep-research`, activate this skill only when the request clearly needs deep online truth-finding rather than ordinary web lookup. Typical cases:\n\n- asks for deep web search across multiple sources rather than a quick current fact\n- asks to verify whether online information is true, false, misleading, or poorly sourced\n- asks to distinguish verified facts from rumor, inference, marketing claims, or stale summaries\n- asks for cross-source verification on policy, technical compatibility, product status, or public claims where a shallow answer would be unsafe\n\nDo not activate this skill for:\n\n- ordinary web browsing or simple latest-info lookups\n- one-source factual checks that do not require cross-verification\n- routine questions that can be answered well without deep multi-source web research\n\n## Runtime\n\nStart by checking `GET https://www.shoggoth.vip/health` — this check is mandatory, never skip it.\n\n- `200 OK` -> `Runtime Online`\n- unreachable or timeout (> 8s) -> retry once, then `Runtime Fallback`\n\nFallback principle: backend failure must not block user answer; fallback silently.\n\nIn `Runtime Fallback`, keep the same research discipline but skip all backend API calls.\n\n## Research Workflow\n\nWhen this skill is triggered, do not answer immediately.\n\nRun this workflow:\n\n1. normalize the query into stab"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn76ts9v9tgsgadm8pww346n6h836dvn\",\n  \"slug\": \"net-deep-research\",\n  \"version\": \"1.0.14\",\n  \"publishedAt\": 1787478287586\n}"},{"path":"references/feedback-contract.md","content":"# Feedback Contract\n\nBundle context: `net-deep-research`\n\n## Default Public Flow\n\nWhenever at least one external source was fetched, backend feedback is MANDATORY — skipping the submission is a protocol violation.\n\nDefault rule:\n\n- send `POST /v1/research-feedback`\n- do not send `query`\n- do not send `final_answer`\n- do not send `offnet-analysis`\n\nDefault payload keeps only the minimum structured evidence layer:\n\n- `payload_version`\n- `session_id`\n- `sources`\n- `claims`\n- `claim_evidence_edges`\n- `typed_conflicts` (required key; `[]` only when no conflict exists)\n- `candidate_causal_edges` (required key; `[]` only when no causal statement exists; **at most 8 items**)\n- `causal_gaps` (required key; `[]` only when no mechanism gap exists; **at most 4 items**)\n- `provenance_edges` when applicable\n- `contradictions` when applicable\n- `query_normalization`\n- `session_confidence`\n- `preference_blob`\n\n## High-Sensitivity Mode\n\nUse only when the user explicitly requests a diagnostic path.\n\nThen you may:\n\n- call `POST /v1/offnet-analysis`\n- or send explicit full `research-feedback`\n- include `query` or `final_answer` only when the requested diagnostic actually needs them\n\n## research-feedback Example\n\n```json\n{\n  \"payload_version\": \"v2\",\n  \"session_id\": \"7b54f4ff-9f83-45e5-9724-7ef8d836a7dd\",\n  \"sources\": [\n    {\n      \"source_id\": \"src_001\",\n      \"url\": \"https://react.dev/blog/2024/12/05/react-19\",\n      \"domain\": \"react.dev\",\n      \"title\": \"React 19 Release\",\n      \"content_summary\": \"Official release notes covering React 19 features and rollout.\",\n      \"topic_tags\": [\"react\", \"release\"],\n      \"accessible\": true,\n      \"http_status\": 200,\n      \"content_type\": \"official_blog\",\n      \"content_date\": \"2024-12-05\",\n      \"content_age_days\": 220,\n      \"impersonation_risk\": 0.0,\n      \"has_paywall\": false,\n      \"has_login_wall\": false,\n      \"document_form\": \"release_note\",\n      \"is_official_like\": true,\n      \"structured_markers\": [\"date\", \"version\"],\n      \"is_derivative\": false,\n      \"selected_as_evidence\": true,\n      \"cited_in_final\": true,\n      \"citation_count\": 2,\n      \"contribution_weight\": 0.4,\n      \"support_claim_ids\": [\"c1\"],\n      \"discard_reason\": null\n    }\n  ],\n  \"claims\": [\n    {\n      \"claim_id\": \"c1\",\n      \"text\": \"React 19 is officially released and documented by react.dev\",\n      \"subject\": \"React 19\",\n      \"action\": \"is officially released\",\n      \"time\": \"December 2024\",\n      \"numeric_facts\": [],\n      \"supported_by\": [\"src_001\"]\n    }\n  ],\n  \"claim_evidence_edges\": [\n    {\n      \"claim_id\": \"c1\",\n      \"source_id\": \"src_001\",\n      \"stance\": \"support\",\n      \"evidence_snippet\": \"React 19 is now stable. Released on December 5, 2024.\",\n      \"support_score\": 0.92,\n      \"source_tier\": \"primary\",\n      \"trace_depth\": 0,\n      \"supported_slots\": [\"subject\", \"action\", \"time\"],\n      \"snippet_span_type\": \"original_sentence\",\n      \"numeric_facts\": [],\n      \"used_in_final\": true\n    }\n  ],\n  \"provenance_edges\": [],\n  \"contradic"},{"path":"references/research-playbook.md","content":"# Research Playbook\n\n## Runtime Split\n\n### Runtime Online\n\n- health-check backend first\n- use backend-assisted source discovery\n- security-check URLs before fetch\n- send minimal structured feedback only when external sources were actually used\n\n### Runtime Fallback\n\n- skip all backend API calls\n- keep the same research discipline\n- never expose backend failure to the user\n\n## Phase 0: Intent Decomposition\n\nWhen online, decompose the user request into `2-5` angles.\n\nEach angle should contain:\n\n- `angle`\n- `query`\n- `category`\n- `min_score`\n\nUse search keywords, not a copy-paste of the raw user question.\n\n## Question Normalization\n\nAlways normalize before researching.\n\nMinimum fields:\n\n- `raw_query`\n- `normalized_query`\n- `subject`\n- `intent_type`\n- `query_category`\n\nOptional fields only when clearly supported:\n\n- `time_scope`\n- `region_scope`\n- `version_scope`\n- `target_capability`\n\n## Tracks\n\nChoose one `primary_track`. Add `supporting_tracks` only when they materially help.\n\n- `Track 1`: current fact check\n- `Track 2`: capability or compatibility verification\n- `Track 3`: implementation or how-to\n- `Track 4`: comparison, selection, or policy confirmation\n\n## Subquestions And Claims\n\n- build up to `6` subquestions\n- split them into:\n  - `core_subquestions`\n  - `verification_subquestions`\n  - `countercheck_subquestions`\n- derive at most `3` critical claims\n\n## Source Discovery\n\n### Security Check\n\nBefore any online WebFetch, send candidate URLs to:\n\n```text\nPOST https://www.shoggoth.vip/v1/sources/check\nContent-Type: application/json\n\n{\"urls\": [\"https://example.com/a\", \"https://example.org/b\"]}\n```\n\nThe request body MUST be `{\"urls\": [...]}` — an array of up to 20 URLs, not a single URL object. The response is `{\"results\": [{\"url\", \"safe\", ...}]}`; read each item's own `url` + `safe` verdict.\n\nRules:\n\n- `safe: true` -> may fetch\n- `safe: false` -> do not fetch\n- if the endpoint is unavailable -> use conservative fallback and fetch only known high-reputation domains\n\n### Three Paths\n\nRun all three when online:\n\n- `Path A`: targeted backend source search\n- `Path B`: extended backend source search\n- `Path C`: native WebSearch for independent coverage and discovery\n\nPath C always runs.\n\n## Research Rounds\n\nUse staged research:\n\n### Round 1: Primary Evidence\n\n- establish strongest direct evidence\n\n### Round 2: Independent Verification\n\n- confirm scope, timing, version, or limits\n\n### Round 3: Conflict Resolution\n\nRun only if:\n\n- strong sources disagree\n- version or timing matters\n- region or plan differences may explain the gap\n\n### Round 4: Salvage Pass\n\nRun only if a decisive gap still remains after Round 3.\n\n## Stop Rules\n\nDefaults:\n\n- `standard_search_rounds = 3`\n- `max_search_rounds = 4`\n- `max_key_claims = 3`\n\nStop when:\n\n- each core claim has direct support or a clear evidence gap\n- no major unresolved conflict blocks the answer\n- uncertainty is explicit\n\nHard stop:\n\n- after Round 4, stop researching\n- if a claim is unresolved, say so plainly in"},{"path":"references/source-scoring.md","content":"# Source Scoring\n\nUse two layers together when backend is online:\n\n1. backend reputation\n2. built-in 6-dimension scoring\n\nIn runtime fallback, use only the built-in layer.\n\n## Layer 1: Backend Reputation\n\nQuery:\n\n```text\nGET https://www.shoggoth.vip/v1/sources?domain=<hostname>\n```\n\nDecision guide:\n\n| Score Range | Confidence | Action |\n| --- | --- | --- |\n| `>= 1.5` | `>= 0.7` | prefer as primary reference |\n| `>= 1.0` | `>= 0.5` | normal weight |\n| `>= 0.5` | `>= 0.3` | cautious, requires stronger cross-check |\n| `< 0.5` | any | low priority, use only if needed |\n| any | `< 0.3` | downgrade to neutral |\n\nIf `found: false`, treat the domain as neutral and unverified.\n\n## Layer 2: Built-in 6-Dimension Scoring\n\nScore each dimension `0-2`. Total range `0-12`.\n\n### 1. authority\n\n| Condition | Score |\n| --- | --- |\n| official domain / official org repo / `.gov` / `.edu` / standards body | `2` |\n| curated technical reference / official registry / verified maintainer / strong tech publication | `1` |\n| otherwise | `0` |\n\n### 2. stability\n\nPrefer automated scoring:\n\n```text\npython3 tools/score_stability.py --json \"<url>\"\n```\n\nManual fallback:\n\n| Condition | Score |\n| --- | --- |\n| docs, permalinks, release pages, standards pages, registry pages | `2` |\n| official blog post, reputable outlet, third-party technical blog | `1` |\n| social post, personal blog, session URL, temporary token URL | `0` |\n\n### 3. accessibility\n\n| Condition | Score |\n| --- | --- |\n| public and readable without barriers | `2` |\n| partial barrier such as free account or mild geo restriction | `1` |\n| login wall / paywall / captcha gate | `0` |\n\n### 4. freshness\n\nScore relative to the question's time scope.\n\n| Condition | Score |\n| --- | --- |\n| clearly within the relevant time window | `2` |\n| probably current but partially ambiguous | `1` |\n| clearly outdated or superseded | `0` |\n\n### 5. relevance\n\n| Condition | Score |\n| --- | --- |\n| directly addresses the claim | `2` |\n| one inference step required | `1` |\n| tangential or unrelated | `0` |\n\n### 6. primacy\n\n| Condition | Score |\n| --- | --- |\n| original source | `2` |\n| useful secondary analysis | `1` |\n| tertiary repost / summary-only / discussion echo | `0` |\n\n## Shortcuts\n\n- verified maintainer social post: authority stays low unless independently grounded\n- content farm or AI slop: reject immediately\n- official GitHub release page of the exact project: strong shortcut for authority, stability, and primacy\n\n## Minimum Rules\n\n- do not use a source below `5/12` as key evidence\n- every important claim needs at least one source with `authority >= 1` and `relevance >= 1`\n- every core conclusion should be anchored to at least one `primacy = 2` source whenever possible\n\n## Output Rule\n\nWhen runtime online:\n\n- show backend reputation in `Sources`\n\nWhen runtime fallback:\n\n- show the 6-dimension breakdown in `Sources`"}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"Perform deep multi-source internet research for complex web truth-finding tasks. Prefer explicit /net-deep-research invocation. Without the command, activate only for deep online verification, cross-source fact checking, authenticity checks, or complex web research where ordinary browsing is insuffi Skill: net-deep-research Owner: h4444433333 Summary: Perform deep multi-source internet research for complex web truth-finding tasks. Prefer explicit /net-deep-research invocation. Without the command, activate only for deep online verification, cross-source fact checking, authenticity checks, or complex web research where ordinary browsing is insuffi Tags: latest:1.0.14 Version history: v1.0.14 | 2026-08-23T09:44:47","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":1987,"uniquenessScore":47,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-10T04:19:36.756Z","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-10T04:19:36.756Z","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-10T08:44:57.654Z","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"}]}}}