main
John Lauer Add exact precision resistor identity, native libraries and attributed nominal CAD 92262f7 9d ago
{
  "status": "ok",
  "data": {
    "published": "adom/tnpw04025k60beed",
    "version": "0.1.0",
    "sha256": "sha256-f53e8a4f5e4100dcad8af1f764abde075d24e04dd37ee49e130e824ec7a9cf97",
    "visibility": "public",
    "url": "/adom/tnpw04025k60beed",
    "install": "adom-wiki pkg install adom/tnpw04025k60beed"
  },
  "hints": [
    {
      "level": "warn",
      "code": "PAGE_JSON_IGNORED",
      "message": "The tarball ships page.json carrying hero, but pkg publish does not read page.json: those fields did nothing here. Only the package.json manifest counts.",
      "action": "Move the fields into package.json (page.json is only read on page-repo pushes).",
      "data": {
        "path": "page.json",
        "tarball_version": "0.1.0",
        "publish_version": "0.1.0",
        "fields": [
          "hero"
        ]
      }
    },
    {
      "level": "warn",
      "code": "MEDIA_IN_TARBALL",
      "message": "hero.png (42 KB): page asset(s), not install payload -- 9% of this tarball is media every installer downloads on every update. Heroes and screenshots are served from the page repo (page.json), not the install tarball.",
      "action": "Remove them from the packed file set and republish. They stay on the page: the page repo keeps its existing copy when a new tarball stops shipping it. Only a brand-new page's FIRST publish needs the hero in the tarball (it materializes into the page repo once).",
      "data": {
        "files": [
          {
            "path": "hero.png",
            "bytes": 43476
          }
        ],
        "media_bytes": 43476,
        "tarball_bytes": 474313
      }
    },
    {
      "level": "info",
      "code": "NO_DISCOVERY_TRIGGERS",
      "message": "No discovery triggers are set, so AI agents are less likely to surface this component.",
      "action": "Add 'discovery_triggers' (phrases that should surface this package) to the manifest."
    },
    {
      "level": "info",
      "code": "WORKSPACE_FEATURE",
      "message": "This page can ship its author's Hydrogen bench: commit hydrogen/workspace.json (the pane layout with apps referenced by wiki page) and readers of a clone or fork open the same layout, apps installed and serving, with one command. Hydrogen Cloud lists it under Project workspaces with an Apply button.",
      "action": "From the container where the bench is open: adom-cli hydrogen workspace export --out hydrogen/workspace.json, then adom-wiki repo push adom/tnpw04025k60beed -m \"bench\" --files hydrogen/workspace.json. Readers: adom-cli hydrogen workspace apply adom/tnpw04025k60beed. Details: the wiki-workspaces skill.",
      "data": {
        "path": "hydrogen/workspace.json",
        "apply": "adom-cli hydrogen workspace apply adom/tnpw04025k60beed"
      }
    },
    {
      "level": "warn",
      "code": "DISTRIBUTOR_NUMBERS",
      "message": "No mouser, lcsc part numbers on this component. Buyers and the parts widgets read component.distributor_links; a part with no numbers cannot be ordered from the page.",
      "action": "Add to package.json: \"component\": { \"distributor_links\": { \"mouser\": \"<Mouser part #>\", \"digikey\": \"<DigiKey part #>\", \"lcsc\": \"<LCSC C-number>\" } }. Use false for a distributor that genuinely does not carry the part (e.g. \"lcsc\": false) so the warning stops.",
      "data": {
        "missing": [
          "mouser",
          "lcsc"
        ]
      }
    },
    {
      "level": "warn",
      "code": "LINT",
      "message": "component has no board/layout (.kicad_pcb or .brd): nobody can reproduce or re-fab the design from this page."
    },
    {
      "level": "warn",
      "code": "LINT",
      "message": "component has no schematic (.kicad_sch or .sch): the design can't be reviewed or reused, only the symbol/footprint can."
    },
    {
      "level": "warn",
      "code": "LINT",
      "message": "component has no footprint/symbol metadata (<name>_footprint.json / <name>_symbol.json): per-pad wire-attach data rides this, so importers can't place it programmatically."
    },
    {
      "level": "warn",
      "code": "LINT",
      "message": "component is missing distributor number(s): mouser, lcsc (component.distributor_links). Sourcing tools (BOM panels, kicad-library-manager, parts search) key on these; add each real distributor part number, or set a distributor to false ONLY when the part is genuinely not carried there (e.g. \"mouser\": false)"
    },
    {
      "level": "info",
      "code": "PUBLISH_LAYERS",
      "message": "published the package layer (the install payload: manifest + scripts + bundled skills). The page git repo (Files tab) is a SEPARATE layer and is not synced by publish.",
      "action": "host source by pushing files into the page repo (never a source tarball); ship downloadable per-platform binaries with `adom-wiki release upload <ref> <ver> <file> --platform <os>`"
    },
    {
      "level": "info",
      "code": "SKILL_LAYOUT",
      "message": "shipped 1 user skill(s) in the install tarball",
      "action": "build/debug/test skills go in dev-skills/, app->wiki publish skills in publish-skills/ -- both are auto-excluded from the tarball and belong in the source repo (repo push), so you don't ship them to every install",
      "data": {
        "user": 1,
        "dev": 0,
        "publish": 0
      }
    }
  ]
}