Reader-facing pack map — articles + audio inventory as publish gate
Affiliate disclosure: Some links are affiliate links. As an Amazon Associate I earn from qualifying purchases. See Disclosure.
This is article 20 in the local-AI series.
Affiliate Disclosure: We use affiliate links for tools we run daily. Clicking them may earn us a commission at no extra cost to you. We only endorse what fits our specific workflow on a 16 GB Apple silicon Mac mini.
In local AI publishing, your content delivery architecture is as critical as the models themselves. Whether running inference via Ollama or orchestrating audio with mlx-audio, output reliability depends on managing metadata and asset integrity. A common pitfall in automated workflows is consolidating all inventory data into a single monolithic manifest. While this seems efficient initially, it often introduces brittle dependencies that hinder parallel updates and obscure specific failures during review.
The working solution involves two distinct inventories: pack-inventory-articles.md (listing v2-local drafts) and pack-inventory-audio.md (tracking short-voice WAV files against scripts ≤120 words). This separation acts as a publish gate, ensuring neither text nor audio releases without verification.
Why two inventories beat one mega-manifest
Consolidating article metadata and audio assets into one file creates fragility. If you update a citation in the text or regenerate an audio clip, any change risks corrupting the entire manifest structure. This forces editors to halt other tasks while reconciling a single file.
Separating concerns allows the editorial team to verify text integrity independently of audio generation status. You can update article structures without worrying about breaking audio links, and vice versa. A dual-inventory approach provides clearer visibility into failure modes; for instance, it is far easier to diagnose a “missing transcript” versus a “missing narration” when inventories are distinct rather than obscured behind a generic error count. This clarity is essential when managing pipelines where Ollama handles inference and Hugo handles templating.
Article rows vs audio inventory rows
Audio inventory rows track generated assets (MP3/WAV) and their timestamps. These entries decouple playback readiness from textual publication status. An audio row confirms a file exists and is accessible via its designated URL. It does not imply the accompanying text is perfect; it simply states the audio asset is ready for consumption.
Gap count = 0 still needs human judgement
A “perfect” inventory score guarantees nothing about editorial quality; it merely indicates no files are missing from the expected set. It tells you what is there, but not if what is there is correct. Human editors must remain the final arbiter of publishability regardless of automated counts. A script can confirm an MP3 exists in pack-inventory-audio.md, but it cannot determine if the narration conveys the intended emotion or if the transcript accurately reflects the speaker’s intent.
This applies equally to text and audio. The system might report zero gaps in both inventories, yet content could still be factually flawed or stylistically inappropriate. Relying solely on inventory counts creates a false sense of security. True quality assurance requires human judgement to interpret the data, ensuring final output meets standards before reaching readers.
Soft notes ≠ audio gaps
Distinguishing between “content to be written” and “audio to be generated” prevents false positives where text is incomplete but audio might still exist (or vice versa). An empty citation token does not imply an audio file is missing; it implies a specific piece of information within the text is unsubstantiated. Conversely, a missing row in pack-inventory-audio.md explicitly indicates a missing audio asset.
The system must treat these as fundamentally different entities. Confusing a soft note (a placeholder for future research) with an audio gap (a missing binary file) leads to incorrect status reporting. For example, an article might have a complete text structure and valid citations in the inventory, yet contain CITE: [] markers needing filling. This is a textual issue, not an audio failure. Similarly, an audio file might be present while surrounding text lacks depth. By keeping inventories separate, you pinpoint whether the problem lies in the research phase (soft notes) or asset generation (audio gaps), allowing targeted remediation rather than blanket reprocessing.
Dry Hugo still ≠ Pages publish
Finally, a “dry run” of the build process does not equate to a live-ready publication state. Running hugo in dry mode validates syntax and configuration, ensuring templates render without error and paths are theoretically correct. However, this validation is purely syntactic. It does not verify semantic integrity, nor does it confirm actual content files match inventory expectations.
The pack-inventory-articles.md and pack-inventory-audio.md files sit beside dry Hugo as a guardrail, but they do not replace full build verification against those inventories. A dry run might pass even if an audio file is missing from the inventory list, provided the template defaults to hiding it or using a placeholder. To ensure a true publish gate, the build process must actively cross-reference rendered output against both inventories.
deploying validated content to GitHub Pages requires confirmation that assets are actually present and accessible in the deployment bucket. Relying on a dry Hugo run as a proxy for publication readiness risks shipping broken audio links or incomplete articles. The inventories provide the map, but full build and deployment verification ensure the territory matches it.
adopting a dual-inventory strategy transforms your publishing workflow from a fragile, monolithic process into a clearer modular system. By separating article metadata from audio assets, you gain granular control over your content pipeline, allowing parallel updates and precise error diagnosis. While automated tools like Hugo, Ollama, and deployment platforms handle syntax and distribution, the human element remains indispensable for judging quality and resolving textual debts. This architecture ensures your reader-facing pack map is not just a list of files, but a verified gateway to high-quality, multi-modal content. Related stack notes: /go/apple-silicon.