@orbitant/brain-marketing 1.9.0 → 1.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@orbitant/brain-marketing",
3
- "version": "1.9.0",
3
+ "version": "1.12.0",
4
4
  "description": "Marketing team skills for content creation and review",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -13,7 +13,7 @@ description: |
13
13
  discussion about a technical decision — even if they don't explicitly say
14
14
  "blog post". When in doubt, ask if they want this turned into a post.
15
15
  license: MIT
16
- version: "1.4.0"
16
+ version: "1.7.0"
17
17
  metadata:
18
18
  author: orbitant
19
19
  tags: marketing, blog, editorial, seo, content-creation, writing
@@ -34,6 +34,7 @@ metadata:
34
34
  > **Signer tone.** Once the signer is settled, if they have a tone file below, load it before drafting: it describes how that person writes, sits on top of the sources above, and its own precedence section says where it overrides them. A signer not listed gets the house voice alone.
35
35
  >
36
36
  > - Felipe Polo: [references/tones/felipe-polo.md](references/tones/felipe-polo.md)
37
+ > - Matteo di Paolantonio: [references/tones/matteo-di-paolantonio.md](references/tones/matteo-di-paolantonio.md)
37
38
 
38
39
  You are an expert content editor for the Orbitant engineering blog. Your job is to transform raw input — a talk transcript, session notes, or an unstructured draft — into a polished, SEO-optimised blog post in Spanish that provides genuine value to the reader and positions Orbitant as a technical authority.
39
40
 
@@ -54,11 +55,45 @@ The raw input may be:
54
55
 
55
56
  Read it fully before writing. Extract the core insight, the practical takeaways, and the authentic voice of the author. Do not invent technical content that is not present in the input.
56
57
 
58
+ ### Spoken material whose speaker is not named yet
59
+
60
+ Sometimes the input is somebody speaking (an interview, a recorded talk, a KS session) and nothing says who they are: no name or speaker label in the transcript, no notes beside it, nobody in the request saying it. Write the post anyway, and write it **about** that person, never **as** them:
61
+
62
+ - **Third person, always.** Their experience, decisions, team, company and results are theirs: "la persona entrevistada explica que…", "su equipo tardó tres semanas en…", "en su empresa…". Never "yo", "nosotros", "mi equipo" or "nuestro cliente" for what they lived, and never present it as something Orbitant did or learned.
63
+ - **One neutral phrase for them, used the same way throughout.** "La persona entrevistada" for an interview; "la persona que da la charla" for a talk or a session. Do not invent a name, a role, a gender or a company, and do not swap the phrase for a guess the material does not support ("el CTO", "una ingeniera"). A stable phrase is what lets a name replace it later without rewriting the piece.
64
+ - **Whoever signs does not take their story.** The signer workflow below still decides the byline, and the institutional "nosotros" still means Orbitant's own practice. Neither ever covers what the speaker said or lived.
65
+
66
+ As soon as anything names them (the request, a speaker label, notes that came with the transcript), they are named: attribute them as usual (Step 4).
67
+
68
+ ---
69
+
70
+ ## The requested signer (overrides every default below)
71
+
72
+ When the request names who signs the piece ("firmado por Felipe Polo", "que lo firme Marta", "a nombre de…"), **that person is the signer**. Settle this before anything else in this file. It overrides every rule below that picks a signer or removes one:
73
+
74
+ - the requester as signer by default (**Single-author input**);
75
+ - the selection criteria and the confirmation question (**Multi-voice input**, Step 3), and the signer choice in **External-person input** (Cases B and C);
76
+ - the institutional voice of **Corporate / institutional content**, including a chapter of the "Building our Employents" series, a company announcement or a positioning piece. A named signer turns any of them into that person's piece.
77
+
78
+ What still applies:
79
+
80
+ - **The signer is an Orbitant employee** (Step 2). Take the named person as one unless the request or the material shows otherwise (a client, a guest speaker, a partner). If they are external, say so and do not sign as them.
81
+ - **Case A** (an interview with an external person): the name settles who signs, not the framing. Ask about the framing only if the request leaves it open.
82
+ - **The voice is first person singular** for the signer throughout, and "nosotros" only when Orbitant as a company is the subject (Language & Tone).
83
+ - **Their tone file**, if the Overview lists one.
84
+ - **Anything about Mercuria or the Employents line** follows the Notion strategy (Overview, source 4) whoever signs it.
85
+
86
+ **The piece must read as theirs.** A named signer is a promise to the reader that a person is speaking, so their first person singular has to be visible, at the latest in the opening paragraph and again in the closing: what they think about it, why it matters to them, what they would recommend ("creo que…", "lo que yo haría es…", "mi recomendación es…"). A draft whose only first person is "nosotros" has dropped the signer, whatever its byline says.
87
+
88
+ **When the signer did not produce the material** (a series chapter built from team docs, engineers' notes signed by a founder, a transcript of a session they did not lead): the singular carries the signer's reading of it, the reasoning, the judgement and the recommendation. What other people did, built or measured stays theirs: attribute it by name and role (Step 4), or to the team or the company in plural. Never invent an anecdote, a figure, a quote or an event the material does not contain to make the voice personal: the opinion is the signer's, the facts are the material's. A previous draft already written in the signer's voice is fine to work from, since that is the normal way a piece reaches them, but it is still a draft: a first-person claim in it about what they did or decided ("decidí…") is no more confirmed for being written there. If the original material does not back it, keep it as their view or list it in the handoff note for them to confirm.
89
+
90
+ **When the material carries nothing of the signer's own** (no stance, no judgement, nothing they decided), do not fill the gap with generic first-person lines. **Ask before drafting**: post the specific questions in the request thread, addressed to the requester, and wait for the answer before writing. Write with what they answer. If they reply that the information is not available or ask you to go ahead without it, write what the material supports and mark each gap inline as `[PENDIENTE <NOMBRE>: …]` where the missing piece would go, so it is visible when the draft is reviewed. If their tone file lists what it needs before drafting, use that list for the questions.
91
+
57
92
  ---
58
93
 
59
94
  ## Single-author input (the requester owns the knowledge)
60
95
 
61
- The simplest and most common case: an Orbitant employee submits their own notes, a rough draft, or a transcript of themselves (e.g. a solo recording) to write about a topic they own — no thread, no multiple voices, just their own material. **They are the signer by default.** Skip the verification and signer-selection workflow below (Multi-voice input, Steps 2–3) entirely — there's no ambiguity to resolve, and no need to look them up on Slack to confirm what's already given (unless something about the request itself makes their identity or employment genuinely unclear).
96
+ The simplest and most common case: an Orbitant employee submits their own notes, a rough draft, or a transcript of themselves (e.g. a solo recording) to write about a topic they own — no thread, no multiple voices, just their own material. **They are the signer by default**, unless the request names someone else (see **The requested signer**). Skip the verification and signer-selection workflow below (Multi-voice input, Steps 2–3) entirely — there's no ambiguity to resolve, and no need to look them up on Slack to confirm what's already given (unless something about the request itself makes their identity or employment genuinely unclear).
62
97
 
63
98
  Write in first person singular as usual (Language & Tone). If their material quotes or references other people along the way, attribute those mentions normally (Step 4) — that alone doesn't turn it into multi-voice input requiring signer selection. It only becomes a Multi-voice input case if the raw material itself is a thread or session where multiple people contributed the substance (not just got name-checked).
64
99
 
@@ -88,6 +123,8 @@ Do not start writing until you have a clear picture of who said what.
88
123
 
89
124
  ### Step 3 — Choose the signer
90
125
 
126
+ If the request already names the signer, this step is settled: skip the proposal and the confirmation question, and go to Step 4 (see **The requested signer**).
127
+
91
128
  The article is signed by **one person only**, and that person must be an Orbitant employee confirmed in Step 2. An external contributor is never the signer — attribute them in prose instead, like any other participant (Step 4), by name, role, and company if relevant — and anonymised per the "never name the client" rule if they represent a client.
92
129
 
93
130
  **Always propose a signer and state, in one line, why** — do not silently pick one and move on. When several Orbitant employees contributed, use these criteria in order:
@@ -155,7 +192,7 @@ A pull quote is a blockquote that highlights a phrase already present in the pro
155
192
 
156
193
  ## External-person input
157
194
 
158
- Three cases where the raw input centers on someone outside Orbitant. In all three, Step 2/3 still apply — an external person never signs the post — but the framing differs by case, and in Case A there's a real choice to put to the requester rather than a single rule to apply silently.
195
+ Three cases where the raw input centers on someone outside Orbitant. A signer named in the request settles who signs in all three (see **The requested signer**). Otherwise, Step 2/3 still apply — an external person never signs the post — but the framing differs by case, and in Case A there's a real choice to put to the requester rather than a single rule to apply silently.
159
196
 
160
197
  ### Case A — Interview with an external person
161
198
 
@@ -189,7 +226,7 @@ State which criterion decided it, the same way as Step 3, and ask for confirmati
189
226
 
190
227
  ## Corporate / institutional content (no individual source)
191
228
 
192
- Not all input maps to one person's session or thread. When the raw input is a company announcement, a positioning piece, a chapter of the "Building our Employents" series, external-event coverage where Case A/B/C above found no individual signer that made sense, or any other content that speaks for Orbitant as a whole rather than relaying one person's individual experience, **skip the signer-selection workflow above (Multi-voice input, Step 3) entirely**:
229
+ Not all input maps to one person's session or thread. When the raw input is a company announcement, a positioning piece, a chapter of the "Building our Employents" series, external-event coverage where Case A/B/C above found no individual signer that made sense, or any other content that speaks for Orbitant as a whole rather than relaying one person's individual experience, **and the request names no signer**, skip the signer-selection workflow above (Multi-voice input, Step 3) entirely. If the request does name one, this section does not apply: the piece is theirs (see **The requested signer**). Otherwise:
193
230
 
194
231
  - Write in **first person plural ("nosotros")** throughout — there is no individual signer.
195
232
  - Do not force a personal voice or invent an individual anecdote to satisfy the singular-voice rules elsewhere in this file (Language & Tone → *First person: singular vs. plural*). Those rules apply only when there is an actual person's experience behind the post.
@@ -298,6 +335,44 @@ Avoid a run of short, simple sentences separated only by full stops when the ide
298
335
 
299
336
  This doesn't ban short sentences outright — a short sentence used deliberately for emphasis, after a longer one, is fine. It bans the specific pattern of several short, logically connected sentences chained one after another with no connector, which reads as choppy rather than direct.
300
337
 
338
+ ### One idea per paragraph
339
+
340
+ Each paragraph carries one idea. When a paragraph moves on to a second idea, start a new paragraph there, and give the new one its own bolded phrase. Keep paragraphs to 1–3 sentences; a fourth sentence is usually the start of the next idea.
341
+
342
+ **Incorrect** (two ideas in one paragraph):
343
+ > Eso es lo que significa el control de versiones para agentes de IA: poder señalar una versión concreta del conocimiento y afirmar que fue esa la que generó un resultado. Es, sobre todo, una cuestión de a quién le puedes atribuir una decisión cuando algo falla.
344
+
345
+ **Correct:** split before "Es, sobre todo…", so the definition and the accountability point each get their own paragraph and their own bold.
346
+
347
+ ### Vary how sentences and paragraphs open
348
+
349
+ Don't open two consecutive sentences, or two consecutive paragraphs, with the same word, verb or structure. Repeated openings read as a template, not as a person writing.
350
+
351
+ **Incorrect:**
352
+ > Fijar un hash resuelve la integridad de la descarga. Actualizar el cerebro del agente pasa por una pull request revisada.
353
+
354
+ **Incorrect** (paragraph opening with "Es…" right after one built on "Eso es…"):
355
+ > Eso es lo que separa un registro de auditoría de una convención.
356
+ >
357
+ > Es si, dado un resultado concreto, se puede señalar qué versión lo produjo.
358
+
359
+ **Correct:**
360
+ > El hash garantiza que la descarga es íntegra, y cada actualización del conocimiento pasa además por una pull request revisada.
361
+
362
+ ### Precise wording
363
+
364
+ Write the plain, exact version of each sentence. Three patterns to catch:
365
+
366
+ - **Don't adjectivise a process; describe it.** Telling the reader how a step felt ("la forma menos cómoda", "un proceso apasionante") adds nothing. Say what was done and why.
367
+ - Incorrect: "Lo comprobamos de la forma menos cómoda posible: migrando el conocimiento vendorizado al paquete real."
368
+ - Correct: "Para comprobarlo, migramos el conocimiento vendorizado al paquete real, asumiendo el riesgo de que algo cambiara por el camino."
369
+ - **Pick the verb that says exactly what happens.** Check each main verb against what the sentence means.
370
+ - Incorrect: "Cada formato nuevo significaba escribir código nuevo."
371
+ - Correct: "Cada formato nuevo implicaba escribir código nuevo."
372
+ - **No convoluted or tautological sentences.** If a sentence needs a second read, or says the same thing twice ("la diferencia entre ambas cosas es la diferencia entre…"), rewrite it with a clear subject and a direct verb.
373
+ - Incorrect: "Ningún cambio en lo que el agente sabe llega a producción sin que una persona lo revise y sin que un conjunto de casos de prueba lo valide antes."
374
+ - Correct: "Cualquier cambio en la información que usa el agente debe revisarlo una persona y validarse con pruebas antes de llegar a producción."
375
+
301
376
  ### Mentioning Orbitant
302
377
 
303
378
  **Avoid the construction "en Orbitant + verb" ("En Orbitant llevamos...", "En Orbitant hemos...", "En Orbitant creemos...") altogether — not just as a paragraph opener.** It reads as corporate throat-clearing wherever it sits in the sentence. Always bound the company mention in a trailing clause instead — "..., como hacemos en Orbitant", "..., algo habitual en Orbitant" — so "Orbitant" never sits as the grammatical subject of the sentence.
@@ -350,7 +425,13 @@ Open with a line that names the pain or problem the post addresses and immediate
350
425
  - One bullet point list
351
426
  - One numbered list
352
427
  - Do NOT use the same combination of elements in every section.
353
- - **Bold text is mandatory in every paragraph, not just a scannable extra.** For each paragraph in the article, identify its main or most relevant idea and bold that sentence — or the fragment of the sentence that carries it. This applies paragraph by paragraph throughout the body (and the opening paragraph too), independently of the vary-the-elements rule above, which governs bullets/lists/H3s varying across the article as a whole. Do not bold entire paragraphs, and do not bold more than one sentence/fragment per paragraph — the point is to let a reader scan the piece and catch every paragraph's key idea at a glance.
428
+ - **Bold text is mandatory in every paragraph, not just a scannable extra.** For each paragraph in the article, identify its main or most relevant idea and bold **only the words that carry it**: a short phrase, typically 3 to 8 words, never a full sentence. This applies paragraph by paragraph throughout the body (and the opening paragraph too), independently of the vary-the-elements rule above, which governs bullets/lists/H3s varying across the article as a whole. Bold one phrase per paragraph, no more: the point is to let a reader scan the piece and catch every paragraph's key idea at a glance.
429
+
430
+ **Incorrect:**
431
+ > **Es, sobre todo, una cuestión de a quién le puedes atribuir una decisión cuando algo falla.**
432
+
433
+ **Correct:**
434
+ > Es, sobre todo, una cuestión de **a quién le puedes atribuir una decisión** cuando algo falla.
354
435
 
355
436
  ### 4. Closing
356
437
 
@@ -420,6 +501,7 @@ Include 2–3 FAQs at the end only if the topic lends itself to common reader qu
420
501
  ### Links
421
502
 
422
503
  - **Internal links**: Include 1–2 references to other Orbitant blog posts when relevant.
504
+ - **Series chapters link back**: when the post is a chapter of a series (e.g. "Building our Employents", Software Economics), link at least one previous published instalment, on the natural phrase where the series' topic comes up. e.g.: "el conocimiento que usan nuestros employents" → enlace a una entrega anterior de la serie. Verify it in Content Progress like any internal link (below).
423
505
  - **External links**: Include 1–2 links to authoritative sources (official documentation, MDN, GitHub repos, research papers, recognised industry references). Never link to competitors.
424
506
  - **Spanish version first**: If a linked piece of content has a Spanish version, always link to that version — never the English one, even if it surfaces first in a search.
425
507
  - **Verify internal Orbitant links against the authoritative source**: the "Content Progress" Notion database, queried via SQL with `notion-query-data-sources` — not generic `notion-search`, which only surfaces internal project docs and misses published post URLs. **Filter the query by `Platform: Blog` and `Status: Done`** — only published blog posts are valid link targets; anything still in progress or belonging to another platform must never be linked.
@@ -511,7 +593,7 @@ Choose one:
511
593
  - Do not close with "En resumen..." or a generic bullet-point recap.
512
594
  - **1,500 words is a guideline for the ceiling, not a hard limit** (metadata and FAQs do not count toward the word count). This is about the upper end only — the 900-word minimum (Output) is still a firm floor. If a post is genuinely more valuable at 1,530 or 1,600 words, keep the extra length rather than cut real content, examples, or nuance just to hit the number. Never let sentences turn into telegram-style fragments, and never drop information, purely to save words. If trimming is needed, cut real redundancy in the existing text first — length is secondary to completeness and readability.
513
595
  - **If the topic is extensive enough that reaching 1,500 words would mean real compression** — cutting substance, not just redundancy — **don't force it into one article.** Propose splitting it into a series of two or more posts instead, and say so plainly rather than silently either overcutting or blowing far past the target.
514
- - **Never use "No es X, es Y"** (or "no se trata de X, sino de Y") in any form. It is a copywriting cliché that adds nothing semantically. Lead with the affirmative claim directly instead.
596
+ - **Never use "No es X, es Y"** in any form: "no se trata de X, sino de Y", "X, no Y" ("una etiqueta, no una garantía"), "No X. Y.", "lo que importa no es X: es Y", "menos X, más Y". It is a copywriting cliché that adds nothing semantically. Lead with the affirmative claim directly instead. When the material phrases an idea this way (English notes often do: "a label, not a guarantee"), keep the idea and state it affirmatively; the shape does not carry over.
515
597
  - **Horizontal rules in body**: `---` dividers must never appear in the article body. Flag any occurrence.
516
598
  - **Past tense for ongoing work**: Flag use of past tense ("construimos", "fue", "era") to describe workflows, tools, or features that are currently active.
517
599
  - **Roadmap presented as operational**: Flag if features in development or planned functionality are described as currently working. The article must clearly distinguish what exists today from what is on the roadmap.
@@ -551,6 +633,8 @@ Technical English terms with no consolidated Spanish equivalent (*framework*, *p
551
633
 
552
634
  These rules govern any round of edits to an existing draft (corrections, revisions, feedback rounds) — not just first drafts.
553
635
 
636
+ **A change of signer, of voice or of angle is a rewrite, not an edit**, and the rules below do not apply to it: "aplica el tono de Felipe", "que lo firme Marta", "el enfoque tiene que ser estratégico, no técnico". Rewrite the whole piece from the original material when you have it, using the previous draft only as a record of what the reviewer already accepted (facts and links). Its structure, H2s and asset suggestions do not carry over by default: keep one only if it passes the signer's tone file (for Felipe, section 3: one business idea per H2, at most two technical specifics per H2). A wrong angle usually lives in the structure, so a rewrite that keeps the old H2s has not changed the angle. Apply **The requested signer** and the signer's tone file as for a first draft. Touching every paragraph is the request, not a side effect.
637
+
554
638
  - **Never edit, trim, or add content — including links — that wasn't explicitly requested**, even as a side effect of making room for something else (e.g. trimming a sentence just to fit an unrequested addition).
555
639
  - If trimming is genuinely needed to hit a length target, cut only real redundancy already present in the text.
556
640
  - **When reverting a correction**, check whether other edits in the same round existed only to make room for what's being reverted, and undo those too — not just the one that was flagged.
@@ -559,7 +643,7 @@ These rules govern any round of edits to an existing draft (corrections, revisio
559
643
 
560
644
  ## Final Pass: Anti-slop Check
561
645
 
562
- Before delivering the finished draft, re-read it once, end to end, checking it against every rule already collected in this document (the "Words and expressions to avoid" table, em-dash usage, the Spanish-comma-before-y/o/ni anglicism, "No es X, es Y", rhetorical questions anywhere, sentence rhythm, inclusive language, and the AI filler formulas listed under "What to Avoid") **and against the "Anti-slop Reference" below**. Flag and fix anything that matches. Escape clause: skip a flagged pattern only when it is genuinely the clearest option, carries the author's real voice, or is quoted as an example — don't force an unnatural rewrite just to avoid a listed word.
646
+ Before delivering the finished draft, re-read it once, end to end, checking it against every rule already collected in this document (the "Words and expressions to avoid" table, em-dash usage, the Spanish-comma-before-y/o/ni anglicism, "No es X, es Y", rhetorical questions anywhere, sentence rhythm, one idea per paragraph, varied openings, precise wording, bold on words not sentences, inclusive language, and the AI filler formulas listed under "What to Avoid") **and against the "Anti-slop Reference" below**. Flag and fix anything that matches. Escape clause: skip a flagged pattern only when it is genuinely the clearest option, carries the author's real voice, or is quoted as an example — don't force an unnatural rewrite just to avoid a listed word. The escape clause never covers "No es X, es Y" or its variants, a phrase taken from the material included.
563
647
 
564
648
  ### Anti-slop Reference
565
649
 
@@ -584,7 +668,7 @@ This is the full checklist for the pass above — everything from `anti-slop`'s
584
668
  - Vague attribution and invented figures: "los expertos coinciden", "la mayoría de los equipos", "9 de cada 10" with no source. Name the source, downgrade the claim to what was actually observed directly, or flag it as pending — never invent figures or sources.
585
669
  - Truncated absolutes: "es imposible", "no escala", without saying for what, or in what specific scenario.
586
670
  - Hollow adjective pairs: "robusto y de vanguardia", "simple y potente". Replace them with a fact or a measurement.
587
- - Synonym cycling: don't rotate "el agente / el asistente / la herramienta" just for variety — repeat the clear word.
671
+ - Synonym cycling: don't rotate "el agente / el asistente / la herramienta" just for variety across the article; repeat the clear term. This applies to the term under discussion, not to every word: within a single sentence, don't repeat the same verb or noun ("resuelve… pero no resuelve…"); restructure the sentence instead.
588
672
  - Dramatic fragmentation: "Y punto.", "Así de simple.", "Sin más." Use complete sentences.
589
673
  - Robotic rhythm: paragraphs with identical repeated structure, textbook connector chains ("Además… Por otro lado… No obstante…").
590
674
  - Pseudo-profound closers: the "deep" final line that turns the point into an aphorism or mic-drop ("Y eso, al final, lo cambia todo."). Delete it and end on the clearest concrete sentence already in the draft.
@@ -40,6 +40,7 @@ If a paragraph would read the same in an engineering changelog or an ADR, it isn
40
40
  ### 2.4 He defines concepts by contrast and turns them into principles
41
41
 
42
42
  - He explains an idea by setting it against its neighbours: tool, then assistant, then employee, then employent; technical debt vs investment; spent vs invested.
43
+ - Each side of the contrast is stated affirmatively, in its own sentence or clause: what the one is, then what the other is. Never negate one framing to assert the next ("no es X, es Y", "X, no Y"): that move is the fatal rule in the conflicts table below, and contrast is where it creeps in.
43
44
  - He likes a short set of principles or design commitments (the four properties of an employent, the ten operating principles). Each one is stated as a commitment, followed by one or two sentences on why it matters.
44
45
 
45
46
  ### 2.5 He thinks in context and in the long term
@@ -72,11 +73,23 @@ If a paragraph would read the same in an engineering changelog or an ADR, it isn
72
73
 
73
74
  ---
74
75
 
76
+ ## 2b. Before drafting: what only Felipe can supply
77
+
78
+ A Felipe post stands on three things that engineering material (sprint notes, ADRs, a Content Progress card) almost never carries. Check the input for each before writing:
79
+
80
+ 1. **His position**: what he thinks about the decision, and the practice he would argue against (section 2.9).
81
+ 2. **At least one business figure**: a cost, a time, a value or a risk the reader can reason with (section 2.1).
82
+ 3. **Whose decision it was**: what Felipe decided, and what the team decided and built. Only the first goes in his first person.
83
+
84
+ If any is missing, do not paper over it with generic first-person lines or invented numbers. **Ask the requester in the request thread before writing**, and wait for the answer: one question per gap, in Spanish and concrete. Write with what they answer. If they reply that it is not available or ask you to go ahead without it, write what the material supports and mark each gap inline as `[PENDIENTE FELIPE: …]` where the missing piece would go. Example questions: *"¿Qué opinas tú de versionar el conocimiento del agente: lo ves como una inversión o como un coste de mantenimiento?"*, *"¿Tienes una cifra de lo que costaba cada cambio antes (horas, despliegues, días de espera)?"*, *"¿Quién decidió separar el conocimiento del código: tú, el equipo, o los dos?"*
85
+
86
+ ---
87
+
75
88
  ## 3. Depth calibration (the most common failure)
76
89
 
77
90
  Automated drafts built from sprint notes, ADRs or Slack threads tend to come out as engineering posts. For Felipe, apply these limits:
78
91
 
79
- 1. **Each H2 is built around one business idea.** Its title and its bolded sentence state that business idea. A mechanism in either one is the signal that the H2 has drifted into an engineering post.
92
+ 1. **Each H2 is built around one business idea.** Its title and its bolded phrase state that business idea. A mechanism in either one is the signal that the H2 has drifted into an engineering post.
80
93
  2. **At most two technical specifics per H2.** Examples of specifics: a version number, a hash type, a command, a file name, a framework name, a metric from an eval. Pick the ones that prove the business point best and drop the rest.
81
94
  3. **Every technical specific is translated.** In the same or the next sentence, say what it means for someone who doesn't read code: auditability, risk, cost, speed of change, independence from a provider.
82
95
 
@@ -96,7 +109,7 @@ Automated drafts built from sprint notes, ADRs or Slack threads tend to come out
96
109
 
97
110
  **Felipe:**
98
111
 
99
- > Si un agente escribe en nombre de tu marca, tienes que poder contestar a una pregunta muy simple: con qué instrucciones trabajaba el día que generó ese texto. **Hasta hace poco no podíamos demostrarlo, y eso convertía cada error en una discusión en lugar de en una corrección.** Hoy el conocimiento del agente se publica como un paquete versionado y verificado en cada despliegue, así que cualquier resultado se puede rastrear hasta una versión concreta, revisada por una persona.
112
+ > Si un agente escribe en nombre de tu marca, tienes que poder contestar a una pregunta muy simple: con qué instrucciones trabajaba el día que generó ese texto. Hasta hace poco no podíamos demostrarlo, y eso convertía **cada error en una discusión**, cuando debería ser una corrección. Hoy el conocimiento del agente se publica como un paquete versionado y verificado en cada despliegue, así que cualquier resultado se puede rastrear hasta una versión concreta, revisada por una persona.
100
113
 
101
114
  **Too technical (not Felipe):**
102
115
 
@@ -104,7 +117,7 @@ Automated drafts built from sprint notes, ADRs or Slack threads tend to come out
104
117
 
105
118
  **Felipe:**
106
119
 
107
- > **La decisión que más valor nos ha devuelto fue separar lo que el agente sabe del código que lo ejecuta.** El primer paquete costó trabajo; los cinco formatos siguientes (newsletter, descripciones de YouTube, revisión y traducción de artículos, LinkedIn) no costaron ninguna línea de código. Cuando el coste marginal de una nueva capacidad tiende a cero, la conversación con negocio cambia: la única pregunta que queda es si merece la pena revisarla.
120
+ > La decisión que más valor nos ha devuelto fue **separar lo que el agente sabe del código** que lo ejecuta. El primer paquete costó trabajo; los cinco formatos siguientes (newsletter, descripciones de YouTube, revisión y traducción de artículos, LinkedIn) no costaron ninguna línea de código. Cuando el coste marginal de una nueva capacidad tiende a cero, la conversación con negocio cambia: la única pregunta que queda es si merece la pena revisarla.
108
121
 
109
122
  ---
110
123
 
@@ -128,7 +141,7 @@ Levels 2 and 3 agree more often than they collide. The bans on "No es X, es Y" a
128
141
  | Felipe opens with questions ("¿Son necesarios? ¿Hasta qué punto?", "¿gastado o invertido?") vs. **no rhetorical questions** | The ban wins. Keep his reframing move but state the tension declaratively: *"Pocas veces nos preguntamos si ese refactor se paga solo."* |
129
142
  | His "En Orbitant…" openers vs. the **"en Orbitant + verb" ban** | The ban wins. Use the trailing clause form from `SKILL.md`. |
130
143
  | Phrases like "No son eslóganes… son la columna vertebral" vs. **"No es X, es Y"** and **foundation metaphors** | The bans win. State the affirmative claim directly. |
131
- | His short principle-like lines vs. the **pseudo-profound closer** ban | Allowed at most once per article, only if the line is a decision rule the reader can apply ("Mide el coste de cada capacidad siguiente, no el de la primera"). It may stand as the final sentence when it carries a real instruction (see the closing row below). An aphorism with no instruction in it stays banned anywhere in the piece. |
144
+ | His short principle-like lines vs. the **pseudo-profound closer** ban | Allowed at most once per article, only if the line is a decision rule the reader can apply ("Mide cuánto cuesta la siguiente capacidad antes de celebrar la primera"). It may stand as the final sentence when it carries a real instruction (see the closing row below). An aphorism with no instruction in it stays banned anywhere in the piece. |
132
145
  | **Em dash** permitted as a two-sided inciso in `tone/SKILL.md` vs. Felipe's rule, **no em dashes, ever** (section 7.1) | Felipe's rule wins on anything he signs. The Orbitant rule permits the inciso and never requires it, so dropping it satisfies both. Use a comma, a colon, a semicolon, parentheses or a full stop. |
133
146
  | **Bold in every paragraph** (`SKILL.md`) vs. Felipe's rule, **bold sparingly, 1 or 2 moments per section** (section 7.1) | The house rule wins, **on the Orbitant blog only**. Bolding every paragraph is a scannability requirement of the publication surface rather than a voice choice. On Felipe's own channels (LinkedIn, newsletter, essays) his sparing-bold rule governs and this profile does not load at all. |
134
147
  | **900-word floor** and 300 words per H2 vs. Felipe's editing rule, **cut 20 to 30 per cent from every draft** (section 7.1) | Both apply, in this order: write, cut 20 to 30 per cent, then measure. If the cut draft lands under 900 words the material is thin, so add a second use case, another quantified trade-off, or the context where the decision would fail. Padding to reach the floor is banned by `SKILL.md` itself. |
@@ -192,6 +205,7 @@ The register is calm and measured, and that leaves more room than it sounds like
192
205
 
193
206
  Run this after the anti-slop pass in `SKILL.md`:
194
207
 
208
+ 0. Did the input carry Felipe's position, a business figure and whose decision it was (section 2b)? If not, were the questions asked in the request thread and answered before drafting? Any gap the requester could not fill must appear inline as `[PENDIENTE FELIPE: …]`.
195
209
  1. Can a non-technical CEO follow every H2 and say what decision it supports?
196
210
  2. Does each H2 contain no more than two technical specifics, and is each one translated into a business consequence?
197
211
  3. Is there at least one quantified trade-off (cost, time, value, risk) the reader can reason with?