<?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: Björn Roberg</title>
    <description>The latest articles on DEV Community by Björn Roberg (@roobie).</description>
    <link>https://dev.to/roobie</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3922688%2F058fa45b-c023-4de1-b455-68aa3d6d1d86.jpeg</url>
      <title>DEV Community: Björn Roberg</title>
      <link>https://dev.to/roobie</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/roobie"/>
    <language>en</language>
    <item>
      <title>I tagged every blog post by cognitive mode. Most of mine are knowledge-telling — and that's fine.</title>
      <dc:creator>Björn Roberg</dc:creator>
      <pubDate>Wed, 13 May 2026 09:54:28 +0000</pubDate>
      <link>https://dev.to/roobie/i-tagged-every-blog-post-by-cognitive-mode-most-of-mine-are-knowledge-telling-and-thats-fine-350p</link>
      <guid>https://dev.to/roobie/i-tagged-every-blog-post-by-cognitive-mode-most-of-mine-are-knowledge-telling-and-thats-fine-350p</guid>
      <description>&lt;p&gt;I added a single optional field to my blog's frontmatter. By the end of the afternoon, I had a meta page that classified my own posts into four groups, and the distribution was unflattering in a way I hadn't predicted.&lt;/p&gt;

&lt;p&gt;Here's the field:&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;kt_mode&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;knowledge-transforming&lt;/span&gt;   &lt;span class="c1"&gt;# or knowledge-telling, or mixed&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And the schema change, in Zod for an Astro content collection:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="nx"&gt;kt_mode&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;z&lt;/span&gt;
  &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;enum&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;knowledge-telling&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;knowledge-transforming&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;mixed&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
  &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;optional&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's the whole new contract. Optional, so existing posts don't break. Omission means "I haven't classified this yet."&lt;/p&gt;

&lt;p&gt;A new page at &lt;code&gt;/lenses/&lt;/code&gt; reads the field and groups every post under one of four headings: &lt;code&gt;knowledge-transforming&lt;/code&gt;, &lt;code&gt;mixed&lt;/code&gt;, &lt;code&gt;knowledge-telling&lt;/code&gt;, &lt;code&gt;unclassified&lt;/code&gt;. The Astro is unremarkable — &lt;code&gt;getCollection&lt;/code&gt;, group by a property, render a &lt;code&gt;&amp;lt;Card&amp;gt;&lt;/code&gt; per post. I cribbed the structure from my own &lt;code&gt;/archives/&lt;/code&gt; page and replaced "group by year" with "group by &lt;code&gt;kt_mode ?? 'unclassified'&lt;/code&gt;". About forty lines.&lt;/p&gt;

&lt;p&gt;What's worth talking about is what the field is &lt;em&gt;for&lt;/em&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  The categories aren't mine
&lt;/h2&gt;

&lt;p&gt;They come from Carl Bereiter and Marlene Scardamalia, &lt;em&gt;The Psychology of Written Composition&lt;/em&gt; (1987). Their central claim, simplified:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Two distinct cognitive processes underlie all written composition, and most writers default to the simpler one without noticing.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Knowledge-telling&lt;/strong&gt; is the retrieve-and-write loop. You locate what you know, locate the rough shape of the genre, write down what comes up, stop when nothing new surfaces. The output is coherent. Your beliefs don't change. Cognitive cost is low. Most tutorials, most how-tos, most "here's a thing I built" posts are knowledge-telling — and that's appropriate. They're not arguing anything.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Knowledge-transforming&lt;/strong&gt; runs two problem spaces in tension: a &lt;em&gt;content&lt;/em&gt; space (&lt;em&gt;what do I actually believe? what's the real shape of this claim?&lt;/em&gt;) and a &lt;em&gt;rhetorical&lt;/em&gt; space (&lt;em&gt;how should this be said, to whom, toward what end?&lt;/em&gt;). Each space's tentative answer constrains the other; the writer iterates between them. Beliefs shift during the writing. Cognitive cost is high. If you can predict the post at the start, you weren't doing this — you were doing the first thing, well.&lt;/p&gt;

&lt;p&gt;The uncomfortable empirical claim: most writing, including by competent practitioners, is knowledge-telling. Knowledge-transforming doesn't happen by accident.&lt;/p&gt;

&lt;h2&gt;
  
  
  The reveal
&lt;/h2&gt;

&lt;p&gt;I classified five pilot posts — two knowledge-transforming, one mixed, two knowledge-telling. The remaining twenty-four sit under "unclassified" because I haven't gone through them yet.&lt;/p&gt;

&lt;p&gt;That ratio is itself diagnostic. I have written more than I have &lt;em&gt;deliberately transformed&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;This is not a moral failing. Knowledge-telling is what most published technical writing &lt;em&gt;should&lt;/em&gt; be. The failure mode B&amp;amp;S names is not "writing knowledge-telling posts." It's &lt;strong&gt;mistaking one for the other&lt;/strong&gt; — treating a knowledge-telling artifact as if it were substrate-bearing thinking. The categories are useful precisely because they expose the confusion. You can't tell from the surface. Both kinds of post can be well-written, well-structured, fully formed. The difference is invisible to the reader unless the writer marks it.&lt;/p&gt;

&lt;p&gt;So I'm marking it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why this matters in 2026
&lt;/h2&gt;

&lt;p&gt;Large language models perform &lt;strong&gt;knowledge-telling natively&lt;/strong&gt;. That's what next-token prediction structurally &lt;em&gt;is&lt;/em&gt; — retrieve plausible content that fits a topic and a genre, write it down, repeat. An LLM has no content problem space because it has no beliefs to revise.&lt;/p&gt;

&lt;p&gt;This is fine when knowledge-telling is what you wanted. It's fine for boilerplate, summaries, restatements of well-trodden material, drafts you'll rewrite.&lt;/p&gt;

&lt;p&gt;The failure mode is when knowledge-telling masquerades as the other thing. An LLM-written essay can have all the surface markers of knowledge-transforming — caveats, opposing views considered, conclusions that update mid-piece — &lt;em&gt;without anyone's beliefs having changed&lt;/em&gt;. The surface is dialectic; the substrate is empty. It reads like thinking happened; nothing was thought.&lt;/p&gt;

&lt;p&gt;That's what &lt;code&gt;kt_mode&lt;/code&gt; is trying to make legible. Not as a quality grade. As a process disclosure.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;

&lt;p&gt;If this resonates, here's the small thing I'd suggest:&lt;/p&gt;

&lt;p&gt;Add one optional frontmatter field to your blog or notes system. Any classification axis that names something invisible from the surface — cognitive mode, co-authoring posture, genre, audience, your own taxonomy. The constraint is that the categories should be hard to fake and hard to derive from skimming. The act of choosing the value should require an honest look at what you actually wrote.&lt;/p&gt;

&lt;p&gt;Then build a meta page that displays the corpus through that lens. It doesn't have to be pretty. The point is that the classification becomes part of the artifact.&lt;/p&gt;

&lt;p&gt;The first useful thing this gave me wasn't the categories themselves — those were always there. It was the visible &lt;em&gt;unclassified&lt;/em&gt; count, growing every time I declined to look at a post and decide. The blank space is its own diagnostic.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally posted at &lt;a href="https://bjro.dev/posts/tagging-posts-by-cognitive-mode/" rel="noopener noreferrer"&gt;bjro.dev&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>writing</category>
      <category>astro</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
