<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Anup Karanjkar</title>
    <description>The latest articles on DEV Community by Anup Karanjkar (@akaranjkar08).</description>
    <link>https://dev.to/akaranjkar08</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F235395%2Fca502edd-b701-43c6-8324-7b07fefe0f24.jpg</url>
      <title>DEV Community: Anup Karanjkar</title>
      <link>https://dev.to/akaranjkar08</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/akaranjkar08"/>
    <language>en</language>
    <item>
      <title>UMG v. DistroKid: The Distribution Risk Map for AI Musicians</title>
      <dc:creator>Anup Karanjkar</dc:creator>
      <pubDate>Sun, 20 Sep 2026 19:15:07 +0000</pubDate>
      <link>https://dev.to/akaranjkar08/umg-v-distrokid-the-distribution-risk-map-for-ai-musicians-1en6</link>
      <guid>https://dev.to/akaranjkar08/umg-v-distrokid-the-distribution-risk-map-for-ai-musicians-1en6</guid>
      <description>&lt;p&gt;&lt;strong&gt;Three quarters of verified AI releases go through one distributor, and that distributor is now being sued for up to $150 million.&lt;/strong&gt; On 15 September 2026 Universal Music Group and its Capitol Records imprint filed a 52-page complaint in the US District Court in Delaware accusing DistroKid of presenting itself as a distributor of artist-created work while, UMG alleges, flooding Spotify, Apple Music and YouTube with AI-generated tracks that siphon revenue from legitimate rightsholders. The complaint cites a "Lofi Chill" account that released 4,562 tracks in twelve months. As of the filing date DistroKid had not responded publicly and no hearing had been set.&lt;/p&gt;

&lt;p&gt;Short answer: UMG's own filing says the case is not about clearly disclosed AI music, and nothing has changed for a compliant catalogue today. The risk is concentration. SIQA's mid-year 2026 report puts DistroKid at 77.6% of verified AI releases with distributor data, up from 75.8% in Q1, while TuneCore fell from 4.7% to 1.7% after Believe began blocking tracks from unlicensed generators in April. If your entire catalogue, your identifiers and your publishing all live in one dashboard that is now in litigation, the question is not whether the case has merit. It is what you do the morning a policy changes. Here is the map and the plan.&lt;/p&gt;

&lt;h2&gt;
  
  
  What UMG actually alleges
&lt;/h2&gt;

&lt;p&gt;Three things, in the complaint's own framing. First, copyright infringement: that DistroKid distributed AI-generated tracks that copy UMG works. Second, deceptive practice: that DistroKid marketed itself as serving artist-created music while knowingly passing generated volume. Third, harm: that the volume diverts listeners and royalties from human artists. UMG writes that "this lawsuit is not about the distribution of AI-generated music when clearly disclosed as such," and that the target is "DistroKid masquerading as something it is not."&lt;/p&gt;

&lt;p&gt;For an independent musician the operative words are &lt;em&gt;clearly disclosed&lt;/em&gt;. The industry response to the case, whatever the outcome, will be tighter declarations, more detection and stricter enforcement of the AI fields that already exist at upload. Catalogues that are honest today will feel that as paperwork. Catalogues that ticked the wrong box to avoid a review will feel it as takedowns.&lt;/p&gt;

&lt;h2&gt;
  
  
  The 2026 policy stack, store by store
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Layer&lt;/th&gt;
&lt;th&gt;Rule in force&lt;/th&gt;
&lt;th&gt;Date&lt;/th&gt;
&lt;th&gt;Exposure for a human-fronted, disclosed catalogue&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;| Believe / TuneCore | Block distribution of tracks from generators treated as unlicensed (Suno named); later opened to tracks from Suno's industry partner model, older-model tracks still blocked | April 2026 onward | Medium: depends on which model made each track |&lt;/p&gt;

&lt;p&gt;| Spotify | AI Credits via DDEX from 16 April; spam filter removed 75M+ tracks; AI Persona badge from mid-September excludes synthetic identities from recommendations | April to September 2026 | Low if identity is human and uploads are not farm-shaped |&lt;/p&gt;

&lt;p&gt;| TIDAL | No royalties on wholly AI-generated tracks; AI badge; policy may expand to "substantially" AI | 15 July 2026 | Low for hybrid work; total for fully generated tracks |&lt;/p&gt;

&lt;p&gt;| Deezer | AI labelling; fraudulent streams excluded from royalties; AI tracks above 50% of daily uploads | Ongoing, peak June 2026 | Low unless streams are bought |&lt;/p&gt;

&lt;p&gt;| DistroKid | Defendant in UMG v. DistroKid; AI declaration at upload; first DDEX AI-credit partner | Filed 15 September 2026 | Concentration: the platform, not your compliance |&lt;/p&gt;

&lt;p&gt;Read across a row and the pattern is the same everywhere: platforms are separating &lt;em&gt;identity fraud, stream fraud and undisclosed generation&lt;/em&gt; from &lt;em&gt;tool use&lt;/em&gt;. Read down the last column and the only "medium" is the one that depends on model provenance, which is why every release file now records the model version.&lt;/p&gt;

&lt;h2&gt;
  
  
  Concentration risk, quantified for you
&lt;/h2&gt;

&lt;p&gt;Do the arithmetic for your own catalogue in five minutes.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Percentage of tracks delivered through one distributor. For most independents this is 100.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Percentage of your ISRCs whose masters you hold locally, tagged, with artwork. If you would have to download them from the dashboard, the answer is lower than you think.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Percentage of works registered with a performing rights society independently of the distributor. If you used a distributor publishing add-on, have you seen the registrations?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Percentage of tracks made on a generator model that Believe and TuneCore currently block. You need the model version per track to answer.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Days it would take you to be live on a second distributor with the same catalogue. Honest answers range from two days to never.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If the answers are 100, 40, 0, unknown and never, your risk is not UMG. It is you.&lt;/p&gt;

&lt;h2&gt;
  
  
  The four-step contingency
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Export everything this week
&lt;/h3&gt;

&lt;p&gt;Masters at delivery quality, artwork, a metadata sheet with title, version, artists, writers and splits, ISRC, UPC, release date and language per track, and the AI declarations as submitted. Store it off-platform. This is the artefact that makes every other step possible, and the one people skip because the dashboard feels permanent.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Open, do not move to, a second distributor
&lt;/h3&gt;

&lt;p&gt;Create the account, verify identity, upload one release to learn the form. Do not migrate a live catalogue: moving releases resets stream history and playlist placements, and re-uploading under new ISRCs is itself a farm signal. The second account is insurance, not a new home. Pick one with clear AI policies you can comply with, and read the generator rules, since Believe-owned services block older Suno models.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Detach rights from distribution
&lt;/h3&gt;

&lt;p&gt;Publishing registration through your own society membership, with your own IPI number and ISWCs per work, so that composition income does not depend on a distributor add-on surviving the lawsuit. The full sequence is in &lt;a href="https://dev.to/blogs/distrokid-pays-the-master-iprs-pays-the-song-two-royalty-pipes-india-2026"&gt;the two royalty pipes&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Harden the identity layer
&lt;/h3&gt;

&lt;p&gt;A real person on the profile, per-component AI disclosure, clean titles, sane cadence. Every store's 2026 rule rewards the same profile, and it is the one UMG's complaint explicitly excludes from its target. The 72-hour checklist is in &lt;a href="https://dev.to/blogs/spotify-ai-persona-badge-identity-stack-ai-assisted-artists-2026"&gt;the identity stack&lt;/a&gt;, and the pre-upload gate is in &lt;a href="https://dev.to/blogs/ai-music-metadata-release-checklist-ddex-ai-credits-spam-filter-2026"&gt;the metadata checklist&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  What not to do
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Do not delete and re-upload your catalogue elsewhere in a panic. You will lose history and look like the thing the filters hunt.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Do not change AI declarations retroactively to something less true. Metadata corrections should move toward accuracy, not away from it.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Do not spread one catalogue across five distributors to "diversify." Duplicate deliveries of the same ISRC create conflicts at the stores and can freeze both.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Do not assume a lawsuit resolves quickly. Complaints of this size take years; policy changes take days. Plan for the second.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The market you are actually in
&lt;/h2&gt;

&lt;p&gt;The same SIQA report that shows DistroKid's share also shows fully AI-generated tracks falling to 13.9% of verified releases while assisted and hybrid work rose, and Suno present in 92.8% of workflows. The tool is universal; the method is what the stores and the courts are sorting. A human-fronted, disclosed, registered catalogue with a sane cadence is on the right side of every 2026 rule, including the one UMG just asked a court to enforce. The strategy behind that position is in &lt;a href="https://dev.to/blogs/fully-ai-music-peaked-hybrid-rule-siqa-mid-year-2026"&gt;Fully AI music just peaked&lt;/a&gt;. For catalogues in Indian genres the &lt;a href="https://dev.to/product/bollywood-hit-song-factory-suno"&gt;Bollywood Hit Song Factory&lt;/a&gt; and &lt;a href="https://dev.to/product/regional-indian-music-pack-suno"&gt;Regional Indian Music Pack&lt;/a&gt; include the metadata and provenance templates that make steps one and three a copy-paste, and our free &lt;a href="https://dev.to/tools/suno-prompt-builder"&gt;Suno Prompt Builder&lt;/a&gt; records the model version with every style sheet it produces.&lt;/p&gt;

&lt;h2&gt;
  
  
  What to watch, and what each signal means for you
&lt;/h2&gt;

&lt;p&gt;Court dockets move slowly; the signals that change your week arrive by email from your distributor. Watch these, in this order of importance.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Distributor terms updates.&lt;/strong&gt; A new AI declaration question, a new generator field, or a new clause about "artist-created" content is the operational fallout of the case, whatever happens in Delaware. Read the diff, not the summary.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Store policy pages.&lt;/strong&gt; Spotify, TIDAL and Deezer have each changed AI policy at least once in 2026. TIDAL described its rule as a living document and said it may expand from wholly to substantially AI-generated. If that expansion lands, hybrid work needs its human components documented, which is what the provenance folder is for.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;DistroKid's response and any motion to dismiss.&lt;/strong&gt; The first public filing will tell you how DistroKid characterises its AI users. If the defence leans on "clearly disclosed," honest declarations become more valuable, not less.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Believe and TuneCore model lists.&lt;/strong&gt; Which generator versions are accepted is the single fact that decides whether a second distributor can carry your back catalogue.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Your own statements.&lt;/strong&gt; A sudden drop in a store's payout for tracks that still show streams is a policy change you were not told about. The quarterly two-pipe audit catches it.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Set a monthly reminder to check the first two. The rest will find you.&lt;/p&gt;

&lt;h2&gt;
  
  
  Quick answers
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Is UMG suing over all AI music on DistroKid?
&lt;/h3&gt;

&lt;p&gt;No. UMG's complaint states it is not about clearly disclosed AI music. It alleges DistroKid misrepresented itself while distributing undisclosed generated volume, citing one act with 4,562 tracks in a year.&lt;/p&gt;

&lt;h3&gt;
  
  
  Should I leave DistroKid now?
&lt;/h3&gt;

&lt;p&gt;Not on the filing alone. Export your catalogue, open a second distributor as insurance, register publishing independently, and keep your identity and disclosures clean.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why does the model version matter for distribution?
&lt;/h3&gt;

&lt;p&gt;Believe and TuneCore block tracks from generators they treat as unlicensed and have opened distribution to Suno's industry partner model while older-model tracks remain blocked. Provenance per track answers the question in one line.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is the biggest risk for a compliant independent?
&lt;/h3&gt;

&lt;p&gt;Concentration. One distributor holding your masters, identifiers and publishing means one policy change can freeze all three at once.&lt;/p&gt;

&lt;h3&gt;
  
  
  How long will the case take?
&lt;/h3&gt;

&lt;p&gt;Complaints of this scale run for years. Distributor and store policy changes happen in days. Plan your contingency around the second timeline.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Disclaimer:&lt;/strong&gt; This article summarises public filings and platform policies for informational purposes and is not legal advice. Consult a qualified professional about your own contracts and rights.&lt;/p&gt;

&lt;h2&gt;
  
  
  Export, insure, detach, harden. Every product mentioned is available at wowhow.cloud — pay once, ship forever.
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://wowhow.cloud/blogs/umg-distrokid-lawsuit-distribution-risk-map-ai-musicians-2026" rel="noopener noreferrer"&gt;wowhow.cloud&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>umgdistrokid</category>
      <category>distrokidai</category>
      <category>aimusic</category>
      <category>believetunecore</category>
    </item>
    <item>
      <title>Metadata Is the Product: The 14-Field AI Music Release Checklist</title>
      <dc:creator>Anup Karanjkar</dc:creator>
      <pubDate>Sun, 20 Sep 2026 13:16:42 +0000</pubDate>
      <link>https://dev.to/akaranjkar08/metadata-is-the-product-the-14-field-ai-music-release-checklist-3koa</link>
      <guid>https://dev.to/akaranjkar08/metadata-is-the-product-the-14-field-ai-music-release-checklist-3koa</guid>
      <description>&lt;p&gt;&lt;strong&gt;Honest AI disclosure has not cost us a single stream. Bad metadata has cost us releases.&lt;/strong&gt; Since 16 April 2026 Spotify has shown AI credits in the song-info panel whenever a distributor passes the DDEX AI disclosure field, and DistroKid was the first partner wired to it. Spotify's stated position since September 2025 is that disclosed AI involvement is not penalised or down-ranked. In the same breath it reported removing more than 75 million spam tracks in a year through a filter that targets mass uploads, duplicated titles, artificially short tracks and SEO stuffing in metadata. Two systems, two outcomes, and the thing that decides which one you meet is the form you fill in before you press upload.&lt;/p&gt;

&lt;p&gt;Short answer: treat release metadata as part of the product, not paperwork. Fourteen fields decide whether a track matches to its writers, clears distributor AI declarations, survives spam filters and gets paid on every store that still pays. The checklist below is the gate every release passes in the catalogues we run. Build it around one track that once failed, and you will never skip it again.&lt;/p&gt;

&lt;h2&gt;
  
  
  The two-system map
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;System&lt;/th&gt;
&lt;th&gt;What it reads&lt;/th&gt;
&lt;th&gt;What it does&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;| Spotify AI Credits (via DDEX) | Per-component AI disclosure passed by your distributor | Shows credits on the track. No ranking penalty. |&lt;/p&gt;

&lt;p&gt;| Spotify spam filter | Upload volume, title duplication, track length, metadata stuffing | Stops recommending tracks and uploaders that match farm patterns |&lt;/p&gt;

&lt;p&gt;| Spotify AI Persona review | Artist profile identity | Badge plus exclusion from recommendations by default |&lt;/p&gt;

&lt;p&gt;| Distributor AI declaration (DistroKid, TuneCore, others) | Your answers at upload, sometimes including the generator used | False declarations are a contract breach; Believe and TuneCore block tracks from unlicensed generators |&lt;/p&gt;

&lt;p&gt;| TIDAL detection | Audio analysis via a detection partner | Wholly AI-generated tracks earn no royalties since 15 July 2026 |&lt;/p&gt;

&lt;p&gt;| Deezer fraud detection | Stream patterns | Fraudulent streams removed from the royalty pool |&lt;/p&gt;

&lt;p&gt;Read the left column again. Only one of those six systems cares whether you used AI. The other five care whether you are honest, whether you are a person, and whether your upload behaviour looks like a farm. Metadata is how you answer all three before anyone asks.&lt;/p&gt;

&lt;h2&gt;
  
  
  The 14-field pre-upload gate
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Primary artist name&lt;/strong&gt; matches the profile exactly, including case and diacritics. Variants create duplicate profiles, and duplicate profiles look like a farm.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Featured artists&lt;/strong&gt; listed as separate credits, never baked into the title with "feat." in brackets.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Title&lt;/strong&gt; is a title. No keywords, no "(Lofi Chill Beats to Study)", no version tags unless it is a version. Title stuffing is named in Spotify's spam criteria.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Version field&lt;/strong&gt; used for edits, instrumentals and remixes, so the title stays clean and the version is machine-readable.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;ISRC&lt;/strong&gt; assigned by the distributor per recording and copied into your works sheet the same day.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;ISWC and writer splits&lt;/strong&gt; for the composition, registered with your performing rights society. The distributor does not do this for you; see &lt;a href="https://dev.to/blogs/distrokid-pays-the-master-iprs-pays-the-song-two-royalty-pipes-india-2026"&gt;the two royalty pipes&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Writer and composer credits&lt;/strong&gt; as real names with roles: lyricist, composer, producer. "Various" and blank fields are how income disappears into the unmatched pool.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Performer credits&lt;/strong&gt; including the vocalist, and if the vocal is a disclosed clone of your voice, you.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;AI disclosure per component&lt;/strong&gt;: vocals, instrumentation, lyrics, post-production. This is the field that becomes the Spotify AI credit. Tick what is true. Do not tick "fully AI-generated" for a track you wrote and sang over; that is the TIDAL zero-royalty category.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Generator disclosure&lt;/strong&gt; where the distributor asks. Since April 2026, Believe and TuneCore block tracks from generators they treat as unlicensed and have since opened distribution to tracks from Suno's new industry partner model while older-model tracks stay blocked. Record the model version in your provenance file so you can answer precisely.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Language and explicit flags&lt;/strong&gt; correct per track. Wrong language tags break editorial placement and lyric matching; wrong explicit flags get tracks pulled.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Genre and sub-genre&lt;/strong&gt; chosen from the taxonomy, not invented. Two levels is enough; five genres on one track is a stuffing pattern.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Artwork&lt;/strong&gt; that is not a photoreal generated face presented as the artist, carries no text that duplicates the title, and meets the store's size rules. Faces are the AI Persona trigger covered in &lt;a href="https://dev.to/blogs/spotify-ai-persona-badge-identity-stack-ai-assisted-artists-2026"&gt;the identity stack&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Release date and cadence&lt;/strong&gt; that a human could plausibly sustain. One account releasing daily is the shape in UMG's complaint against DistroKid, which cites 4,562 tracks from a single "Lofi Chill" act in twelve months.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Farm patterns to avoid on purpose
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Near-duplicate titles across releases ("Rain Lofi 1", "Rain Lofi 2").&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Tracks under about ninety seconds released in bulk. Short filler is an explicit spam signal.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Album art templates with only the number changed.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Ten aliases from one account uploading the same day.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Keyword strings in the title, artist name or album name.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Re-uploading an existing track under a new ISRC to reset its history.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Releasing more than you could describe from memory. If you cannot say what a track is, a reviewer cannot either.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;None of these require AI to trigger a filter. All of them are more likely when a generator makes volume free.&lt;/p&gt;

&lt;h2&gt;
  
  
  Build the gate around one failed track
&lt;/h2&gt;

&lt;p&gt;Checklists get skipped when they are abstract. Pick the release that went wrong for you: the one that matched to nobody, the one a store rejected, the one that sat outside recommendations for a reason you could not name. Write its metadata as it was next to how it should have been. That side-by-side is the training document for the gate; keep it at the top of the sheet. Ours is a devotional track whose lyricist credit read "Various" for eleven months while the performance income went to the unmatched pool.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tooling for the gate
&lt;/h2&gt;

&lt;p&gt;The gate is a spreadsheet and a folder, and it works best when the style sheet, the credits and the identifiers are the same document family. Our free &lt;a href="https://dev.to/tools/suno-prompt-builder"&gt;Suno Prompt Builder&lt;/a&gt; produces the structured style sheet that becomes the first page of the provenance file, and the &lt;a href="https://dev.to/tools/json-to-csv-converter"&gt;JSON to CSV converter&lt;/a&gt; flattens distributor statement exports into the works sheet for the quarterly audit. The &lt;a href="https://dev.to/product/regional-indian-music-pack-suno"&gt;Regional Indian Music Pack&lt;/a&gt; and &lt;a href="https://dev.to/product/edm-festival-bangers-suno"&gt;EDM Festival Bangers&lt;/a&gt; packs ship the credits and identifier templates pre-filled for the common lyricist-plus-composer case.&lt;/p&gt;

&lt;h2&gt;
  
  
  The cadence rule
&lt;/h2&gt;

&lt;p&gt;Volume was the 2024 strategy, and 2026 priced it out. Deezer sees roughly 90,000 AI tracks a day and strips fraud streams from payouts; Spotify's filter and persona review target the same shape; TIDAL pays wholly generated tracks nothing. A cadence of one or two releases a week, each with full credits, per-component disclosure and a video, survives every one of those systems. The market data behind that rule is in &lt;a href="https://dev.to/blogs/fully-ai-music-peaked-hybrid-rule-siqa-mid-year-2026"&gt;Fully AI music just peaked&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  The ninety-second run
&lt;/h2&gt;

&lt;p&gt;A gate nobody runs is decoration. Ours takes about ninety seconds per release because the fields are pre-filled from the provenance folder and the check is a scan, not a form. The order is deliberate: identifiers first, because they are the fields you cannot fix after delivery without a new release; disclosures second, because they are the fields a distributor will hold you to; presentation last, because titles and artwork can be corrected in place.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Open ids.json. Confirm ISRC present, ISWC present or registration queued with a date, writer splits summing to 100.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Open credits.json. Confirm each component (vocals, instrumentation, lyrics, post-production) has a value, the generator and model version are recorded, and the performer line names a human.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Read the title aloud. If it contains a keyword, a bracket or a number that is not part of the name, fix it and move the qualifier into the version field.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Look at the artwork at thumbnail size. If a stranger would assume the person on it is the singer and the person does not exist, change it.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Check the calendar. If this is the third release this week, hold it.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Two of those five will feel unnecessary on a good day. Run them anyway; the release that fails is never the one you expected.&lt;/p&gt;

&lt;h2&gt;
  
  
  Quick answers
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Does disclosing AI use on Spotify hurt streams?
&lt;/h3&gt;

&lt;p&gt;Spotify says disclosed AI involvement is not penalised or down-ranked. The AI credit is informational. Farm-shaped uploads and synthetic artist identities are what get restricted.&lt;/p&gt;

&lt;h3&gt;
  
  
  Which field becomes the Spotify AI credit?
&lt;/h3&gt;

&lt;p&gt;The per-component AI disclosure your distributor passes through DDEX. DistroKid was the first distributor wired to it in April 2026.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can a wrong AI declaration get my account closed?
&lt;/h3&gt;

&lt;p&gt;False declarations are treated as a contract breach by distributors, and Believe and TuneCore block tracks from generators they consider unlicensed. Declare accurately and keep the model version in your provenance file.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why does title formatting matter so much?
&lt;/h3&gt;

&lt;p&gt;Keyword-stuffed and near-duplicate titles are named signals in Spotify's spam criteria. Clean titles plus a version field keep a release out of that pattern.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is a safe release cadence?
&lt;/h3&gt;

&lt;p&gt;Whatever you can fully credit and describe from memory. For most independent acts that is one or two releases a week, far below the daily cadence cited in the UMG complaint.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Disclaimer:&lt;/strong&gt; This article describes the release practices we follow and is for informational purposes only. Platform and distributor policies change; verify current terms with your distributor and consult a qualified professional for legal questions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Fourteen fields, one failed track as the teacher. Every product mentioned is available at wowhow.cloud — pay once, ship forever.
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://wowhow.cloud/blogs/ai-music-metadata-release-checklist-ddex-ai-credits-spam-filter-2026" rel="noopener noreferrer"&gt;wowhow.cloud&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>aimusic</category>
      <category>spotifyai</category>
      <category>spotifyspam</category>
      <category>distrokidai</category>
    </item>
    <item>
      <title>macOS 27 Ships an LLM in Your Terminal: The fm Playbook</title>
      <dc:creator>Anup Karanjkar</dc:creator>
      <pubDate>Sun, 20 Sep 2026 13:16:10 +0000</pubDate>
      <link>https://dev.to/akaranjkar08/macos-27-ships-an-llm-in-your-terminal-the-fm-playbook-lj</link>
      <guid>https://dev.to/akaranjkar08/macos-27-ships-an-llm-in-your-terminal-the-fm-playbook-lj</guid>
      <description>&lt;p&gt;&lt;strong&gt;Your Mac now has a free, offline language model you can pipe text through, and most developers have not typed the two letters yet.&lt;/strong&gt; The &lt;code&gt;fm&lt;/code&gt; command ships preinstalled with macOS 27 as a terminal front end to Apple's Foundation Models: the same on-device small model that powers Apple Intelligence, with an opt-in path to the larger Private Cloud Compute model. It needs no account, no API key and charges nothing per token. Enable it once with &lt;code&gt;sudo fm license&lt;/code&gt;, then &lt;code&gt;fm chat&lt;/code&gt; gives you a conversation with slash commands and &lt;code&gt;fm respond&lt;/code&gt; writes a single answer to stdout, which is the mode that matters for scripts. It also speaks structured JSON, keeps transcripts, reports token counts and can run an OpenAI-compatible REST server on localhost.&lt;/p&gt;

&lt;p&gt;Short answer: &lt;code&gt;fm&lt;/code&gt; is the right tool for small, private, zero-cost text transforms inside shell pipelines: summarising a diff, classifying a log line, drafting a commit message, extracting fields to JSON. It is the wrong tool for long documents, code generation at scale and anything that needs a frontier model's judgement. Below are the five recipes we kept after a week, the failure table, and the decision rule between &lt;code&gt;fm&lt;/code&gt;, &lt;code&gt;mlx_lm&lt;/code&gt; and Ollama.&lt;/p&gt;

&lt;h2&gt;
  
  
  Setup in ninety seconds
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# one-time&lt;/span&gt;
&lt;span class="nb"&gt;sudo &lt;/span&gt;fm license

&lt;span class="c"&gt;# sanity check&lt;/span&gt;
fm respond &lt;span class="s2"&gt;"Reply with the single word READY."&lt;/span&gt;

&lt;span class="c"&gt;# structured output&lt;/span&gt;
fm respond &lt;span class="nt"&gt;--json&lt;/span&gt; &lt;span class="s1"&gt;'{"type":"object","properties":{"lang":{"type":"string"},"score":{"type":"number"}}}'&lt;/span&gt;   &lt;span class="s2"&gt;"Detect the language of: Bonjour tout le monde"&lt;/span&gt;

&lt;span class="c"&gt;# local OpenAI-compatible server for tools that expect one&lt;/span&gt;
fm serve &lt;span class="nt"&gt;--port&lt;/span&gt; 8734
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Flag names follow the WWDC26 session "Build AI-powered scripts with the fm CLI and Python SDK." If a flag differs on your build, &lt;code&gt;fm --help&lt;/code&gt; is authoritative; Apple has iterated the surface since the beta and third-party write-ups lag it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Five recipes worth keeping
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Commit message from a staged diff
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;gitmsg&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
  git diff &lt;span class="nt"&gt;--cached&lt;/span&gt; | &lt;span class="nb"&gt;head&lt;/span&gt; &lt;span class="nt"&gt;-c&lt;/span&gt; 12000 | fm respond     &lt;span class="s2"&gt;"Write a conventional commit message for this diff. First line under 72 chars, imperative mood, then a blank line and up to 4 bullet points. Output only the message."&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;head -c&lt;/code&gt; matters. The on-device context is small; feed it the first 12 KB and let it summarise, or it will truncate silently and describe half the change.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Log triage to JSON
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;tail&lt;/span&gt; &lt;span class="nt"&gt;-n&lt;/span&gt; 200 /var/log/app.log | fm respond &lt;span class="nt"&gt;--json&lt;/span&gt;   &lt;span class="s1"&gt;'{"type":"object","properties":{"errors":{"type":"integer"},"top_causes":{"type":"array","items":{"type":"string"}},"needs_human":{"type":"boolean"}}}'&lt;/span&gt;   &lt;span class="s2"&gt;"Classify these log lines. Count ERROR lines, list up to 3 distinct causes, set needs_human if any cause mentions data loss or auth."&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Structured output is where &lt;code&gt;fm&lt;/code&gt; earns its place. A JSON schema turns a chatty model into a function you can &lt;code&gt;jq&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Rename files by content
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="k"&gt;for &lt;/span&gt;f &lt;span class="k"&gt;in&lt;/span&gt; ~/Downloads/&lt;span class="k"&gt;*&lt;/span&gt;.pdf&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;do
  &lt;/span&gt;&lt;span class="nv"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;pdftotext &lt;span class="nt"&gt;-l&lt;/span&gt; 1 &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$f&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; - 2&amp;gt;/dev/null | &lt;span class="nb"&gt;head&lt;/span&gt; &lt;span class="nt"&gt;-c&lt;/span&gt; 4000 | fm respond     &lt;span class="s2"&gt;"Give a 6-word kebab-case filename for this document. Output only the filename, no extension."&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt;
  &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="nt"&gt;-n&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$name&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;mv&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$f&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; ~/Downloads/&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$name&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;.pdf
&lt;span class="k"&gt;done&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  4. Meeting notes to actions
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pbpaste | fm respond &lt;span class="s2"&gt;"Extract action items as a markdown checklist. Each item: owner in bold, task, due date if stated. Nothing else."&lt;/span&gt; | pbcopy
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Clipboard in, clipboard out. This is the recipe that gets used ten times a day once it exists.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Pre-filter before an expensive model
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;is_worth_reading&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
  fm respond &lt;span class="nt"&gt;--json&lt;/span&gt; &lt;span class="s1"&gt;'{"type":"object","properties":{"relevant":{"type":"boolean"}}}'&lt;/span&gt;     &lt;span class="s2"&gt;"Is this article about &lt;/span&gt;&lt;span class="nv"&gt;$1&lt;/span&gt;&lt;span class="s2"&gt;? Answer strictly."&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;cat&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; | jq &lt;span class="nt"&gt;-r&lt;/span&gt; .relevant
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="c"&gt;# use: curl -s "$url" | html2text | is_worth_reading "Next.js caching"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The pattern that saves the most money: let the free local model say no, and send only the yeses to the model you pay for. Our &lt;a href="https://dev.to/tools/token-counter"&gt;token counter&lt;/a&gt; and &lt;a href="https://dev.to/tools/ai-token-estimator"&gt;token estimator&lt;/a&gt; will show you how much of a paid budget a filter like this protects.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where it fails
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Task&lt;/th&gt;
&lt;th&gt;What happens&lt;/th&gt;
&lt;th&gt;Use instead&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;| Documents over a few thousand words | Silent truncation; the answer describes the first part | Chunk and map-reduce, or a larger local model via mlx_lm |&lt;/p&gt;

&lt;p&gt;| Multi-file code generation | Plausible but shallow; misses cross-file contracts | Claude Code or another frontier coding agent |&lt;/p&gt;

&lt;p&gt;| Facts after the model's training window | Confident, wrong | Anything with retrieval |&lt;/p&gt;

&lt;p&gt;| Long-form writing with voice | Generic register, repetitive structure | Frontier model plus a style lock |&lt;/p&gt;

&lt;p&gt;| Non-English nuance beyond major languages | Uneven; fine for classification, weak for generation | Larger open-weights model |&lt;/p&gt;

&lt;p&gt;| Strict schema with deep nesting | Occasional malformed field on complex schemas | Flatten the schema; validate with jq before use |&lt;/p&gt;

&lt;p&gt;None of these are surprising for a small on-device model. The mistake is expecting a frontier model because the interface looks like one.&lt;/p&gt;

&lt;h2&gt;
  
  
  The three-tool decision rule
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;code&gt;fm&lt;/code&gt;&lt;/strong&gt; when the input is under a few thousand words, privacy matters, the output is a classification, extraction or short draft, and zero cost per call is the point. It is also the only one of the three that needs no install.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;code&gt;mlx_lm&lt;/code&gt;&lt;/strong&gt; when you want a specific open-weights model running natively on Apple silicon, longer context, or reproducible results pinned to a model file. It is a Python dependency and a download, and it is worth both for anything serious.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Ollama&lt;/strong&gt; when you need the same model on a Linux box tomorrow, or a tool ecosystem that already speaks the Ollama API. Apple's &lt;code&gt;fm serve&lt;/code&gt; exposes an OpenAI-compatible endpoint, which closes some of that gap, but Ollama's catalogue and portability are still the reason to keep it.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Most shell work lands in the first bucket. The self-hosting logic behind the second and third is covered in &lt;a href="https://dev.to/blogs/self-hosting-stack-2026-what-to-run-yourself-cloud-in-a-bottle-opendesk-switzerland"&gt;the self-hosting stack for 2026&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Using fm from an agent
&lt;/h2&gt;

&lt;p&gt;Because &lt;code&gt;fm respond&lt;/code&gt; is a plain command, coding agents can call it as a tool. We wrapped the pre-filter recipe as a Claude Code skill so that a research task runs the free local classifier over fetched pages before the paid model reads any of them. The skill anatomy is in &lt;a href="https://dev.to/blogs/agent-skills-beat-agent-crews-claude-code-skill-files-2026"&gt;Agent skills beat agent crews&lt;/a&gt;, and the pattern of a cheap gate in front of an expensive worker is the same one that drives the cost rules in the &lt;a href="https://dev.to/product/claude-code-production-pack"&gt;Claude Code Production Pack&lt;/a&gt;. If you keep a notes vault, the &lt;a href="https://dev.to/product/obsidian-developer-productivity-vault-complete-set"&gt;Obsidian developer productivity vault&lt;/a&gt; has a shell-commands section where these functions belong. For the Claude Code settings that pair with local pre-filters, see &lt;a href="https://dev.to/blogs/claude-code-august-september-2026-settings-worth-enabling-2-1-238-to-2-1-261"&gt;the August to September settings roundup&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Privacy, cost and the PCC switch
&lt;/h2&gt;

&lt;p&gt;The default model runs entirely on the Mac. Inside &lt;code&gt;fm chat&lt;/code&gt;, &lt;code&gt;/model&lt;/code&gt; can switch to the Private Cloud Compute model for harder prompts; that request leaves the machine to Apple's attested servers, which is still a stronger privacy posture than most hosted APIs but is no longer "offline." For scripts that must never leave the device, stay on the default and say so in the script header so a future you does not flip the switch for speed.&lt;/p&gt;

&lt;h2&gt;
  
  
  Benchmark it on your own machine before you trust it
&lt;/h2&gt;

&lt;p&gt;Numbers from someone else's Mac are not your numbers, and the on-device model's speed depends on chip generation, memory pressure and what else is running. Measure before you wire fm into anything that matters. The script below records latency and output size for a fixed prompt set so you can compare across machines, after OS updates, and against mlx_lm on the same tasks.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;#!/bin/zsh&lt;/span&gt;
&lt;span class="c"&gt;# fm-bench.sh — run a fixed prompt set, log wall time and output length&lt;/span&gt;
&lt;span class="nv"&gt;prompts&lt;/span&gt;&lt;span class="o"&gt;=(&lt;/span&gt;
  &lt;span class="s2"&gt;"Summarise in one sentence: &lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;head&lt;/span&gt; &lt;span class="nt"&gt;-c&lt;/span&gt; 3000 README.md&lt;span class="si"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
  &lt;span class="s2"&gt;"Return JSON with keys lang,score for: Guten Morgen"&lt;/span&gt;
  &lt;span class="s2"&gt;"Write a conventional commit for: fix null check in parser"&lt;/span&gt;
&lt;span class="o"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;for &lt;/span&gt;p &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="nv"&gt;$prompts&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;do
  &lt;/span&gt;&lt;span class="nv"&gt;start&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;date&lt;/span&gt; +%s.%N&lt;span class="si"&gt;)&lt;/span&gt;
  &lt;span class="nv"&gt;out&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;fm respond &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$p&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt;
  &lt;span class="nv"&gt;end&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;date&lt;/span&gt; +%s.%N&lt;span class="si"&gt;)&lt;/span&gt;
  &lt;span class="nv"&gt;secs&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$end&lt;/span&gt;&lt;span class="s2"&gt; - &lt;/span&gt;&lt;span class="nv"&gt;$start&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; | bc&lt;span class="si"&gt;)&lt;/span&gt;
  &lt;span class="nv"&gt;chars&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;printf&lt;/span&gt; &lt;span class="s1"&gt;'%s'&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$out&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; | &lt;span class="nb"&gt;wc&lt;/span&gt; &lt;span class="nt"&gt;-c&lt;/span&gt; | &lt;span class="nb"&gt;tr&lt;/span&gt; &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;' '&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt;
  &lt;span class="nv"&gt;label&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;printf&lt;/span&gt; &lt;span class="s1"&gt;'%.40s'&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$p&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt;
  &lt;span class="nb"&gt;printf&lt;/span&gt; &lt;span class="s1"&gt;'%.2fs %s chars    %s
'&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$secs&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$chars&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$label&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
&lt;span class="k"&gt;done&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Run it three times cold and three times warm; the first call after a while pays a model-load cost that later calls do not. Record the median, not the best. Then run the same three prompts through your paid API and through an mlx_lm model of similar size. The comparison you want is not "which is fastest" but "which is fast enough to sit inside a keystroke," because that is the threshold at which a shell function gets used.&lt;/p&gt;

&lt;h2&gt;
  
  
  Turning recipes into a shell library
&lt;/h2&gt;

&lt;p&gt;Recipes typed once are recipes forgotten. Put the five functions in a single file, source it from your shell profile, and give each a one-line comment that doubles as its help text. Keep the prompts inside the functions rather than in separate files; the point of fm is that the whole tool fits in a place you can read. Add a guard at the top of the file that checks fm exists and returns quietly if not, so the same profile works on a Linux box. Version the file in your dotfiles, and when Apple changes a flag, you fix it in one place. Finally, resist the urge to add a sixth function on day one. The five above survived a week because they replaced something you already did by hand; a sixth that solves a problem you do not have will be the first thing you stop maintaining.&lt;/p&gt;

&lt;h2&gt;
  
  
  One-liners worth adapting
&lt;/h2&gt;

&lt;p&gt;Once the five functions exist, the same shape covers a surprising amount of daily friction. Each of these is a single &lt;code&gt;fm respond&lt;/code&gt; call with a strict instruction and, where the output feeds another command, a JSON schema.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Explain a cryptic error: pipe the last thirty lines of a failing build into fm with "Explain the root cause in two sentences and name the file to open first." It is wrong often enough that you still read the log, and right often enough that you read it faster.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Draft a pull request description from the branch's commit list, then edit. The model is good at turning ten commit lines into three paragraphs and poor at knowing which change mattered; you supply that.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Normalise messy CSV headers to snake_case before importing into a spreadsheet or a tool such as our &lt;a href="https://dev.to/tools/json-to-csv-converter"&gt;JSON to CSV converter&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Classify inbox exports by intent (invoice, support, spam, personal) into JSON, then let a script move the files. Keep the schema flat; nested objects are where the small model slips.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Rewrite a paragraph at a fixed reading level for documentation, with the instruction to keep every number and every proper noun unchanged. Check the numbers anyway.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The pattern behind all of them is the same as the pre-filter recipe: a cheap, private, local model does the first pass, a human or a paid model does the judgement, and nothing leaves the machine unless you decide it should. That division is what makes a two-letter command worth a place in your shell profile.&lt;/p&gt;

&lt;h2&gt;
  
  
  Quick answers
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Is fm available on macOS 26?
&lt;/h3&gt;

&lt;p&gt;Community write-ups report fm running on macOS 26 as well. It is preinstalled with macOS 27; run fm --help to confirm what your build exposes.&lt;/p&gt;

&lt;h3&gt;
  
  
  Does fm cost anything or need an account?
&lt;/h3&gt;

&lt;p&gt;No. It runs the on-device Apple Intelligence model with no account, API key or per-token charge. Enable it once with sudo fm license.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can fm load other models like Llama or Qwen?
&lt;/h3&gt;

&lt;p&gt;Not through fm itself. Use mlx_lm for open-weights models on Apple silicon, or Ollama for portability across machines.&lt;/p&gt;

&lt;h3&gt;
  
  
  How big an input can fm handle?
&lt;/h3&gt;

&lt;p&gt;Small. Treat a few thousand words as the ceiling, feed it the head of a document, and chunk anything longer.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can other tools talk to fm?
&lt;/h3&gt;

&lt;p&gt;Yes. fm serve exposes an OpenAI-compatible local endpoint, so tools that accept a base URL can point at it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Two letters, zero dollars, five recipes. Every product mentioned is available at wowhow.cloud — pay once, ship forever.
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://wowhow.cloud/blogs/macos-27-fm-cli-offline-llm-terminal-playbook-2026" rel="noopener noreferrer"&gt;wowhow.cloud&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>macos27</category>
      <category>applefoundation</category>
      <category>fmrespond</category>
      <category>offlinellm</category>
    </item>
    <item>
      <title>Suno v6 Retired Every Older Model. The Artist Continuity System.</title>
      <dc:creator>Anup Karanjkar</dc:creator>
      <pubDate>Sun, 20 Sep 2026 13:15:37 +0000</pubDate>
      <link>https://dev.to/akaranjkar08/suno-v6-retired-every-older-model-the-artist-continuity-system-1557</link>
      <guid>https://dev.to/akaranjkar08/suno-v6-retired-every-older-model-the-artist-continuity-system-1557</guid>
      <description>&lt;p&gt;&lt;strong&gt;The voice your AI artist had last month was rented from a model version, and the lease ended on 9 September 2026.&lt;/strong&gt; That day Suno shipped the v6 family (v6 and v6-wild for Pro and Premier, v6-mini for everyone) and removed v5, v4.5 and v4 from the model picker with no rollback. Six days earlier, on 3 September, download caps went live and they apply to every song in your library, including tracks made before the change: 7 lifetime downloads on Free, 20 a month on Pro, 60 a month on Premier, unlimited only for Premier subscribers working inside Studio. Existing generations stay playable, shareable and remixable. What you cannot do is regenerate a v5 track on v5, ever again.&lt;/p&gt;

&lt;p&gt;Short answer: artist identity has to live in a specification you own, outside the platform, or every forced model change recasts your singer. The system below is what we ran across a 100-plus-track catalogue in two Indian-language artist identities the week v6 landed. It has five parts: a sonic fingerprint sheet, a regeneration A/B drill, a drift scorecard with pass thresholds, a download budget ledger, and a catalogue triage.&lt;/p&gt;

&lt;h2&gt;
  
  
  What actually changed, and what did not
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Change&lt;/th&gt;
&lt;th&gt;Date&lt;/th&gt;
&lt;th&gt;Effect on an existing catalogue&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;| Download caps: Free 7 lifetime, Pro 20/month, Premier 60/month (unlimited in Studio) | 3 September 2026 | Applies to old songs too. An undownloaded v5 track now sits behind a meter. |&lt;/p&gt;

&lt;p&gt;| v6, v6-wild, v6-mini released | 9 September 2026 | New sonic defaults, new prompt behaviour, new "wild" variance mode. |&lt;/p&gt;

&lt;p&gt;| v5, v4.5, v4 removed from the picker | 9 September 2026 | No rollback. Covers and remixes of old songs run on v6. |&lt;/p&gt;

&lt;p&gt;| Existing library | Unchanged | Playable, shareable, usable as the basis for covers and remixes. |&lt;/p&gt;

&lt;p&gt;The download cap is the quiet one. A catalogue strategy built on "generate a hundred, download the best ten later" now costs real money or real waiting. Selection has to happen before the download, which is why the ledger below exists.&lt;/p&gt;

&lt;h2&gt;
  
  
  Part 1: the sonic fingerprint sheet
&lt;/h2&gt;

&lt;p&gt;A fingerprint sheet is to a voice what a hero sheet is to a face. It records the identity in words precise enough to re-derive it on a model that has never heard it. Six fields, one page per artist.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ARTIST: Meera (romantic Hindi, female lead)
VOICE: warm alto, slight breathiness on sustained vowels, minimal vibrato,
       clean consonants, no autotune shimmer
REGISTER: verses low-mid, chorus lifts a fifth, never belts
DICTION: Hindustani vowels, Urdu-leaning consonants in ghazal tracks
ARRANGEMENT DNA: acoustic guitar + tabla + light strings; bass enters at chorus;
       no EDM drops; 84–96 BPM
MIX SIGNATURE: dry vocal forward, short plate on strings, mono verse intro
FORBIDDEN: no stacked pop harmonies, no whistle register, no trap hats,
       no English hook lines
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The forbidden block is written from failures. Every time v6 drifts, the drift becomes a line. Our free &lt;a href="https://dev.to/tools/suno-prompt-builder"&gt;Suno Prompt Builder&lt;/a&gt; outputs this six-field shape directly, so the sheet and the style string are the same document.&lt;/p&gt;

&lt;h2&gt;
  
  
  Part 2: the v5-to-v6 regeneration drill
&lt;/h2&gt;

&lt;p&gt;Pick three signature tracks per artist. Not the newest; the ones listeners would recognise. For each, keep the original v5 render as the reference and run the same lyric and fingerprint on v6 and on v6-wild, three generations each. Do it now, because the reference renders you already downloaded are the only v5 evidence you will ever have.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Same lyric, same style string, v6 default. Three takes.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Same, v6-wild. Three takes. Wild is where the model takes liberties; you need to know which liberties.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Score all six against the fingerprint with the drift scorecard below.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Adjust the style string, not the lyric, and repeat once.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Write the adjustments into the fingerprint sheet as "v6 translation notes."&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;In our runs the most common v6 drift was register: choruses lifted further and brighter than the v5 identity, and the fix was an explicit ceiling in the register line rather than more adjectives on the voice.&lt;/p&gt;

&lt;h2&gt;
  
  
  Part 3: the drift scorecard
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Check&lt;/th&gt;
&lt;th&gt;Pass condition&lt;/th&gt;
&lt;th&gt;Weight&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;| Timbre | Same voice family, breathiness and vibrato within the sheet | 3 |&lt;/p&gt;

&lt;p&gt;| Register | Chorus lift within the stated interval; no belting if forbidden | 2 |&lt;/p&gt;

&lt;p&gt;| Diction | Vowel and consonant treatment matches the language notes | 2 |&lt;/p&gt;

&lt;p&gt;| Arrangement DNA | Named instruments present, forbidden elements absent, tempo in range | 2 |&lt;/p&gt;

&lt;p&gt;| Mix signature | Vocal placement and space match | 1 |&lt;/p&gt;

&lt;p&gt;Ten points total. Eight or above ships. Six or seven is a style-string fix. Below six on two consecutive takes means the fingerprint sheet is ambiguous; rewrite the sheet before generating again. This is the same "fix the document, not the dice" rule we use for faces in &lt;a href="https://dev.to/blogs/identity-lock-ai-video-character-consistency-system-2026"&gt;Identity Lock for AI video&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Part 4: the download budget ledger
&lt;/h2&gt;

&lt;p&gt;Twenty downloads a month on Pro is a selection funnel, not a limit. Treat it like one.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;month: 2026-10   plan: Pro   cap: 20   used: 7   reserve: 3

 #  track                 takes  best_score  download?  reason
 1  Raat Ki Baatein v6    6      9/10        yes        release 10-04
 2  Saawan (cover)        4      7/10        no         register drift, re-string
 3  Dil Se Door           5      8/10        yes        release 10-11
 ...
rules:
- never download below 8/10
- keep 3 downloads in reserve for fixes on released tracks
- score in-app first; download is the last step, not the first
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Premier subscribers who work in Studio are exempt from the meter, which is Suno's intended upsell. For everyone else, the ledger turns a cap into a discipline that most catalogues needed anyway.&lt;/p&gt;

&lt;h2&gt;
  
  
  Part 5: catalogue triage
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Freeze&lt;/strong&gt; released v5 tracks. They are done; the identity they carry is now historical. Do not re-cut them on v6 unless a release is broken.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Re-cut&lt;/strong&gt; only unreleased favourites where the v6 drill scores 8 or better. Anything lower waits for a fingerprint revision.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Retire&lt;/strong&gt; works-in-progress that depended on a v5 quirk you cannot reproduce. Note the quirk in the sheet so you stop chasing it.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Provenance&lt;/strong&gt;: record the model version in every release file from now on. Model version is now part of the credit, and part of the story if a distributor ever asks how a track was made. The file structure is in &lt;a href="https://dev.to/blogs/distrokid-pays-the-master-iprs-pays-the-song-two-royalty-pipes-india-2026"&gt;the two royalty pipes&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The distribution angle
&lt;/h2&gt;

&lt;p&gt;There is a second reason to know exactly which model made each track. Believe and TuneCore have blocked distribution of tracks made on generators they consider unlicensed since April 2026, and later opened distribution to tracks from Suno's new industry partner model while older-model tracks stay blocked. Your v5 back catalogue and your v6 releases may be treated differently by the same distributor. A provenance file with the model version is how you answer that question in one line instead of an afternoon. The market context for all of this, from TIDAL's zero-royalty rule to the SIQA numbers on hybrid work, is in &lt;a href="https://dev.to/blogs/fully-ai-music-peaked-hybrid-rule-siqa-mid-year-2026"&gt;Fully AI music just peaked&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where the packs fit
&lt;/h2&gt;

&lt;p&gt;If you build in Indian genres, the &lt;a href="https://dev.to/product/regional-indian-music-pack-suno"&gt;Regional Indian Music Pack&lt;/a&gt; ships fingerprint sheets for the common romantic, devotional and folk identities in the six-field format above, and the &lt;a href="https://dev.to/product/lofi-chill-beats-generator-suno"&gt;Lofi Chill Beats Generator&lt;/a&gt; includes the arrangement-DNA and forbidden blocks that keep an instrumental catalogue from collapsing into Suno's median. Start with the tag mechanics in &lt;a href="https://dev.to/blogs/suno-prompt-guide-style-of-music-tags-2026"&gt;the style-of-music tag guide&lt;/a&gt;, then write your sheet.&lt;/p&gt;

&lt;h2&gt;
  
  
  The v6-wild question: variance as a tool, not a mood
&lt;/h2&gt;

&lt;p&gt;v6-wild is the setting that tempts everyone and burns the most budget. It trades fidelity to the prompt for range, which is useful in exactly one place in this system: the exploration pass, before the fingerprint sheet is final. Run wild when you are still discovering what an artist could be. Run default once you have decided who the artist is. Mixing the two inside one release is how a catalogue that took a year to sound like one person starts sounding like four.&lt;/p&gt;

&lt;p&gt;A practical protocol. Give wild a fixed budget per artist per month, say six generations, and use them on takes you will never release: alternate arrangements, unexpected instrument palettes, a tempo you would not normally try. Score each against the fingerprint anyway. Anything that scores eight or above on wild is a signal that the sheet is under-specified, because the model found a different valid reading of it; tighten the sheet. Anything that scores five or below but sounds wonderful is a candidate for a second artist identity, not a change to this one. Write the discovery into a separate sheet and stop. Discipline here is what makes the download ledger work: wild takes are scored in-app and almost never downloaded, so they cost generations, not meter.&lt;/p&gt;

&lt;p&gt;v6-mini deserves a sentence too. It is the free tier's model and the one your listeners on free accounts are hearing from your competitors. Generate one take of a signature track on mini, score it, and keep the result in the provenance file as the baseline your paid workflow must clearly beat. If it does not, the fingerprint is doing less work than the model, and that is the real risk of a forced upgrade.&lt;/p&gt;

&lt;h2&gt;
  
  
  Quick answers
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Can I still use Suno v5 or v4.5?
&lt;/h3&gt;

&lt;p&gt;No. Suno removed v5, v4.5 and v4 from the model picker on 9 September 2026 with no rollback. Existing songs stay in your library and can be covered or remixed, which runs on v6.&lt;/p&gt;

&lt;h3&gt;
  
  
  Do the download caps apply to songs I made before 3 September?
&lt;/h3&gt;

&lt;p&gt;Yes. The caps meter every download from your library: 7 lifetime on Free, 20 a month on Pro, 60 on Premier, unlimited for Premier users working in Studio.&lt;/p&gt;

&lt;h3&gt;
  
  
  Will my Personas and custom voices survive the model change?
&lt;/h3&gt;

&lt;p&gt;Suno has not published specific guidance on identity features built on retired models. Assume nothing and re-derive the voice from a fingerprint sheet you own.&lt;/p&gt;

&lt;h3&gt;
  
  
  Should I re-cut my whole catalogue on v6?
&lt;/h3&gt;

&lt;p&gt;No. Freeze released tracks, re-cut only unreleased favourites that score 8 of 10 on the drift scorecard, and retire pieces that depended on a v5 quirk.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is the single most important habit after v6?
&lt;/h3&gt;

&lt;p&gt;Record the model version in every release file and score takes in-app before downloading. Both cost nothing and both save you the next time a platform changes the rules.&lt;/p&gt;

&lt;h2&gt;
  
  
  Own the spec, rent the model. Every product mentioned is available at wowhow.cloud — pay once, ship forever.
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://wowhow.cloud/blogs/suno-v6-retired-models-download-caps-artist-continuity-system-2026" rel="noopener noreferrer"&gt;wowhow.cloud&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>sunov6</category>
      <category>sunov5</category>
      <category>sunodownload</category>
      <category>aiartist</category>
    </item>
    <item>
      <title>Do Not Hire 12 Agents. Write 12 Skills. A Creator OS.</title>
      <dc:creator>Anup Karanjkar</dc:creator>
      <pubDate>Sun, 20 Sep 2026 13:15:05 +0000</pubDate>
      <link>https://dev.to/akaranjkar08/do-not-hire-12-agents-write-12-skills-a-creator-os-1joe</link>
      <guid>https://dev.to/akaranjkar08/do-not-hire-12-agents-write-12-skills-a-creator-os-1joe</guid>
      <description>&lt;p&gt;&lt;strong&gt;The repos climbing GitHub this month tell you where agent engineering went: skills, not crews.&lt;/strong&gt; Anthropic's public &lt;code&gt;anthropics/skills&lt;/code&gt; repository, the community &lt;code&gt;awesome-agent-skills&lt;/code&gt; collection with more than a thousand entries, NVIDIA's &lt;code&gt;skills&lt;/code&gt; pack for robotics and CUDA workflows, and community libraries carrying 380-plus production skills all share one shape. Each skill is a folder with a &lt;code&gt;SKILL.md&lt;/code&gt; that a coding agent loads when the task matches. No orchestrator personas. No twelve-box crew diagram. The market voted, and it voted for reusable competence over rented attention.&lt;/p&gt;

&lt;p&gt;Short answer: a skill is a written procedure with a trigger, inputs, forbidden actions and a verification step. One strong agent plus a shelf of skills beats a crew of specialists on cost, on consistency and on debuggability, for the reasons the &lt;em&gt;Nature Machine Intelligence&lt;/em&gt; coordination study quantified in July. This piece gives you the decision table, the skill anatomy we ship, a daily ritual loop and the cost cap that keeps it honest.&lt;/p&gt;

&lt;h2&gt;
  
  
  Skill versus agent: the decision table
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;You want&lt;/th&gt;
&lt;th&gt;Write a skill when&lt;/th&gt;
&lt;th&gt;Spin up an agent when&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;| Consistent output format | Always. Formats are rules, not personalities. | Never. |&lt;/p&gt;

&lt;p&gt;| Domain procedure (deploy, publish, audit) | The steps are known and repeatable. | The steps require a different tool set or model than the main agent has. |&lt;/p&gt;

&lt;p&gt;| Quality check | The check can be run as a script or checklist inside the same run. | The checker must not see the maker's reasoning (audit wall). |&lt;/p&gt;

&lt;p&gt;| Parallel throughput | Units are few and sequential is fine. | Many independent, read-heavy units that do not need to agree. |&lt;/p&gt;

&lt;p&gt;| Memory of project facts | Always. A lock file, read at start. | Never. Memory agents are the most expensive way to store a paragraph. |&lt;/p&gt;

&lt;p&gt;The right column is short on purpose. It matches the three tests in &lt;a href="https://dev.to/blogs/multi-agent-tax-one-agent-default-nature-machine-intelligence-2026"&gt;the multi-agent tax&lt;/a&gt;: different capability, audit wall, real parallelism. Everything else is a skill.&lt;/p&gt;

&lt;h2&gt;
  
  
  Anatomy of a skill file
&lt;/h2&gt;

&lt;p&gt;A skill that survives contact with a real project has five parts. Frontmatter with a name and a one-line description the agent matches against. A trigger section that says when to load it and, just as important, when not to. Inputs it expects. Forbidden actions. A verification block that produces evidence, not a feeling.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="nn"&gt;---&lt;/span&gt;
&lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;publish-blog-post&lt;/span&gt;
&lt;span class="na"&gt;description&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Add a post module, register it in the barrel, validate SEO fields, and verify the route renders. Use when asked to publish or add a blog post.&lt;/span&gt;
&lt;span class="nn"&gt;---&lt;/span&gt;

&lt;span class="c1"&gt;# Publish blog post&lt;/span&gt;

&lt;span class="c1"&gt;## Trigger&lt;/span&gt;
&lt;span class="s"&gt;Use when the task creates or edits a post under src/data/blog-posts/.&lt;/span&gt;
&lt;span class="s"&gt;Do NOT use for WordPress-resident posts (see wp-post-edit skill).&lt;/span&gt;

&lt;span class="c1"&gt;## Inputs&lt;/span&gt;
&lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;slug, title, meta_description, content (HTML), category, tags&lt;/span&gt;
&lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;published_at in YYYY-MM-DD&lt;/span&gt;

&lt;span class="c1"&gt;## Procedure&lt;/span&gt;
&lt;span class="s"&gt;1. Create src/data/blog-posts/-.ts exporting a BlogPost[]&lt;/span&gt;
&lt;span class="s"&gt;2. Import it in src/data/blog-posts.ts, add slug to POST_ORDER (top), spread into posts&lt;/span&gt;
&lt;span class="na"&gt;3. Run the validator&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;node scripts/validate-post.mjs&lt;/span&gt; 

&lt;span class="c1"&gt;## Forbidden&lt;/span&gt;
&lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;Never edit next.config.ts redirects; use src/data/blog-redirects.ts&lt;/span&gt;
&lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;Never set author to a personal name; author is the brand&lt;/span&gt;
&lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;Never publish under 1,500 words in STANDARD mode&lt;/span&gt;

&lt;span class="c1"&gt;## Verification (must all pass)&lt;/span&gt;
&lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;validator exits 0&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;meta 120–150 chars, no apostrophes, title 50–65 chars&lt;/span&gt;
&lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;npx tsc --noEmit reports 0 errors&lt;/span&gt;
&lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;curl -s localhost:3002/blogs/ | grep -c 'application/ld+json' &amp;gt;= &lt;/span&gt;&lt;span class="m"&gt;2&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Notice what is not in it: no persona, no "you are an expert editor." The agent already has a model. What it lacks is the procedure, the guardrails and the definition of done. A skill supplies exactly those three things, and nothing else.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where skills live and how they load
&lt;/h2&gt;

&lt;p&gt;Claude Code reads project skills from &lt;code&gt;.claude/skills/&amp;lt;name&amp;gt;/SKILL.md&lt;/code&gt; and personal skills from &lt;code&gt;~/.claude/skills&lt;/code&gt;. Codex, Gemini CLI and Cursor now read the same folder shape through the community libraries, which is why the big repositories advertise compatibility with eight or nine agents at once. Keep project skills in the repo so they version with the code, and keep the shelf small: a dozen skills that are each loaded weekly beat a hundred that nobody remembers. The &lt;code&gt;/skill-doctor&lt;/code&gt; report covered in &lt;a href="https://dev.to/blogs/how-teams-manage-claude-code-skills-files-skill-doctor-git-symlinks-evals-2026"&gt;how teams manage skills files&lt;/a&gt; tells you which ones have drifted from the code they describe.&lt;/p&gt;

&lt;h2&gt;
  
  
  The project bible and the consistency lock
&lt;/h2&gt;

&lt;p&gt;Skills are procedures. They still need facts. Two files carry them.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Project Bible&lt;/strong&gt; (&lt;code&gt;CLAUDE.md&lt;/code&gt; or &lt;code&gt;AGENTS.md&lt;/code&gt;): what this project is, the hard rules that came from real incidents, the paths that matter, the commands that are the only sanctioned way to do a thing.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Consistency Lock&lt;/strong&gt;: the immutable vocabulary. Brand name, voice rules, banned phrases, output formats, colour tokens. Read at the start of every run and referenced by skills rather than duplicated inside them.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Between them, a single agent has more usable context than a crew where each specialist carries a partial copy of the same facts and they disagree at turn nine.&lt;/p&gt;

&lt;h2&gt;
  
  
  The daily ritual loop
&lt;/h2&gt;

&lt;p&gt;A Creator OS is a loop, not a launch. Ours has four beats and each beat is a skill.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Plan&lt;/strong&gt; (&lt;code&gt;plan-day&lt;/code&gt;): read the bible, read the queue, produce a ranked list with a token budget per item.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Make&lt;/strong&gt; (&lt;code&gt;make-&amp;lt;artefact&amp;gt;&lt;/code&gt;): one skill per artefact type. Blog post, product listing, video shot list, release metadata.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Gate&lt;/strong&gt; (&lt;code&gt;qa-gate&lt;/code&gt;): the one place an audit wall exists. Reads artefact and spec only, returns JSON with pass/fail per check and a reject class.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Ship&lt;/strong&gt; (&lt;code&gt;ship-&amp;lt;channel&amp;gt;&lt;/code&gt;): commit, deploy, purge, verify the live body, log the cost.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The gate is allowed to be a second agent because it passes the audit-wall test. Nothing else in the loop is.&lt;/p&gt;

&lt;h2&gt;
  
  
  Cost cap per ritual
&lt;/h2&gt;

&lt;p&gt;Every skill declares a token ceiling in its frontmatter, and the plan skill sums them before the day starts. If the sum exceeds the day's budget, items get cut from the bottom of the ranked list, not squeezed. We size the ceilings with the &lt;a href="https://dev.to/tools/token-counter"&gt;token counter&lt;/a&gt; on the actual bible and lock files, because the fixed cost of reading context is the part people forget. A skill that costs 4,000 tokens to load and saves ten minutes is a bargain; a skill that costs 40,000 because it inlines a style guide the lock already holds is a leak.&lt;/p&gt;

&lt;h2&gt;
  
  
  Promotion path: skill to product
&lt;/h2&gt;

&lt;p&gt;A skill that runs cleanly for a month is a product. The &lt;code&gt;publish-blog-post&lt;/code&gt; skill above became the production rules in the &lt;a href="https://dev.to/product/claude-code-production-pack"&gt;Claude Code Production Pack&lt;/a&gt;, which ships the 26 agents, 14 skills and the rule files that run a live 4,000-product store. The bible-first pattern is packaged as the &lt;a href="https://dev.to/product/claude-md-production-rules"&gt;CLAUDE.md production rules&lt;/a&gt;, and if you are starting from nothing, the &lt;a href="https://dev.to/product/claude-code-claude-md-starter-templates-pack"&gt;CLAUDE.md starter templates&lt;/a&gt; give you the bible and lock skeletons. For writing the gate prompt itself, our free &lt;a href="https://dev.to/tools/gauntlet-prompt-generator"&gt;Gauntlet Prompt Generator&lt;/a&gt; produces the criteria table the QA skill checks against.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the trending repos get wrong
&lt;/h2&gt;

&lt;p&gt;Volume. A library of a thousand skills is a search problem, and an agent that matches descriptions loosely will load the wrong one. Curate hard: pull in the five you need, rewrite the trigger sections for your project, delete the personas some authors sneak into the procedure, and add the verification block if it is missing. Most published skills stop at the procedure and never define done. A skill without verification is a suggestion.&lt;/p&gt;

&lt;h2&gt;
  
  
  Three skills to write this week
&lt;/h2&gt;

&lt;p&gt;Do not start with a library. Start with the three procedures you repeat most and resent most. For a solo creator or a small product team these are almost always the same three.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;code&gt;ship-checklist&lt;/code&gt;.&lt;/strong&gt; Trigger: any task that ends in a deploy or a publish. Inputs: the artefact path and the target environment. Procedure: the exact commands in the exact order, including the verification curl against the live URL. Forbidden: bypassing the pre-push hook, force-pushing, skipping the cache purge. Verification: the live body contains the new marker and the deploy run reports success. This skill alone removes the class of incident where the build passed and the page still served the old version.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;code&gt;write-in-voice&lt;/code&gt;.&lt;/strong&gt; Trigger: any public copy. Inputs: the audience and the artefact type. Procedure: read the Consistency Lock, draft, then run the banned-phrase scan and the reading-level check. Forbidden: the phrase list, personal names where the brand belongs, invented statistics. Verification: the scan returns zero hits and every number has a source line. Pair it with the editing workflow in &lt;a href="https://dev.to/blogs/writing-with-ai-without-llm-tells-cantrill-cognitive-virus-editing-workflow-2026"&gt;writing with AI without the LLM tells&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;code&gt;qa-gate&lt;/code&gt;.&lt;/strong&gt; Trigger: invoked by the other two, never by a human directly. Inputs: the artefact and the spec only, with the transcript withheld. Procedure: run each criterion, record evidence, return JSON. Forbidden: rewriting the artefact, suggesting improvements, conversing. Verification: the JSON validates against the gate schema and every check has an evidence string.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Write these three, run them for a week, and count the turns your main agent no longer spends explaining itself. Then, and only then, pull a fourth from the public libraries and rewrite its trigger and verification blocks to match. A shelf built one proven skill at a time stays small enough that the agent loads the right one every time, which is the whole point.&lt;/p&gt;

&lt;h2&gt;
  
  
  Quick answers
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What is the difference between an agent skill and an agent?
&lt;/h3&gt;

&lt;p&gt;A skill is a written procedure with a trigger, inputs, forbidden actions and a verification step that a single agent loads on demand. An agent is a separate model instance with its own context and cost per turn.&lt;/p&gt;

&lt;h3&gt;
  
  
  Which skill repositories are worth starting from?
&lt;/h3&gt;

&lt;p&gt;Anthropic's official skills repository for the reference shape, awesome-agent-skills for breadth, and vendor packs such as NVIDIA's for domain procedures. Curate down to a dozen and rewrite triggers for your project.&lt;/p&gt;

&lt;h3&gt;
  
  
  Do skills work outside Claude Code?
&lt;/h3&gt;

&lt;p&gt;The SKILL.md folder convention is now read by Codex, Gemini CLI, Cursor and others through the community libraries. Keep skills in the repo so they version with the code.&lt;/p&gt;

&lt;h3&gt;
  
  
  When is a second agent justified?
&lt;/h3&gt;

&lt;p&gt;When it needs a different tool set or model, when it must not see the maker's reasoning, or when many independent read-heavy units run in parallel. Otherwise write a skill.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do I keep skill costs down?
&lt;/h3&gt;

&lt;p&gt;Declare a token ceiling per skill, reference the lock file instead of inlining style guides, and sum ceilings in the plan step before the day starts.&lt;/p&gt;

&lt;h2&gt;
  
  
  Twelve skills, one agent, one gate. Every product mentioned is available at wowhow.cloud — pay once, ship forever.
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://wowhow.cloud/blogs/agent-skills-beat-agent-crews-claude-code-skill-files-2026" rel="noopener noreferrer"&gt;wowhow.cloud&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>claudecode</category>
      <category>skillmdanatomy</category>
      <category>agentskills</category>
      <category>anthropicsskills</category>
    </item>
    <item>
      <title>DistroKid Pays the Master. IPRS Pays the Song. Collect Both.</title>
      <dc:creator>Anup Karanjkar</dc:creator>
      <pubDate>Sun, 20 Sep 2026 07:16:42 +0000</pubDate>
      <link>https://dev.to/akaranjkar08/distrokid-pays-the-master-iprs-pays-the-song-collect-both-2gd</link>
      <guid>https://dev.to/akaranjkar08/distrokid-pays-the-master-iprs-pays-the-song-collect-both-2gd</guid>
      <description>&lt;p&gt;&lt;strong&gt;One stream, two cheques, and most AI artists only ever cash the first.&lt;/strong&gt; When a track plays on Spotify, two different rights earn money. The &lt;em&gt;master&lt;/em&gt;, the recording itself, pays through your distributor. The &lt;em&gt;composition&lt;/em&gt;, the melody and lyric underneath, pays through a performing rights organisation and a publisher. DistroKid, TuneCore and the rest handle the first pipe. In India, the second pipe runs through the Indian Performing Right Society (IPRS), and for a large share of independent AI-assisted catalogues it is not connected to anything.&lt;/p&gt;

&lt;p&gt;Short answer: register the songs, not just the account. Get an ISWC for each work alongside the ISRC your distributor assigns to each recording, join IPRS as an author and composer if you wrote the lyrics and directed the melody, keep an authorship file per release that records the human decisions, and audit both pipes quarterly. The rest of this piece is that sequence, written for Indian creators with a global twin where the mechanics differ.&lt;/p&gt;

&lt;h2&gt;
  
  
  The five royalties on one stream
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Royalty&lt;/th&gt;
&lt;th&gt;Right&lt;/th&gt;
&lt;th&gt;Who collects it&lt;/th&gt;
&lt;th&gt;Identifier&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;| Streaming / master | Sound recording | Distributor (DistroKid, TuneCore, CD Baby) to you | ISRC |&lt;/p&gt;

&lt;p&gt;| Performance | Composition, public performance including streaming | PRO (IPRS in India; ASCAP, BMI, PRS abroad) to writer and publisher | ISWC + IPI/CAE number |&lt;/p&gt;

&lt;p&gt;| Mechanical | Composition, reproduction | PRO or mechanical society, or a publishing administrator | ISWC |&lt;/p&gt;

&lt;p&gt;| Neighbouring / performer | Performance on the recording | Performer societies where they exist (ISRA in India for singers) | ISRC |&lt;/p&gt;

&lt;p&gt;| Sync | Both master and composition, licensed for picture | Negotiated per use | Both |&lt;/p&gt;

&lt;p&gt;If you generate a track, write the lyric yourself, direct the melody with iterations and choices, and upload through DistroKid, you have connected exactly one row of that table. The performance and mechanical rows sit empty until a work is registered. The money is not lost immediately; societies hold unmatched income for a period and then distribute it by market share. Which means the biggest catalogues get paid for your unregistered song.&lt;/p&gt;

&lt;h2&gt;
  
  
  ISRC versus ISWC: the split everyone blurs
&lt;/h2&gt;

&lt;p&gt;An &lt;strong&gt;ISRC&lt;/strong&gt; identifies a recording. Your distributor assigns one per track, per version. A remaster, an instrumental and a radio edit each get their own. An &lt;strong&gt;ISWC&lt;/strong&gt; identifies the underlying work, the composition and lyric, and one work can sit under dozens of ISRCs. It is issued when a PRO or publisher registers the work with writer splits.&lt;/p&gt;

&lt;p&gt;The failure mode is treating the ISRC as proof of ownership of the song. It proves ownership of the recording. Cover the same composition twice with two Suno generations and you have two ISRCs and, until you register, zero ISWCs. When a society tries to match a stream to a writer, it is the ISWC and the writer's IPI number it is looking for.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Indian law says, and what it does not
&lt;/h2&gt;

&lt;p&gt;Section 2(d)(vi) of the Copyright Act, 1957 defines the author of a computer-generated literary, dramatic, musical or artistic work as "the person who causes the work to be created." That clause predates generative AI by decades and has not been tested in court against a Suno output, which is why Indian commentary in 2026 leans on the human authorship doctrine: the more a human directed the result through lyric writing, selection, refinement and arrangement decisions, the stronger the claim that a human-authored work exists. The US Copyright Office takes a stricter line and requires human authorship in the protected elements. IPRS has been reviewing its own AI framework and, as of mid-2026, formal rules were still pending.&lt;/p&gt;

&lt;p&gt;The operating consequence is not "claim everything." It is &lt;strong&gt;claim what you actually did, and document it before the claim is questioned.&lt;/strong&gt; A lyric you wrote is a literary work whether the melody came from a model or a guitar. A melody you selected from twenty generations, edited and arranged is a stronger claim than one you accepted on the first try. Prompts alone are not a chain of title; decisions are.&lt;/p&gt;

&lt;h2&gt;
  
  
  The IPRS sequence that registers works
&lt;/h2&gt;

&lt;p&gt;Membership is not registration. Plenty of creators join, receive a member number and never register a single work, which earns exactly nothing.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Join in the correct capacity.&lt;/strong&gt; Author (lyricist), composer, or both. If you also want to hold the publisher share, that is a separate publisher membership or a deal with a publishing administrator.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Get your IPI number.&lt;/strong&gt; This is your identifier across every society worldwide. Keep it with your ISRC list.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Register each work&lt;/strong&gt; with title, alternate titles, writer splits, and the ISRCs of every recording of it. This is where the ISWC is issued.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Attach the recordings.&lt;/strong&gt; Link ISRCs to the ISWC so streams match to the work automatically.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Repeat per release.&lt;/strong&gt; Automate it: a spreadsheet row per work with title, writers, splits, ISWC, ISRCs, release date, distributor, and the path to the authorship file.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;For the global twin: a US writer does the same through ASCAP or BMI plus a mechanical registration (the MLC), a UK writer through PRS and MCPS. The identifiers and the ISRC-to-ISWC link are identical everywhere.&lt;/p&gt;

&lt;h2&gt;
  
  
  The AI authorship documentation pack
&lt;/h2&gt;

&lt;p&gt;One folder per release, created before upload.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;release-2026-09-21-title/
  lyrics-v1.txt            # first draft, your words
  lyrics-final.txt         # with edits and dates
  style-sheet.txt          # the structured prompt / style string used
  generations.csv          # id, date, kept/rejected, why
  arrangement-notes.md     # what you changed and why
  mix-notes.md             # decisions, not settings
  credits.json             # per-component AI disclosure + human roles
  ids.json                 # ISRC(s), ISWC, IPI numbers, splits
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is the same file that protects you under Spotify's identity review and the distributor AI declarations described in &lt;a href="https://dev.to/blogs/spotify-ai-persona-badge-identity-stack-ai-assisted-artists-2026"&gt;the identity stack&lt;/a&gt;. One folder serves three purposes. If your distributor statements arrive as JSON exports, our free &lt;a href="https://dev.to/tools/json-to-csv-converter"&gt;JSON to CSV converter&lt;/a&gt; flattens them into the same sheet.&lt;/p&gt;

&lt;h2&gt;
  
  
  Publishing admin versus doing it yourself
&lt;/h2&gt;

&lt;p&gt;DistroKid and several distributors sell a publishing administration add-on that registers works and collects on your behalf for a percentage. It is a reasonable choice for a catalogue of a few hundred works across many territories, because society-by-society registration is tedious. It is a poor choice if you never check that the works were actually registered, because the add-on is a service, not a guarantee. Either way, you still need your own IPRS membership and IPI number; the administrator represents your publisher share, not your writer share.&lt;/p&gt;

&lt;h2&gt;
  
  
  The quarterly two-pipe audit
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Distributor statement: every ISRC with streams. Any ISRC missing from your works sheet is an unregistered song.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;PRO statement: every ISWC with performance income. Any registered work with streams and zero performance income for two quarters is a matching problem; raise it with the society with your ISRC list attached.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Splits: confirm co-writer percentages add to 100 and match the credits you published.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Metadata drift: titles that differ between distributor and PRO break matching. Fix at the PRO.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;New territories: a catalogue that suddenly streams in Germany needs the German society to see the work through IPRS's reciprocal agreements. Check that the work carries the ISWC, not just the ISRC.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  When a tiny catalogue is still worth registering
&lt;/h2&gt;

&lt;p&gt;A five-song catalogue with a few thousand streams a month will not make you rich through IPRS. Register it anyway, for two reasons. First, matching is retroactive only within the society's holding window; income from unregistered months is redistributed and gone. Second, the registration record is the evidence of authorship you will want the day a platform, a distributor or a lawsuit asks who wrote the song. For creators working in Indian genres, the &lt;a href="https://dev.to/product/regional-indian-music-pack-suno"&gt;Regional Indian Music Pack&lt;/a&gt; and the &lt;a href="https://dev.to/product/bollywood-hit-song-factory-suno"&gt;Bollywood Hit Song Factory&lt;/a&gt; include the credits.json and ids.json templates above, pre-filled for the common lyricist-plus-composer case.&lt;/p&gt;

&lt;h2&gt;
  
  
  Co-writers, splits and the clone-voice credit
&lt;/h2&gt;

&lt;p&gt;Three edge cases come up in every AI-assisted catalogue and each has a clean answer. A human co-writer who contributed a verse gets a writer split on the work and appears in the ISWC registration; the recording credit follows separately. A vocal that is a disclosed clone of your own voice is still your performance for credit purposes, so you are the named performer and the AI disclosure sits on the vocals component, not on the writer line. A track where the melody came from a generator and you wrote only the lyric is registered with you as author of the literary work and the composer field handled according to what you actually did: if you selected, edited and arranged the melody, document that and claim the composer role; if you accepted the first take unchanged, the honest registration is lyricist only. Splits that do not add to 100, or that name a generator as a writer, are the two errors that stall registrations for months.&lt;/p&gt;

&lt;h2&gt;
  
  
  Quick answers
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Does DistroKid pay composition royalties?
&lt;/h3&gt;

&lt;p&gt;Not by default. It pays the master recording. Composition income needs a PRO registration, either directly or through a publishing administration add-on, and you should verify the works were registered.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can I register a Suno-generated song with IPRS?
&lt;/h3&gt;

&lt;p&gt;You can register the parts you authored. A lyric you wrote is a literary work. Melody and arrangement claims are stronger the more you selected, edited and arranged. Document the decisions and claim only what you did.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is the difference between ISRC and ISWC?
&lt;/h3&gt;

&lt;p&gt;ISRC identifies a recording and comes from your distributor. ISWC identifies the underlying work and comes from a PRO or publisher when you register it with writer splits. One work can have many ISRCs.&lt;/p&gt;

&lt;h3&gt;
  
  
  Where does unregistered performance income go?
&lt;/h3&gt;

&lt;p&gt;Societies hold unmatched income for a period, then distribute it by market share to registered rightsholders. Unregistered songs subsidise the biggest catalogues.&lt;/p&gt;

&lt;h3&gt;
  
  
  Is any of this legal advice?
&lt;/h3&gt;

&lt;p&gt;No. It is the registration path we run for our own catalogues. Copyright treatment of AI-assisted works is unsettled in India and elsewhere; consult a qualified professional for your situation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Disclaimer:&lt;/strong&gt; This article is for informational purposes only and does not constitute legal, financial or tax advice. Copyright treatment of AI-assisted works is evolving. Consult a qualified professional for guidance specific to your situation.&lt;/p&gt;

&lt;h2&gt;
  
  
  Two pipes, one folder, one quarterly audit. Every product mentioned is available at wowhow.cloud — pay once, ship forever.
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://wowhow.cloud/blogs/distrokid-pays-the-master-iprs-pays-the-song-two-royalty-pipes-india-2026" rel="noopener noreferrer"&gt;wowhow.cloud&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>iprsregistration</category>
      <category>distrokidpublishing</category>
      <category>isrcvs</category>
      <category>musicroyalties</category>
    </item>
    <item>
      <title>Fully AI Music Just Peaked at 13.9%. The Money Moved to Hybrids.</title>
      <dc:creator>Anup Karanjkar</dc:creator>
      <pubDate>Sun, 20 Sep 2026 07:16:10 +0000</pubDate>
      <link>https://dev.to/akaranjkar08/fully-ai-music-just-peaked-at-139-the-money-moved-to-hybrids-j16</link>
      <guid>https://dev.to/akaranjkar08/fully-ai-music-just-peaked-at-139-the-money-moved-to-hybrids-j16</guid>
      <description>&lt;p&gt;&lt;strong&gt;Fully AI-generated music is already the shrinking slice.&lt;/strong&gt; SIQA's Mid-Year 2026 AI Music Intelligence Report, built on 1,743 verified releases from 886 artists across 54 countries and 20 weekly chart cycles between 1 April and 20 August, puts end-to-end machine-generated tracks at 13.9% of submissions, down from 19.2% in Q1. AI-assisted work, where a human directs the output, rose to 51.7%. Human-plus-AI hybrids, where the artist performs or reproduces their own voice, rose to 34.4%. If you are still optimising for volume, you are competing in the slice that is getting smaller while three stores stop paying for it.&lt;/p&gt;

&lt;p&gt;Short answer: the scarce layer in AI music is now human taste, applied visibly. Lyrics with a point of view, a cultural identity that Suno's defaults cannot fake, your own voice or a disclosed clone of it, deliberate arrangement and mix decisions, honest credits, and a real face on the profile. We call the operating version of this the 40/40/20 doctrine. The numbers below are the reason it exists.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the mid-year data actually says
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;Q1 2026&lt;/th&gt;
&lt;th&gt;Mid-year 2026&lt;/th&gt;
&lt;th&gt;Direction&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;| Fully AI-generated share of verified releases | 19.2% | 13.9% | Down |&lt;/p&gt;

&lt;p&gt;| AI-assisted (human directs) | — | 51.7% | Up |&lt;/p&gt;

&lt;p&gt;| Human + AI hybrid (own voice reproduced) | — | 34.4% | Up |&lt;/p&gt;

&lt;p&gt;| Suno present in workflow | 90.4% | 92.8% | Up |&lt;/p&gt;

&lt;p&gt;| ChatGPT present in workflow | about 1 in 5 | 16.3% | Down |&lt;/p&gt;

&lt;p&gt;| Gospel share of releases | 8.1% | 14.0% | Fastest-growing genre |&lt;/p&gt;

&lt;p&gt;| DistroKid share (releases with distributor data) | 75.8% | 77.6% | Up |&lt;/p&gt;

&lt;p&gt;| TuneCore share | 4.7% | 1.7% | Down after the April Believe block |&lt;/p&gt;

&lt;p&gt;| US share of releases | — | 67.1% | Two in three |&lt;/p&gt;

&lt;p&gt;Two of those rows carry the whole argument. The tool did not change: Suno is in nine of ten workflows, and the licensing fights around it are not slowing adoption. The &lt;em&gt;method&lt;/em&gt; changed: the verified, charting releases moved from fully generated to directed and performed. Same instrument, different musician.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why the stores are pricing the split
&lt;/h2&gt;

&lt;p&gt;The demand side moved first. TIDAL stopped paying royalties on tracks it detects as wholly AI-generated from 15 July 2026, and explicitly left tracks with human work alone. Deezer, where AI tracks passed 50% of daily uploads at around 90,000 a day in June, strips fraudulent streams from the royalty pool and reported that up to 85% of streams on fully generated tracks in 2025 were fraud. Spotify removed more than 75 million spam tracks in a year and, from mid-September 2026, badges synthetic artist identities out of recommendations. Believe and TuneCore stopped distributing tracks made on generators they consider unlicensed in April, which is why TuneCore's share of verified AI releases collapsed.&lt;/p&gt;

&lt;p&gt;None of these policies target a musician who wrote the words, sang or cloned their own voice, chose the arrangement, and said so. All of them target volume without a human. The data and the policy agree: the money moved to hybrids because the platforms moved it there.&lt;/p&gt;

&lt;h2&gt;
  
  
  The 40/40/20 doctrine
&lt;/h2&gt;

&lt;p&gt;Split every release budget, in time and attention, three ways.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;40% generation.&lt;/strong&gt; Style sheets, iterations, stems, alternates. This is where Suno earns its place, and it is the part everyone already over-invests in.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;40% human authorship.&lt;/strong&gt; Lyrics you can defend line by line, a melodic or arrangement decision you made against the default, your voice or a disclosed clone, and a mix pass with intent. This is the part that moves a release from the 13.9% slice to the 51.7% one.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;20% packaging.&lt;/strong&gt; Credits per component, DDEX AI disclosure, a real face and name, artwork that is not a photoreal generated person, and the timed video that makes the track hard to clone. Covered in &lt;a href="https://dev.to/blogs/spotify-ai-persona-badge-identity-stack-ai-assisted-artists-2026"&gt;the identity stack&lt;/a&gt; and &lt;a href="https://dev.to/blogs/ai-music-metadata-release-checklist-ddex-ai-credits-spam-filter-2026"&gt;the metadata checklist&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If your current split is 90/0/10, you are producing the product the market is exiting.&lt;/p&gt;

&lt;h2&gt;
  
  
  The gospel signal
&lt;/h2&gt;

&lt;p&gt;Gospel nearly doubled its share of verified AI releases, from 8.1% to 14.0%, and took a quarter of the most popular AI songs in the final ten chart weeks of the period. Read it as a warning, not a genre tip. Gospel works because it arrives with conviction, community and a lyrical tradition that generic prompts cannot fake. Culture plus specificity beats default pop slop. The same logic explains why romantic and devotional Indian catalogues we operate hold listeners that a "chill lofi vibes" account loses in a week.&lt;/p&gt;

&lt;h2&gt;
  
  
  The anti-default checklist
&lt;/h2&gt;

&lt;p&gt;Suno's defaults are recognisable within four bars to anyone who has heard a hundred AI tracks. Break at least four of these per release.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Arrangement: an intro that is not eight bars of pad, a bridge that changes key or texture, an ending that is not a fade.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Silence: a bar of nothing before the last chorus. Generators hate rests. Listeners notice them.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Cultural specificity: real place names, a raga or mode named in the style sheet, an instrument the default palette never picks.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Lyric register: one concrete image per verse that could only belong to you. No "neon lights", no "city sleeps".&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Vocal identity: your voice on the hook, or a clone of your voice disclosed in credits, rather than the default female-pop timbre.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Tempo and metre: anything other than 120 BPM in four. Try 96 in six, or a tempo change at the bridge.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Mix decisions: a mono verse, a filtered pre-chorus, a real dynamic range. Do not export the first master.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Our free &lt;a href="https://dev.to/tools/suno-prompt-builder"&gt;Suno Prompt Builder&lt;/a&gt; is built around this list: it forces a genre anchor, a cultural anchor and an anti-default field before it produces the style string. Pair it with &lt;a href="https://dev.to/blogs/suno-prompt-guide-style-of-music-tags-2026"&gt;the style-of-music tag guide&lt;/a&gt; for the tag mechanics.&lt;/p&gt;

&lt;h2&gt;
  
  
  Volume cap: why 100 beats 1,000
&lt;/h2&gt;

&lt;p&gt;UMG's 15 September complaint against DistroKid cites one "Lofi Chill" account that released 4,562 tracks in twelve months. Spotify's spam filter is tuned for exactly that shape: mass uploads, duplicated titles, artificially short tracks, SEO stuffing in metadata. After fraud filtering and persona review, the thousandth upload earns less than nothing; it drags the profile into the pattern the reviewers are trained on. A hundred releases with authored lyrics, real credits and a video each will out-earn a thousand default generations on every store that still pays, and it will survive the next policy change. The catalogues we run cap at a cadence a human can actually stand behind: one to two releases a week, each with a provenance file.&lt;/p&gt;

&lt;h2&gt;
  
  
  Visual sync as the moat
&lt;/h2&gt;

&lt;p&gt;Anyone can regenerate your song from a similar prompt. Nobody can regenerate the identity-locked music video timed to your lyric. Treat the audio drop and the visual drop as one product: export the SRT, map emotional beats to shots, lock the singer across every cut, and publish both together. The production method is in &lt;a href="https://dev.to/blogs/identity-lock-ai-video-character-consistency-system-2026"&gt;Identity Lock for AI video&lt;/a&gt;. For catalogues in specific genres the &lt;a href="https://dev.to/product/lofi-chill-beats-generator-suno"&gt;Lofi Chill Beats Generator&lt;/a&gt; and &lt;a href="https://dev.to/product/edm-festival-bangers-suno"&gt;EDM Festival Bangers&lt;/a&gt; packs include the anti-default variants and credit templates, so the generation 40% starts from somewhere other than the model's median.&lt;/p&gt;

&lt;h2&gt;
  
  
  A worked release plan for one track
&lt;/h2&gt;

&lt;p&gt;Doctrine is easy to nod at and hard to run. Here is one release under 40/40/20, timed for a solo act with about ten hours to spend.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Hours 1 to 4, generation.&lt;/strong&gt; Write the style sheet from the fingerprint, not from scratch. Run six to ten takes, score them in-app against the sheet, and shortlist two. Do not download yet.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Hours 5 to 8, authorship.&lt;/strong&gt; Rewrite the lyric until every verse carries one image only you could have written. Record your own hook vocal, or a disclosed clone of your voice, over the chosen take. Make one arrangement decision against the default: cut the intro to two bars, drop the drums for the last chorus, add a real rest before the final line. Do a mix pass with intent and export a second master; the first is never the one.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Hours 9 to 10, packaging.&lt;/strong&gt; Credits per component, DDEX AI disclosure, writer registration queued, a title that is a title, artwork without a generated face, and the SRT exported for the video. Fill the provenance folder.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The split is not sacred. What is sacred is that the second and third blocks exist at all, because they are the blocks that move a release out of the shrinking category and into the one the stores still pay and recommend. A catalogue built this way at one or two releases a week compounds; a catalogue built at ten generations a day is competing for a slice that fell five points in six months.&lt;/p&gt;

&lt;h2&gt;
  
  
  Quick answers
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Is fully AI-generated music dead?
&lt;/h3&gt;

&lt;p&gt;No, but it is the shrinking, lowest-paid slice: 13.9% of verified releases at mid-year 2026, down from 19.2%, with TIDAL paying it nothing and Deezer stripping its fraud streams.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is the difference between AI-assisted and hybrid in the SIQA report?
&lt;/h3&gt;

&lt;p&gt;Assisted means a human directs the AI output. Hybrid means the artist performs or reproduces their own voice. Fully generated is end-to-end machine output with only curation.&lt;/p&gt;

&lt;h3&gt;
  
  
  Does using Suno put me in the slop category?
&lt;/h3&gt;

&lt;p&gt;No. Suno is present in 92.8% of verified releases across all three categories. Method and disclosure decide the category, not the tool.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why is gospel growing fastest?
&lt;/h3&gt;

&lt;p&gt;Conviction, community and a strong lyrical tradition. Culturally specific genres hold listeners that generic prompts cannot, which is the same reason to build cultural specificity into any release.&lt;/p&gt;

&lt;h3&gt;
  
  
  How many releases a month is safe?
&lt;/h3&gt;

&lt;p&gt;As many as you can stand behind with authored lyrics, real credits and a provenance file. For most solo acts that is four to eight a month, far below the farm cadence the filters target.&lt;/p&gt;

&lt;h2&gt;
  
  
  The chart moved to people who use machines as a band. Every product mentioned is available at wowhow.cloud — pay once, ship forever.
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://wowhow.cloud/blogs/fully-ai-music-peaked-hybrid-rule-siqa-mid-year-2026" rel="noopener noreferrer"&gt;wowhow.cloud&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>siqamidyear</category>
      <category>fullyai</category>
      <category>aiassisted</category>
      <category>sunomarket</category>
    </item>
    <item>
      <title>Identity Lock: Keep One Face Across 8 AI Video Shots</title>
      <dc:creator>Anup Karanjkar</dc:creator>
      <pubDate>Sun, 20 Sep 2026 07:15:38 +0000</pubDate>
      <link>https://dev.to/akaranjkar08/identity-lock-keep-one-face-across-8-ai-video-shots-4i7m</link>
      <guid>https://dev.to/akaranjkar08/identity-lock-keep-one-face-across-8-ai-video-shots-4i7m</guid>
      <description>&lt;p&gt;&lt;strong&gt;Your AI actor does not change face because the model is weak. It changes face because you never told the pipeline which parts of the face were not allowed to change.&lt;/strong&gt; Every generator on the market in 2026 can hold a character for one shot. Almost none hold one across eight, and the tool comparisons that rank Kling against Seedance against Veo admit, in their own fine print, that no model replaces a character library, a continuity sheet and an approved storyboard. That is the tell. Consistency is a production discipline, and the discipline has a name in our studio: Identity Lock.&lt;/p&gt;

&lt;p&gt;Short answer: write a hero sheet that names immutable traits and forbidden mutations, lock at least two axes per shot (identity plus wardrobe or location), generate a multi-pose reference set once and never regenerate it, carry a continuity card into every prompt, and score drift so you know when another retry is a waste. The rest of this piece is the system, model-agnostic on purpose.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why more reference images make it worse
&lt;/h2&gt;

&lt;p&gt;The default fix is to attach six reference frames and hope. The model now has six slightly different faces to average, and averaging is how you get a seventh. Reference images tell the model &lt;em&gt;what the character looked like&lt;/em&gt;; they do not tell it &lt;em&gt;what is not allowed to move&lt;/em&gt;. Constraint language does that, and constraint language has to be specific: eye colour, jaw shape, hairline, the one scar, the exact wardrobe state. Vague identity ("a young woman with dark hair") is an invitation to drift.&lt;/p&gt;

&lt;p&gt;The second mistake is locking the wrong axis. Most prompts that try to hold identity spend their words on the face and none on expression, posture or wardrobe state. Then the face holds and the jacket changes colour, and the viewer reads it as a different person anyway. Humans identify people by silhouette, clothing and movement long before they resolve a face.&lt;/p&gt;

&lt;h2&gt;
  
  
  The hero sheet
&lt;/h2&gt;

&lt;p&gt;One page per recurring character. Two columns.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Immutable (never changes across the project)&lt;/th&gt;
&lt;th&gt;Mutable (set per shot)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;| Face geometry: jaw, nose bridge, brow spacing, eye colour, eye shape | Expression and emotional beat |&lt;/p&gt;

&lt;p&gt;| Skin tone and any marks (scar, mole, freckles) | Pose and gesture |&lt;/p&gt;

&lt;p&gt;| Hair: colour, length, parting, texture | Camera distance and lens |&lt;/p&gt;

&lt;p&gt;| Body: height class, build, posture habit | Lighting direction and colour temperature |&lt;/p&gt;

&lt;p&gt;| Signature wardrobe pieces and their exact colours | Location and time of day |&lt;/p&gt;

&lt;p&gt;| Voice descriptors if the pipeline generates speech | Weather, props, secondary characters |&lt;/p&gt;

&lt;p&gt;Under the table, a block called &lt;strong&gt;Forbidden mutations&lt;/strong&gt;: the drifts you have actually seen this character suffer. "No glasses. No beard. Jacket is rust, never navy. Hair does not shorten." Write them as prohibitions, because that is how they get violated.&lt;/p&gt;

&lt;h2&gt;
  
  
  The two-axis minimum lock
&lt;/h2&gt;

&lt;p&gt;Every shot prompt carries at least two locked axes. Identity is always one. The second is wardrobe or location, chosen by what the scene needs to prove continuity. A walk-and-talk in one street locks identity plus location; a costume-heavy music video locks identity plus wardrobe. Three axes is better. One axis is the amateur setting, and it is where nearly every failed sequence we have audited lived.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;IDENTITY LOCK (immutable): Maya — oval face, strong jaw, dark brown almond eyes,
small scar through left eyebrow, black shoulder-length hair with centre parting,
warm medium-brown skin, 5'6", upright posture.
WARDROBE LOCK (this scene): rust corduroy jacket, cream turtleneck, silver hoop earrings.
FORBIDDEN: no glasses, no fringe, jacket never navy or brown, no hat.
SHOT 04/08: medium close-up, 50mm, golden-hour side light from camera left,
Maya turns from window to camera, expression shifts from worry to relief.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Notice what the prompt spends its words on. The locks come first and are copied verbatim from the hero sheet. Only the last two lines change between shots.&lt;/p&gt;

&lt;h2&gt;
  
  
  Generate the reference set once
&lt;/h2&gt;

&lt;p&gt;Build a multi-pose reference set for each character at the start: front, three-quarter, profile, full body, a neutral expression and one strong expression, in the locked wardrobe, under neutral light. Approve it. Freeze it. Every future shot references this set, and you never regenerate it, because a regenerated reference is a new person with a family resemblance.&lt;/p&gt;

&lt;p&gt;If a model update or a platform change forces a regeneration, treat it as recasting: rebuild the set, re-approve it, and re-shoot anything that has to cut against old footage. Do not mix sets.&lt;/p&gt;

&lt;h2&gt;
  
  
  The continuity card
&lt;/h2&gt;

&lt;p&gt;A continuity card is one small block per shot that travels with the prompt and into the QA gate. It records the mutable choices so that shot five knows what shot four decided.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;shot&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;05/08&lt;/span&gt;
&lt;span class="na"&gt;lens&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;35mm, eye level&lt;/span&gt;
&lt;span class="na"&gt;light&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;golden hour, key from camera left, warm 3200K practical in background&lt;/span&gt;
&lt;span class="na"&gt;wardrobe_state&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;jacket open, earrings visible, no bag&lt;/span&gt;
&lt;span class="na"&gt;emotional_beat&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;relief -&amp;gt; quiet determination&lt;/span&gt;
&lt;span class="na"&gt;carry_over&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;rain droplets on window from shot &lt;/span&gt;&lt;span class="m"&gt;04&lt;/span&gt;
&lt;span class="na"&gt;next_shot_needs&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Maya exits frame right&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Without the card, continuity lives in your memory, and your memory does not survive a two-day gap between sessions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Drift score: when to stop regenerating
&lt;/h2&gt;

&lt;p&gt;Score every rendered shot against the hero sheet with a fixed rubric. We use five checks, each pass or fail: face geometry, hair, wardrobe colour and state, body and posture, forbidden-mutation clean. A shot ships at five of five. At four, retry once with the lock re-injected at the top of the prompt. Two consecutive failures on the same check means the problem is in the document, not the dice: the hero sheet is ambiguous, the reference set has a contradiction, or the forbidden list is missing the drift you keep seeing. Fix the document and start clean.&lt;/p&gt;

&lt;p&gt;The number that matters is &lt;strong&gt;cost per accepted second&lt;/strong&gt;, not cost per generation. A pipeline that generates cheaply but accepts one in eight is more expensive than one that generates slowly and accepts one in two. Track it per project. This is also why the gate in &lt;a href="https://dev.to/blogs/multi-agent-tax-one-agent-default-nature-machine-intelligence-2026"&gt;the multi-agent tax&lt;/a&gt; returns structured verdicts: the drift score is a field, and the orchestrator reads it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The one-long-take rule
&lt;/h2&gt;

&lt;p&gt;Seven hero shots cut together give the model seven chances to drift. One longer take gives it one. When the scene allows, prefer a single 8 to 10 second move with in-shot emotional change over a montage of close-ups, and cut to a second character or an insert when you need rhythm. Break this rule for music videos where the edit is the point, and compensate with a tighter wardrobe lock and a longer reference set.&lt;/p&gt;

&lt;h2&gt;
  
  
  Music videos: tie the beats to the SRT
&lt;/h2&gt;

&lt;p&gt;For sung content, the emotional beat in the continuity card comes from the lyric timing. Export the SRT, map each line to an emotion and a shot budget, and lock the singer with the same hero sheet across every cut. The song can be regenerated by anyone with the same prompt; the timed, identity-locked picture cannot. That is the durable asset around an AI track, and it is the reason we treat video as part of the release, not a promo afterthought.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tools that fit the system
&lt;/h2&gt;

&lt;p&gt;The hero sheet and continuity card are documents, so any editor works. For building the locked prompt blocks, our free &lt;a href="https://dev.to/tools/image-prompt-builder"&gt;Image Prompt Builder&lt;/a&gt; produces the structured trait fields you paste into the immutable column. If you are producing short-form video at volume, the &lt;a href="https://dev.to/product/social-media-reel-hooks-video-ai"&gt;Social Media Reel Hooks pack&lt;/a&gt; comes with shot budgets per format, and the &lt;a href="https://dev.to/product/agent-prompt-vault-50-production-prompts-for-ai-agents"&gt;Agent Prompt Vault&lt;/a&gt; includes the QA-gate prompt that returns the drift score as JSON.&lt;/p&gt;

&lt;h2&gt;
  
  
  Feeding the lock into each generator
&lt;/h2&gt;

&lt;p&gt;Every current video model exposes a different door for identity: a reference-image slot, a character or "element" library, a start frame, or nothing but the prompt. The lock is model-agnostic, but the way you hand it over is not, and the order matters more than most tutorials admit.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Character libraries&lt;/strong&gt; (where the tool keeps a named entity across generations): upload the frozen reference set once, name the entity exactly as it appears on the hero sheet, and still paste the immutable block into every prompt. Libraries hold the face; they rarely hold wardrobe state or the forbidden list.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Single reference-image slots&lt;/strong&gt;: choose the pose that matches the shot's camera angle rather than the prettiest frame. A three-quarter reference for a profile shot invites the model to invent the missing side of the face.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Start-frame workflows&lt;/strong&gt;: render the first frame as a still with the full lock, approve it with the drift scorecard, then animate from it. A locked still is cheaper to iterate than a locked clip.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Prompt-only models&lt;/strong&gt;: the immutable block goes first, the forbidden list goes last, and the mutable shot description sits between them. Position in the prompt is weight.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Whatever the door, the hero sheet is the source and the tool settings are a cache. When you change models, you re-export the sheet; you do not rebuild the character from memory inside the new tool. That single habit is what let us move a two-character series between three generators this year without recasting either lead.&lt;/p&gt;

&lt;h2&gt;
  
  
  Reviewing at speed without losing the standard
&lt;/h2&gt;

&lt;p&gt;A sequence of eight shots at three takes each is twenty-four clips to review, and fatigue is how drift gets approved. Two rules keep the review honest. First, review frames, not clips: pull the first, middle and last frame of each take into a contact sheet beside the reference set and score the stills before you watch a single second of motion. Drift is easier to see when nothing is moving. Second, score blind: hide the take number so you do not favour the last one you generated. A gate agent that receives only the stills, the hero sheet and the rubric, and returns the drift score as JSON, does both of these by construction.&lt;/p&gt;

&lt;h2&gt;
  
  
  Quick answers
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Which video model holds character identity best?
&lt;/h3&gt;

&lt;p&gt;None of them hold it across a sequence without a locked hero sheet and reference set. Pick the model for motion and lighting quality, then run the same Identity Lock on top of it.&lt;/p&gt;

&lt;h3&gt;
  
  
  How many reference images should I use?
&lt;/h3&gt;

&lt;p&gt;One approved multi-pose set per character, generated once and frozen. Adding more unrelated references increases averaging and drift.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why does the face hold but the character still looks different?
&lt;/h3&gt;

&lt;p&gt;You locked one axis. Wardrobe, hair state, posture and lighting carry identity too. Lock identity plus at least one of wardrobe or location on every shot.&lt;/p&gt;

&lt;h3&gt;
  
  
  When should I stop retrying a shot?
&lt;/h3&gt;

&lt;p&gt;After two consecutive failures on the same drift check. At that point the fix is in the hero sheet or forbidden list, not in another generation.&lt;/p&gt;

&lt;h3&gt;
  
  
  Does this work for brands and products, not just people?
&lt;/h3&gt;

&lt;p&gt;Yes. A product hero sheet locks geometry, material, colour codes and logo placement, with forbidden mutations for the ways the model tends to redesign it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Lock the document, not the dice. Every product mentioned is available at wowhow.cloud — pay once, ship forever.
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://wowhow.cloud/blogs/identity-lock-ai-video-character-consistency-system-2026" rel="noopener noreferrer"&gt;wowhow.cloud&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>aivideo</category>
      <category>identitylock</category>
      <category>consistentcharacter</category>
      <category>herosheet</category>
    </item>
    <item>
      <title>The Multi-Agent Tax: One Strong Agent Beats a Crew of Twelve</title>
      <dc:creator>Anup Karanjkar</dc:creator>
      <pubDate>Sun, 20 Sep 2026 07:15:06 +0000</pubDate>
      <link>https://dev.to/akaranjkar08/the-multi-agent-tax-one-strong-agent-beats-a-crew-of-twelve-2c41</link>
      <guid>https://dev.to/akaranjkar08/the-multi-agent-tax-one-strong-agent-beats-a-crew-of-twelve-2c41</guid>
      <description>&lt;p&gt;&lt;strong&gt;Adding agents made our pipeline slower and more expensive, and the research now says why.&lt;/strong&gt; In July 2026 &lt;em&gt;Nature Machine Intelligence&lt;/em&gt; published a controlled study titled "Capable language models can outgrow the benefits of collaboration." The authors held task prompts, tools and compute budgets constant and varied only the coordination structure. Multi-agent systems incurred 58% (independent agents), 263% (decentralized), 285% (centralized) and 515% (hybrid) more reasoning turns than a single agent, which is 1.6x to 6.2x the work for the same job. At equal token budgets, the single agent matched or beat the crews on reasoning tasks. The strongest predictor of whether coordination helped at all was the single-agent baseline: when the base model was already good, adding agents mostly added cost.&lt;/p&gt;

&lt;p&gt;Short answer: default to one agent. Allow a second only when a task passes one of three tests. Replace the rest of the crew with shared state (locks), a gate (QA), and a budget. The 2026 story for solo builders is orchestration discipline, not headcount.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the study measured, and what it did not
&lt;/h2&gt;

&lt;p&gt;The paper is not an argument that multi-agent systems never work. It found two conditions where coordination helps: work that is genuinely parallelisable and read-heavy, and narrow domains where an extra checker improves reliability. Outside those, the overhead is pure. The important design point is the phrase "under matched per-system compute ceilings." Most crew demos never match compute. They give the crew ten times the tokens and then celebrate a slightly better answer.&lt;/p&gt;

&lt;p&gt;For a one-person studio the framing is simple. You are paying for every reasoning turn. A pattern that multiplies turns by six to produce the same artefact is a tax. If you have read &lt;a href="https://dev.to/blogs/agentic-ai-cost-crisis-uber-budget-multi-model-routing-optimization-2026"&gt;our piece on the agentic cost crisis&lt;/a&gt;, you already know the enterprise version of this bill. The solo version is smaller in dollars and larger in proportion.&lt;/p&gt;

&lt;h2&gt;
  
  
  The one-agent default law
&lt;/h2&gt;

&lt;p&gt;Write it down where the team, or the future you, can see it: &lt;strong&gt;every task starts as one agent with a written brief, a tool list and a token cap.&lt;/strong&gt; Nobody spins up a Director, a Researcher, a Writer and a Critic because the framework template had four boxes. The burden of proof is on the second agent.&lt;/p&gt;

&lt;p&gt;This sounds obvious and is violated constantly, because frameworks make crews the path of least resistance. A single agent with a good brief, a project bible it can read, and a verification step it must pass will out-produce a chatty crew on most creative and coding tasks. The Nature MI result is the quantitative version of what every operator who has watched five agents agree with each other already knew.&lt;/p&gt;

&lt;h2&gt;
  
  
  The three tests that allow a second agent
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Test&lt;/th&gt;
&lt;th&gt;Question&lt;/th&gt;
&lt;th&gt;If yes&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;| Different capability | Does the subtask need a different model, a different tool set, or a different context window than the main agent has? | Split. A vision model reviewing frames is not the same worker as the script writer. |&lt;/p&gt;

&lt;p&gt;| Audit wall | Must the checker be unable to see the maker's reasoning, so that it cannot be talked into approving? | Split. A QA gate that reads only the artefact and the spec is worth its tokens. |&lt;/p&gt;

&lt;p&gt;| Real parallelism | Are there N independent, read-heavy units of work that finish faster side by side and do not need to agree with each other? | Fan out, then merge with one agent. This is the parallelisable case the paper identified. |&lt;/p&gt;

&lt;p&gt;Fail all three and you do not get a second agent. You get a better brief. "The writer needs a critic" fails the audit-wall test if the critic shares the writer's transcript, because it will simply confirm the writer. "Research then write" fails the capability test if the same model with the same tools does both. Most crews we have audited fail all three on every hop.&lt;/p&gt;

&lt;h2&gt;
  
  
  Locks instead of agents
&lt;/h2&gt;

&lt;p&gt;The work people assign to extra agents is usually memory. A Continuity agent exists to remember what the last shot looked like. A Style agent exists to remember the voice. That is state, and state belongs in a file, not in a personality.&lt;/p&gt;

&lt;p&gt;We run two documents that replace three agents:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Consistency Lock:&lt;/strong&gt; the immutable facts of the project. Names, palette, voice rules, forbidden words, output formats. Read at the start of every run. Never regenerated.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Identity Lock:&lt;/strong&gt; for anything with a recurring character or brand: the traits that may not change, the traits that may, and the drift checks. The video version is covered in &lt;a href="https://dev.to/blogs/identity-lock-ai-video-character-consistency-system-2026"&gt;Identity Lock for AI video&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A lock costs a few hundred tokens to read. An agent whose job is to remember the lock costs a full reasoning turn every time it speaks, plus the turns everyone else spends replying to it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The gate: a QA guardian that does not chat
&lt;/h2&gt;

&lt;p&gt;The one second agent we always allow is the gate, because it passes the audit-wall test. It reads the artefact and the spec. It does not read the maker's transcript. It returns a structured verdict, not a conversation.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"artifact"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"scene_04.mp4"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"checks"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"identity_face"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="nl"&gt;"pass"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"identity_wardrobe"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nl"&gt;"pass"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"note"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"jacket colour drifted to navy"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"continuity_light"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"pass"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"spec_duration"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nl"&gt;"pass"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"spec_aspect"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="nl"&gt;"pass"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"verdict"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"REJECT"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"reject_class"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"wardrobe_drift"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"retry_allowed"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Sixteen checks is our ceiling. Past that the gate becomes a second author. The output is machine-readable so that the orchestrator, not another agent, decides what happens next: retry with the lock re-injected, escalate to a human, or ship.&lt;/p&gt;

&lt;h2&gt;
  
  
  Drift score: when to kill a run
&lt;/h2&gt;

&lt;p&gt;Crews fail slowly. Each agent nudges the artefact a little, nobody owns the total, and by turn twelve you are polishing something that no longer matches the brief. Give every run a drift score: the number of gate checks that failed across the last three attempts. Two consecutive failures on the same check means the fix is in the brief or the lock, not in another retry. Kill the run, fix the document, start clean. This single rule cut our wasted generations more than any model upgrade.&lt;/p&gt;

&lt;h2&gt;
  
  
  Token budget per finished artefact
&lt;/h2&gt;

&lt;p&gt;Budget the artefact, not the session. A finished 8-second clip, a shipped blog post, a merged pull request: each gets a token ceiling derived from what it earns or saves. If a pattern cannot deliver inside the ceiling, the pattern is wrong. Use our free &lt;a href="https://dev.to/tools/ai-token-estimator"&gt;AI token estimator&lt;/a&gt; to size briefs and locks before you run them, and the &lt;a href="https://dev.to/tools/ai-prompt-cost-calculator"&gt;prompt cost calculator&lt;/a&gt; to turn a turn count into money per model. When a crew's cost per accepted artefact is six times a single agent's, the Nature MI numbers stop being academic.&lt;/p&gt;

&lt;h2&gt;
  
  
  Migrating a crew to an orchestrator in one afternoon
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;List every agent in the current crew and the one sentence it exists for.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Any agent whose sentence contains "remember", "keep consistent" or "make sure the style" becomes a lock file. Delete the agent.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Any agent whose sentence is "review" or "critique" and which can see the maker's transcript becomes the gate, with the transcript removed and a JSON verdict added.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Any agent whose sentence is a step in a sequence ("research, then outline, then draft") collapses into the main agent with the steps written into the brief.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Whatever is left must pass one of the three tests. Usually one does, sometimes none.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Add a token ceiling and a drift rule. Run the same task on the old crew and the new orchestrator with the same budget. Keep the winner.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;We have not yet seen a solo pipeline lose that comparison.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where skills fit
&lt;/h2&gt;

&lt;p&gt;The thing that replaces most of a crew's specialists is not another agent. It is a written skill: a reusable procedure with inputs, forbidden actions and a verification step that the single agent loads when it needs it. That is the subject of &lt;a href="https://dev.to/blogs/agent-skills-beat-agent-crews-claude-code-skill-files-2026"&gt;Agent skills beat agent crews&lt;/a&gt;. If you want the locks, gate schema and skill templates as files rather than prose, the &lt;a href="https://dev.to/product/ai-agent-ops-bundle-spec-observability-cost-control"&gt;AI Agent Ops Bundle&lt;/a&gt; ships the spec, observability and cost-control set we run, and the &lt;a href="https://dev.to/product/agent-prompt-vault-50-production-prompts-for-ai-agents"&gt;Agent Prompt Vault&lt;/a&gt; has the brief templates. For measuring the gate in production, read &lt;a href="https://dev.to/blogs/ai-agent-observability-monitoring-evaluation-production-guide-2026"&gt;the agent observability guide&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Quick answers
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Did the Nature Machine Intelligence study say multi-agent systems are useless?
&lt;/h3&gt;

&lt;p&gt;No. It found they help for parallelisable, read-heavy work and for narrow-domain reliability. Elsewhere they added 1.6x to 6.2x reasoning turns with no accuracy gain at matched compute.&lt;/p&gt;

&lt;h3&gt;
  
  
  Is a critic agent ever worth it?
&lt;/h3&gt;

&lt;p&gt;Yes, when it cannot see the maker's reasoning and returns a structured verdict. A critic that shares the transcript tends to agree with the maker and costs a full turn to do so.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do I know my single agent is strong enough?
&lt;/h3&gt;

&lt;p&gt;Run the task once with a proper brief and lock and measure the gate pass rate. The paper found the single-agent baseline is the best predictor of whether coordination will help.&lt;/p&gt;

&lt;h3&gt;
  
  
  What replaces the memory agents?
&lt;/h3&gt;

&lt;p&gt;Lock files read at the start of each run: a Consistency Lock for project facts and an Identity Lock for recurring characters or brand traits.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is a sane token budget?
&lt;/h3&gt;

&lt;p&gt;Derive it per finished artefact from what the artefact earns or saves. Size briefs with a token estimator before running and compare cost per accepted output, not cost per generation.&lt;/p&gt;

&lt;h2&gt;
  
  
  Fewer agents, better documents, one gate. Every product mentioned is available at wowhow.cloud — pay once, ship forever.
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://wowhow.cloud/blogs/multi-agent-tax-one-agent-default-nature-machine-intelligence-2026" rel="noopener noreferrer"&gt;wowhow.cloud&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>multiagentsystems</category>
      <category>singleagent</category>
      <category>naturemachine</category>
      <category>agentorchestration</category>
    </item>
    <item>
      <title>Spotify AI Persona Badge: The Identity Stack for AI Artists</title>
      <dc:creator>Anup Karanjkar</dc:creator>
      <pubDate>Sat, 19 Sep 2026 22:27:45 +0000</pubDate>
      <link>https://dev.to/akaranjkar08/spotify-ai-persona-badge-the-identity-stack-for-ai-artists-1d66</link>
      <guid>https://dev.to/akaranjkar08/spotify-ai-persona-badge-the-identity-stack-for-ai-artists-1d66</guid>
      <description>&lt;p&gt;&lt;strong&gt;Spotify did not ban AI music this month. It banished fake faces.&lt;/strong&gt; The AI Persona badge that started landing on artist profiles in mid-September 2026 is an identity label, not a production label. Spotify said so in plain words when it announced the policy on 11 August: the badge covers the artist's public identity, not how the music was made. Badged profiles stay on the service, but editorial and algorithmic recommendations stop serving their tracks unless a listener already follows the artist. If your artwork is a generated person and your bio is a paragraph of vibes, the algorithm may already have decided.&lt;/p&gt;

&lt;p&gt;Short answer first. A human legal name, a real photo, hybrid credits and a disclosed workflow keep an AI-assisted catalogue inside recommendations. A stylised alias with a photoreal AI face and no human anywhere in the credits is the profile Spotify built the review process for. The rest of this piece is the operator stack: what triggers review, which disclosure goes where, which store pays what, and a 72-hour hardening checklist you can run this weekend.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the badge actually is
&lt;/h2&gt;

&lt;p&gt;There are two versions. &lt;strong&gt;AI Persona&lt;/strong&gt; is self-declared: the artist chose to present as an AI identity. &lt;strong&gt;Likely AI Persona&lt;/strong&gt; is applied after Spotify's human reviewers and investigative tools decide a profile represents a synthetic identity. Either badge shows on the artist banner, the About section, search results and track rows inside playlists. Artists labelled after review are notified and can appeal.&lt;/p&gt;

&lt;p&gt;The recommendation effect is the part that matters for income. Badged music is excluded from personalised recommendations, Discover Weekly, Release Radar, Radio and editorial consideration by default. Followers still get it. Nobody else does. For a catalogue that lives on algorithmic surfaces, that is a distribution cut, not a cosmetic tag.&lt;/p&gt;

&lt;p&gt;Contrast this with the AI Credits system Spotify has surfaced since 16 April 2026. That one is track-level, flows through the DDEX disclosure field your distributor passes, and Spotify has said repeatedly that disclosing AI involvement does not down-rank a track. Two systems, two layers: one judges the artist identity, the other describes the production. Most AI musicians are optimising the wrong layer.&lt;/p&gt;

&lt;h2&gt;
  
  
  The three-way identity split test
&lt;/h2&gt;

&lt;p&gt;Run your own profile through the same lens a reviewer would. We tested the split across catalogues we operate and the pattern is consistent.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Profile pattern&lt;/th&gt;
&lt;th&gt;What a reviewer sees&lt;/th&gt;
&lt;th&gt;Likely outcome&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;| Human legal name, real photo, human-written bio, AI in credits | A person who uses tools | No badge. Full recommendation eligibility. |&lt;/p&gt;

&lt;p&gt;| Stylised alias, illustrated or abstract artwork, human named in About | A project with a human behind it | Usually no badge, but weaker than a face. Keep the human visible. |&lt;/p&gt;

&lt;p&gt;| Alias, photoreal generated face, no human anywhere, 40 releases a month | A synthetic identity built to look like a singer | Likely AI Persona after review. Recommendations off. |&lt;/p&gt;

&lt;p&gt;The middle row is where most serious AI-assisted acts sit, and it is the row with the most room to move. You do not need to abandon a project name. You need a human anchor: a named writer or producer in the bio, a real photo somewhere on the profile, and social links that resolve to a person who answers.&lt;/p&gt;

&lt;h2&gt;
  
  
  The disclosure map: four boxes, four meanings
&lt;/h2&gt;

&lt;p&gt;Disclosure is scattered across four places and they do not mean the same thing. Getting them aligned is the cheapest protection you have.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;DDEX AI disclosure (via your distributor).&lt;/strong&gt; DistroKid was the first partner to pass this field to Spotify, in April 2026. It is what powers the AI Credits panel on the track. Fill it honestly and per component: vocals, instrumentation, lyrics, post-production.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Spotify AI Credits.&lt;/strong&gt; The visible result of the DDEX field. Track-level. Spotify's stated position is that it does not penalise disclosed AI use.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Spotify AI Persona (self-declared).&lt;/strong&gt; Profile-level. Only tick this if the artist is genuinely a character with no human identity attached. It is a distribution choice, not a legal one.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Distributor AI declaration.&lt;/strong&gt; DistroKid, TuneCore and others now ask whether AI was used and, in some cases, which service. Since Believe and TuneCore began blocking tracks made on unlicensed generators in April 2026, a false declaration is a contract problem, not just a form.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The failure mode we see most: an artist ticks "AI-generated" at the distributor because they are honest, ticks "AI Persona" on Spotify because they think it is the same box, and quietly removes themselves from recommendations for a catalogue that a human wrote and sang over.&lt;/p&gt;

&lt;h2&gt;
  
  
  The DSP survival grid
&lt;/h2&gt;

&lt;p&gt;Spotify is one store. The policies diverged sharply in 2026 and your catalogue triage has to account for all of them.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Store&lt;/th&gt;
&lt;th&gt;Policy in force&lt;/th&gt;
&lt;th&gt;Effect on AI-assisted human-fronted acts&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;| Spotify | AI Persona badge (mid-Sept 2026); AI Credits via DDEX; spam filter that removed 75 million tracks in a year | Safe if identity is human and uploads are not farm-shaped |&lt;/p&gt;

&lt;p&gt;| TIDAL | No royalties on wholly AI-generated tracks since 15 July 2026; AI badge; policy described as a living document | Hybrid work is explicitly left alone. Fully generated tracks earn nothing. |&lt;/p&gt;

&lt;p&gt;| Deezer | Labels AI tracks; excludes fraudulent streams from royalties; more than 50% of daily uploads are AI (about 90,000 tracks a day at the June peak) | Human-fronted work is paid normally; fraud-shaped uploads are not |&lt;/p&gt;

&lt;p&gt;| Apple Music / YouTube | No persona badge announced; standard spam and rights enforcement | Business as usual for now |&lt;/p&gt;

&lt;p&gt;Notice the direction of travel. Every store is separating &lt;em&gt;identity fraud and stream fraud&lt;/em&gt; from &lt;em&gt;tool use&lt;/em&gt;. If you are honest about tools and real about identity, the 2026 rules are survivable. If your growth strategy was volume plus a generated face, three stores have already priced you out.&lt;/p&gt;

&lt;h2&gt;
  
  
  The hybrid threshold rule
&lt;/h2&gt;

&lt;p&gt;"AI-assisted" has to mean something a detector and a human both accept. Our working rule, borrowed from the categories SIQA uses in its mid-year 2026 report: a release qualifies as assisted when a human owns at least two of lyrics, melody or arrangement decisions, and the final mix, and that ownership is documented before upload. The SIQA data shows the market moving the same way: fully AI-generated tracks fell from 19.2% of verified submissions in Q1 2026 to 13.9% at mid-year, while assisted and hybrid work rose. The slice you want to be in is the growing one.&lt;/p&gt;

&lt;p&gt;Documentation is the part people skip. Keep a per-release provenance file: the prompt or style sheet, the lyric draft with your edits, the session notes, the mix decisions. It is not for Spotify. It is for the appeal you might one day file, and for the publishing registration covered in &lt;a href="https://dev.to/blogs/distrokid-pays-the-master-iprs-pays-the-song-two-royalty-pipes-india-2026"&gt;the two royalty pipes&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Catalogue triage: leave, relabel, freeze
&lt;/h2&gt;

&lt;p&gt;Do not touch 133 releases in one afternoon. Sort them.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Leave&lt;/strong&gt; anything already credited to a human with honest AI credits. Re-uploading resets stream counts and looks like farm behaviour.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Relabel&lt;/strong&gt; releases where the credits are missing or wrong. Most distributors let you update metadata without a new ISRC. Add the human writer, fix the AI disclosure per component, and correct the artist bio once.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Freeze&lt;/strong&gt; anything released under a photoreal synthetic face with no human attached. Stop adding to that profile. Decide whether it becomes a declared AI Persona (followers only) or gets retired.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Consolidate&lt;/strong&gt; if you ran five aliases to game genre playlists. Multiple synthetic profiles from one account is exactly the pattern the reviewers are trained on.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Distributor contingency after UMG v. DistroKid
&lt;/h2&gt;

&lt;p&gt;On 15 September 2026 Universal Music Group sued DistroKid in Delaware, calling it an "AI-slop pipeline" and citing a "Lofi Chill" act that released 4,562 tracks in 12 months. UMG's own filing says the case is not about clearly disclosed AI music; it is about DistroKid presenting itself as a distributor of artist-created work while, UMG alleges, profiting from undisclosed generated volume. DistroKid carries 77.6% of the verified AI releases in SIQA's mid-year data. That is concentration risk for you, whatever the merits of the case.&lt;/p&gt;

&lt;p&gt;Practical response: keep your catalogue export current (metadata, ISRCs, artwork, audio masters), hold an account at a second distributor even if you do not use it, and make sure your publishing side is registered independently of the distributor. If a distributor tightens AI rules overnight, the artists who lose least are the ones whose identity, rights and files live outside one dashboard.&lt;/p&gt;

&lt;h2&gt;
  
  
  The 72-hour profile hardening checklist
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Day 1 — Identity
[ ] Artist photo: a real human, or clearly illustrated (not photoreal generated)
[ ] About: name the human writer/producer in the first line
[ ] Social links resolve to a person, not a dead page
[ ] One alias per human, or a documented reason for more

Day 2 — Disclosure
[ ] Distributor AI declaration matches reality, per release
[ ] DDEX AI disclosure set per component (vocals / music / lyrics / post)
[ ] Spotify "AI Persona" self-declaration NOT ticked unless the act is a character
[ ] Provenance folder per release (style sheet, lyric drafts, mix notes)

Day 3 — Catalogue and rights
[ ] Triage sheet: leave / relabel / freeze / consolidate
[ ] Metadata corrections submitted (no re-uploads)
[ ] Full catalogue export archived off-platform
[ ] Publishing registration status checked (works, not just membership)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Run it once and the badge stops being a threat. Run it never and you will find out about the review from a notification.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where the tools fit
&lt;/h2&gt;

&lt;p&gt;None of this changes how you make the music. It changes how you present the person who made it. If you build with Suno, our free &lt;a href="https://dev.to/tools/suno-prompt-builder"&gt;Suno Prompt Builder&lt;/a&gt; produces the structured style sheet that doubles as the first page of your provenance file. For catalogues in Indian genres, the &lt;a href="https://dev.to/product/regional-indian-music-pack-suno"&gt;Regional Indian Music Pack&lt;/a&gt; and the &lt;a href="https://dev.to/product/bollywood-hit-song-factory-suno"&gt;Bollywood Hit Song Factory&lt;/a&gt; ship with credit templates that already split human authorship from generated components. For the style-tag mechanics themselves, start with &lt;a href="https://dev.to/blogs/suno-prompt-guide-style-of-music-tags-2026"&gt;the Suno style-of-music tag guide&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Quick answers
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Does the Spotify AI Persona badge apply to any track made with AI?
&lt;/h3&gt;

&lt;p&gt;No. It applies to artist profiles whose identity appears AI-generated. Track-level AI use is handled by AI Credits, which Spotify says does not affect ranking.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can I appeal a Likely AI Persona badge?
&lt;/h3&gt;

&lt;p&gt;Yes. Spotify notifies artists labelled after review and provides an appeal path. A visible human in the bio, real photos and consistent credits are the evidence that helps.&lt;/p&gt;

&lt;h3&gt;
  
  
  Will disclosing AI in credits hurt my streams?
&lt;/h3&gt;

&lt;p&gt;Spotify's stated position since September 2025 is that disclosed AI involvement is not down-ranked. Undisclosed farm-pattern uploads are what the spam filter targets.&lt;/p&gt;

&lt;h3&gt;
  
  
  Should I move off DistroKid because of the UMG lawsuit?
&lt;/h3&gt;

&lt;p&gt;Not on the news alone. Keep a current catalogue export and a second distributor account ready, and register publishing independently. Concentration is the risk, not the platform.&lt;/p&gt;

&lt;h3&gt;
  
  
  What counts as AI-assisted rather than fully AI-generated?
&lt;/h3&gt;

&lt;p&gt;Use SIQA's framing: assisted means humans direct the work; hybrid means the artist performs or reproduces their own voice; fully generated means end-to-end machine output with only curation. Own two of lyrics, melody or arrangement plus the mix, and document it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The badge era rewards a boring thing: being a real person who uses machines well. Every product mentioned is available at wowhow.cloud — pay once, ship forever.
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://wowhow.cloud/blogs/spotify-ai-persona-badge-identity-stack-ai-assisted-artists-2026" rel="noopener noreferrer"&gt;wowhow.cloud&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>spotifyai</category>
      <category>aipersona</category>
      <category>aimusic</category>
      <category>distrokidumg</category>
    </item>
    <item>
      <title>Writing With AI Without the LLM Tells — a 2026 Editing Workflow</title>
      <dc:creator>Anup Karanjkar</dc:creator>
      <pubDate>Tue, 08 Sep 2026 13:15:05 +0000</pubDate>
      <link>https://dev.to/akaranjkar08/writing-with-ai-without-the-llm-tells-a-2026-editing-workflow-1aic</link>
      <guid>https://dev.to/akaranjkar08/writing-with-ai-without-the-llm-tells-a-2026-editing-workflow-1aic</guid>
      <description>&lt;p&gt;&lt;strong&gt;Readers can tell, and when they can tell they stop reading. That is Bryan Cantrill's argument in "Your intellectual fly is open", which returned to the Hacker News front page this week with more than 680 points: to anyone who has seen a modicum of LLM output, the tells — emojis, single-sentence paragraphs, "it's not just X, but also Y" constructions — are impossible to ignore, and once a reader suspects generated text they no longer know what is real, so they leave. His prescription is not abstinence. LLMs, he writes, are helpful for brainstorming, invaluable for comprehending text, and astonishingly good editors; they are simply bad at being you. The same week, a paper on arXiv by Ricard Solé, Giulio Ruffini, David Krakauer, Michael Levin and colleagues modelled LLM use as a cognitive virus spreading through a population, with a tipping point past which small increases in adoption produce abrupt losses in competence — and identified the antidote as reversibility: keeping the ability to do the thing without the tool. The workflow below is built on both: you draft, the model edits, and you keep the pen.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The tells, as a checklist
&lt;/h2&gt;

&lt;p&gt;Cantrill names three. Practising editors will add more. Run a draft against all of them before publishing:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Structural tells.&lt;/strong&gt; Emoji as bullets or section markers. A run of single-sentence paragraphs where none carries a revelation. Every section the same length. A closing paragraph that restates the opening. Lists where prose would do, especially three-item lists of parallel abstract nouns.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Syntactic tells.&lt;/strong&gt; "It's not just X — it's Y." "Whether you're a beginner or a seasoned professional." Rhetorical questions answered in the next sentence. Colons before every list. Sentences that begin with a participle and end in a moral.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lexical tells.&lt;/strong&gt; A specific vocabulary readers have learned to flinch at: delve, tapestry, testament, landscape, robust, elevate, unlock, journey, game-changer, crucial, comprehensive. None of these words is wrong. Their density is the signature.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Absence tells.&lt;/strong&gt; No specific numbers. No first-hand detail a model could not have known. No opinion that could be wrong. No sentence a lawyer would cut. The absence of anything at stake is the deepest tell, and no vocabulary filter catches it.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the cognitive-virus paper actually says
&lt;/h2&gt;

&lt;p&gt;The arXiv preprint (2609.03344, submitted 3 September 2026) does not say LLMs make you stupid. It builds a population model with three states — uncoupled users, coupled users who integrate the tool into daily practice, and persistently dependent users with reduced cognitive autonomy — and shows that social transmission, recovery and collective reinforcement interact to produce tipping points and technological lock-in. Past a critical threshold, small increases in adoption tip a population into persistent dependence with abrupt competence loss. The same model identifies the conditions for what the authors call cognitive immunization: reducing transmission and, above all, facilitating reversibility.&lt;/p&gt;

&lt;p&gt;Reversibility is the operational word. For a writer it means one thing: can you still produce the first draft yourself? If the answer is yes, the tool is an amplifier. If the answer has quietly become no, you are in the third state, and the paper's model says the way out is to practise the unassisted version regularly, not to swear off the tool.&lt;/p&gt;

&lt;h2&gt;
  
  
  The workflow
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Draft cold, badly, alone
&lt;/h3&gt;

&lt;p&gt;Write the whole piece with the model closed. It will be rough. That is the point: the roughness is where your voice, your specific examples and your actual opinion live. Set a timer if you need one. The draft is the part of the process that keeps you reversible.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Use the model to comprehend, not to compose
&lt;/h3&gt;

&lt;p&gt;Paste in the source material — the paper, the changelog, the transcript — and ask questions. "What does this paper claim and what does it not claim?" "Which of these numbers is measured and which is modelled?" This is the invaluable-for-comprehension use Cantrill grants, and it produces the specific, checkable details that absence tells are made of.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Edit with constrained prompts
&lt;/h3&gt;

&lt;p&gt;Give the model your draft and a narrow brief. The prompt matters; open-ended "improve this" produces the tells.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;You are a line editor. Do not add sentences. Do not add lists.
Do not change my claims or my examples. Preserve my sentence rhythm.
Do: cut redundancy, fix grammar, flag any sentence that is vague
or unsupported with [VAGUE] or [CITE?]. Return the edited text
and a short list of what you changed.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then a second pass, adversarial:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;List every phrase in this text that a reader would recognise as
LLM-generated: filler adjectives, parallel triplets, rhetorical
questions, "not just... but also", closing summaries. Quote each
one. Do not rewrite anything.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You make the cuts. The model flags; you decide.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Put something at stake
&lt;/h3&gt;

&lt;p&gt;Before publishing, find the sentence a reader could disagree with. If there is none, the piece is not finished. Add the number you measured, the thing you got wrong last time, the recommendation you would defend in a meeting. This is the step no model does for you and the one that removes the deepest tell.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Read it aloud, then run the mechanical checks
&lt;/h3&gt;

&lt;p&gt;Reading aloud catches rhythm tells — the sameness of sentence length, the paragraph that should be two. Then the mechanical pass: the &lt;a href="https://dev.to/tools/readability-checker"&gt;readability checker&lt;/a&gt; will show you sentence-length variance and grade level, and the &lt;a href="https://dev.to/tools/word-counter"&gt;word counter&lt;/a&gt; will tell you whether the "quick" piece became 3,000 words of filler. Neither replaces the ear; both catch what the ear tires of.&lt;/p&gt;

&lt;h2&gt;
  
  
  The counter-argument, taken seriously
&lt;/h2&gt;

&lt;p&gt;The strongest case for letting the model write is throughput: a marketing team producing forty pieces a month cannot hand-draft all of them, and readers of a product changelog do not care about voice. That is true for text nobody reads as a person. It is false the moment the byline matters — a founder's post, an engineer's write-up, anything where the reader is deciding whether to trust you. Cantrill's point is about exactly that text, and his line stands: have some confidence in your own voice, and write your own content. Where volume genuinely matters, the fix is fewer pieces with a person behind each, not more pieces with none.&lt;/p&gt;

&lt;h2&gt;
  
  
  Before and after: one paragraph through the workflow
&lt;/h2&gt;

&lt;p&gt;Here is a paragraph of the kind that arrives when a model is asked to "write an intro about Python 3.15", followed by what survived the two prompts above and a human with a pen.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Before:&lt;/em&gt; "Python 3.15 isn't just another release — it's a game-changer for developers everywhere. 🚀 Whether you're a seasoned professional or just starting your coding journey, this comprehensive update delivers robust improvements across the board. From lazy imports to enhanced performance, let's dive into what makes 3.15 truly special. Ready to level up? Let's explore!"&lt;/p&gt;

&lt;p&gt;&lt;em&gt;After:&lt;/em&gt; "Python 3.15 ships on 1 October. Two changes will break code that has worked for a decade: &lt;code&gt;open()&lt;/code&gt; now defaults to UTF-8 instead of the system locale, and the garbage collector reverts to the generational design after 3.14's incremental collector caused memory pressure in production. Everything else — lazy imports, frozendict, a faster JIT — is optional. Run your test suite under the release candidate with warnings as errors this week; on our three services that took forty minutes and found 58 call sites."&lt;/p&gt;

&lt;p&gt;Count what changed. The emoji, the "not just", the "whether you're", the "journey", "comprehensive", "robust", "game-changer", "dive" and "explore" are gone — that is the lexical and syntactic layer, and a filter could catch most of it. What a filter could not do is what makes the second version readable: a date, two named breaking changes with a reason, a specific instruction, and a number from actual work. The model flagged the first layer in seconds. The second layer took a person who had run the migration, which is the whole argument.&lt;/p&gt;

&lt;p&gt;A last honesty check we apply to our own posts, this one included: could a reader tell which sentences came from the source material and which from us? If the answer is no, that is not a compliment; it means the piece has no voice to distinguish. The fix is always the same — say what you did, say what you think, and let one of those be something a reader could push back on.&lt;/p&gt;

&lt;h2&gt;
  
  
  Quick answers
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What are the most recognisable LLM writing tells?
&lt;/h3&gt;

&lt;p&gt;Emoji markers, runs of single-sentence paragraphs, "not just X but also Y", parallel triplets of abstract nouns, and a vocabulary cluster around delve, tapestry, robust and journey. The deeper tell is the absence of anything specific or contestable.&lt;/p&gt;

&lt;h3&gt;
  
  
  Does the cognitive-virus paper say to stop using LLMs?
&lt;/h3&gt;

&lt;p&gt;No. It models adoption dynamics and identifies reversibility — retaining the ability to work unassisted — as the condition for avoiding lock-in.&lt;/p&gt;

&lt;h3&gt;
  
  
  What are LLMs good at in a writing workflow?
&lt;/h3&gt;

&lt;p&gt;Per Cantrill: brainstorming, comprehending source material, and editing. Not authoring in your voice.&lt;/p&gt;

&lt;h2&gt;
  
  
  Write your next piece cold, then run the two prompts above on it and count what they flag; the number will tell you how much of your voice you had been outsourcing. If you publish on a schedule, the &lt;a href="https://dev.to/product/content-calendar-template-2026-with-ai-prompts"&gt;Content Calendar Template with AI Prompts&lt;/a&gt; is structured around this draft-then-edit split rather than generate-then-post, and the &lt;a href="https://dev.to/product/social-media-reel-hooks-video-ai"&gt;Reel Hooks pack&lt;/a&gt; applies the same at-stake rule to short-form openers. Our own take on the adjacent debate is in &lt;a href="https://dev.to/blogs/is-prompt-engineering-dead-2026"&gt;Is prompt engineering dead?&lt;/a&gt;. Every product mentioned is available at wowhow.cloud — pay once, ship forever.
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://wowhow.cloud/blogs/writing-with-ai-without-llm-tells-cantrill-cognitive-virus-editing-workflow-2026" rel="noopener noreferrer"&gt;wowhow.cloud&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>llmwriting</category>
      <category>howto</category>
      <category>yourintellectual</category>
      <category>llmsas</category>
    </item>
    <item>
      <title>LG Smart TV Privacy Lockdown — ACR, Mic and Network Scanning</title>
      <dc:creator>Anup Karanjkar</dc:creator>
      <pubDate>Tue, 08 Sep 2026 07:16:40 +0000</pubDate>
      <link>https://dev.to/akaranjkar08/lg-smart-tv-privacy-lockdown-acr-mic-and-network-scanning-11fb</link>
      <guid>https://dev.to/akaranjkar08/lg-smart-tv-privacy-lockdown-acr-mic-and-network-scanning-11fb</guid>
      <description>&lt;p&gt;&lt;strong&gt;If you own an LG smart TV, do three things tonight: turn off LivePlus (the Automated Content Recognition setting), turn on Limit Ad Tracking, and disable Voice Recognition under AI Service. Then do the thing that actually works — put the TV on an isolated network segment or cut its internet entirely and stream through an external box. The reason is a Gamers Nexus investigation, run with Level1Techs and independent security researchers and published as a 135-minute video, which found retail LG OLED sets including the G5 sweeping the local network to map phones and smartwatches, collecting the names and signal strengths of neighbouring Wi-Fi networks along with location data, running ACR to fingerprint whatever is on screen across every input, and capturing clean microphone audio while the screen was — or appeared to be — powered down in standby. When disconnected from Ethernet the set kept storing voice input locally and uploaded it once reconnected. The data feeds LG Ad Solutions, which advertises reach to 363 million secondary addressable devices in the US alone. LG had not commented at the time of writing.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What the investigation actually found
&lt;/h2&gt;

&lt;p&gt;Four distinct behaviours, each of which would be a story on its own. &lt;strong&gt;Network reconnaissance:&lt;/strong&gt; packet captures showed the TV actively scanning the LAN for unrelated hardware — phones, watches, other devices — rather than only talking to the services it needs. &lt;strong&gt;Environmental mapping:&lt;/strong&gt; the set gathered the SSIDs and signal strengths of nearby Wi-Fi networks, which together with location data is enough to place a household precisely and to infer neighbours. &lt;strong&gt;ACR:&lt;/strong&gt; Automated Content Recognition samples on-screen audio and video into fingerprints and logs what you watch, including from HDMI inputs — a console, a laptop, a set-top box — not only the TV's own apps. &lt;strong&gt;Standby microphone capture:&lt;/strong&gt; in bench tests the TV captured clean audio with the panel dark; voice prompts were logged in plain text; and with Ethernet unplugged the audio was stored locally and uploaded when the connection returned.&lt;/p&gt;

&lt;p&gt;The last point is the one that changes the advice. Disconnecting the TV does not stop capture; it defers upload. The researchers' own recommendation was to keep LG sets off the internet permanently and use an external streaming device.&lt;/p&gt;

&lt;h2&gt;
  
  
  The 15-minute settings lockdown
&lt;/h2&gt;

&lt;p&gt;Menu paths move between webOS versions, and LG has moved the ACR toggle three times. Use the Settings search if a path below does not match your firmware.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Turn off LivePlus (ACR)
&lt;/h3&gt;

&lt;p&gt;webOS 23 and 24 (2024 through 2026 models): &lt;em&gt;Settings → All Settings → General → System → Additional Settings → LivePlus → Off&lt;/em&gt;. webOS 22: &lt;em&gt;General → Quick Start+&lt;/em&gt;. Pre-release webOS 25 builds nest it under a new &lt;em&gt;Personalized Experience&lt;/em&gt; submenu. This is the setting that stops fingerprinting of HDMI inputs as well as apps.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Turn on Limit Ad Tracking
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;All Settings → General → Open Advertisements → Limit Ad Tracking&lt;/em&gt; on, and select &lt;em&gt;Do Not Sell / Share&lt;/em&gt; where your region shows it.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Disable voice recognition
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Settings → All Settings → General → AI Service → Voice Recognition&lt;/em&gt;, unchecked, unless you rely on the voice concierge. If the remote has a microphone button, this is the setting behind it.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Review every user agreement
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Settings → All Settings → Support → About This TV → User Agreements&lt;/em&gt;. LG bundles consents, and webOS 24 added two new optional consents in April 2026 that default to opted-in. Decline everything that is not required for the TV to function; the set will tell you which ones are.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Check after every firmware update
&lt;/h3&gt;

&lt;p&gt;Settings have been observed to move and, in some reports, to reset. Put a calendar reminder on the first of the month: search Settings for "LivePlus" and "Advertisements" and confirm.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why the menu is not enough
&lt;/h2&gt;

&lt;p&gt;Every setting above is a promise from the same software that was found capturing audio in standby. A toggle can be renamed, moved or reset by an update; the investigation's core finding is that the device's behaviour and its stated behaviour diverged. So treat the settings as a first layer and the network as the real control.&lt;/p&gt;

&lt;h3&gt;
  
  
  Option A — isolate the TV on its own segment
&lt;/h3&gt;

&lt;p&gt;If your router supports VLANs or a guest network with client isolation, put the TV there alone. Client isolation stops it seeing your phones, laptops and watches, which removes the network-mapping behaviour outright. If you want the TV to reach the internet for its own apps but nothing else in your home, that is enough. Plan the ranges with the &lt;a href="https://dev.to/tools/subnet-calculator"&gt;subnet calculator&lt;/a&gt;: a /26 for IoT is plenty.&lt;/p&gt;

&lt;h3&gt;
  
  
  Option B — block its WAN access and use an external streamer
&lt;/h3&gt;

&lt;p&gt;The researchers' recommendation and ours for anything you cannot isolate. In the router, assign the TV a fixed IP and add a rule denying it outbound internet. Then plug in an Apple TV, a Chromecast, a Fire stick or a small PC over HDMI and use the TV as a panel. You lose LG's apps and keep everything else, and a device with no route out cannot upload what it recorded.&lt;/p&gt;

&lt;h3&gt;
  
  
  Option C — never connect it
&lt;/h3&gt;

&lt;p&gt;If the TV has never been on your Wi-Fi it has never phoned home. New sets prompt hard for a connection during setup; skip it. The cost is losing firmware updates, which is a trade many people will take.&lt;/p&gt;

&lt;h2&gt;
  
  
  Samsung, Sony, Roku and the rest
&lt;/h2&gt;

&lt;p&gt;The investigation was LG-specific and we are not extending its findings to other brands without evidence. What is documented across the industry is ACR: Samsung, Sony, Vizio and Roku all ship it under different names and all default it on. The network-isolation advice above applies to any smart TV regardless of brand, and it is the only measure that does not depend on trusting the vendor's menu.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to verify the TV is actually isolated
&lt;/h2&gt;

&lt;p&gt;Settings and router rules are claims. Verify them from a phone or laptop on your main network, then from the TV's segment, in about ten minutes.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# From a laptop on the main network: can you see the TV?&lt;/span&gt;
ping &lt;span class="nt"&gt;-c&lt;/span&gt; 3 192.168.20.15          &lt;span class="c"&gt;# the TV's fixed IP on the IoT segment&lt;/span&gt;
&lt;span class="c"&gt;# You WANT this to fail if you chose full isolation, or succeed only via&lt;/span&gt;
&lt;span class="c"&gt;# the reverse proxy / cast port you deliberately allowed.&lt;/span&gt;

&lt;span class="c"&gt;# From the IoT segment (a phone joined to it): can the TV's neighbours see your devices?&lt;/span&gt;
&lt;span class="c"&gt;# Install a network scanner app, scan the segment: it should list ONLY the TV and the router.&lt;/span&gt;

&lt;span class="c"&gt;# If you run Pi-hole or AdGuard Home: filter the query log by the TV's IP.&lt;/span&gt;
&lt;span class="c"&gt;# With WAN blocked you should see attempts and no answers; that log is your evidence the block holds.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Repeat the third check a day after any TV firmware update. If the query log for the TV's address suddenly shows successful lookups to advertising or analytics domains, a rule was bypassed or reset and it is time to look at the router, not the TV menu.&lt;/p&gt;

&lt;p&gt;One practical note for households that cast from phones: casting needs the phone and the TV to discover each other, which full isolation prevents. The usual compromise is a firewall rule that allows only the discovery and cast ports from the trusted segment to the TV's address, with everything else denied and the TV's own outbound internet still blocked. If your router cannot express that, an external streaming box on the trusted segment with the TV as a dumb panel gives you casting back without giving the TV a route out.&lt;/p&gt;

&lt;p&gt;For the alerting side — a message when an isolated device suddenly resolves an outside domain — the &lt;a href="https://dev.to/product/zapier-expert-workflow-builder-50-automation-prompts"&gt;Zapier Expert Workflow Builder&lt;/a&gt; prompts produce a working Pi-hole-to-phone alert in one sitting.&lt;/p&gt;

&lt;h2&gt;
  
  
  Quick answers
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Does turning off LivePlus stop the microphone?
&lt;/h3&gt;

&lt;p&gt;No. LivePlus is ACR — content fingerprinting. Voice Recognition under AI Service controls the microphone feature. Turn off both.&lt;/p&gt;

&lt;h3&gt;
  
  
  If I unplug the Ethernet, is the data gone?
&lt;/h3&gt;

&lt;p&gt;The investigation found voice input was stored locally while offline and uploaded on reconnection. Disconnection defers, it does not delete.&lt;/p&gt;

&lt;h3&gt;
  
  
  Which LG models were tested?
&lt;/h3&gt;

&lt;p&gt;Retail LG OLED models including the G5. The report suggests the behaviour reflects the webOS platform rather than a single model.&lt;/p&gt;

&lt;h3&gt;
  
  
  What did LG say?
&lt;/h3&gt;

&lt;p&gt;Nothing at the time of writing.&lt;/p&gt;

&lt;p&gt;If you manage screens for a small office or a shop, the same five settings and the same isolation apply, with one addition: write down which segment each display lives on and who owns the router rule, because the person who set it up will not be the person who notices when a firmware update quietly re-enables a consent. A one-line entry in the same document that holds your Wi-Fi passwords is enough.&lt;/p&gt;

&lt;h2&gt;
  
  
  Do the five settings now, then spend twenty minutes in your router putting the TV somewhere it cannot see your phones. If you run a small business with screens in the office, the same isolation applies and your privacy notice should say what those screens collect; our &lt;a href="https://dev.to/blogs/privacy-policy-generator-gdpr-dpdpa-ccpa-2026"&gt;privacy policy generator guide&lt;/a&gt; covers the wording and the &lt;a href="https://dev.to/tools/privacy-policy-generator"&gt;generator&lt;/a&gt; itself is free. For the router and monitoring automation — Uptime Kuma alerts when an isolated device suddenly reaches the internet — the &lt;a href="https://dev.to/product/n8n-makecom-automation-architect-50-prompts"&gt;n8n and Make.com Automation Architect&lt;/a&gt; prompts are where we started. Every product mentioned is available at wowhow.cloud — pay once, ship forever.
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://wowhow.cloud/blogs/lg-smart-tv-privacy-lockdown-acr-live-plus-microphone-network-scanning-settings-2026" rel="noopener noreferrer"&gt;wowhow.cloud&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>lgsmart</category>
      <category>turnoff</category>
      <category>lgtv</category>
      <category>limitad</category>
    </item>
  </channel>
</rss>
