@orbitant/brain-marketing 1.5.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.
@@ -0,0 +1,218 @@
1
+ ---
2
+ name: orbitant-tone
3
+ description: |
4
+ Voice and tone reference for Orbitant blog content. Defines what Orbitant writing
5
+ sounds like, what it values, and what it avoids — with concrete examples.
6
+
7
+ Activate when user asks about Orbitant voice, tone, writing style, brand voice,
8
+ or editorial guidelines. Also trigger when reviewing blog content for consistency,
9
+ checking if text "sounds like Orbitant", or when creating/editing marketing content
10
+ — even if they don't explicitly mention tone or voice.
11
+ version: "1.1.0"
12
+ license: MIT
13
+ metadata:
14
+ author: orbitant
15
+ tags: marketing, blog, tone, voice, editorial
16
+ ---
17
+
18
+ # Orbitant Tone of Voice
19
+
20
+ This document defines how Orbitant writes. It is a reference for anyone creating or reviewing blog content — whether you are a human contributor or the content generation agent.
21
+
22
+ Orbitant's writing reflects how the team actually thinks and works: with technical rigour, intellectual honesty, and a clear connection to real-world impact. We do not write to impress. We write to be useful.
23
+
24
+ ---
25
+
26
+ ## Core principles
27
+
28
+ ### 1. First person, always
29
+ Write from your own experience. Use "I" when sharing something you lived, decided, or learned. Use "we" when speaking as Orbitant as a company. Never write in the third person about your own work or decisions — it creates distance and makes the content feel generic.
30
+
31
+ > ✅ **Así sí**
32
+ > Cuando empezamos a migrar el sistema de autenticación, lo primero que hicimos fue mapear todos los puntos de entrada. No porque lo diga ninguna guía, sino porque habíamos quemado semanas en una migración anterior por saltarnos ese paso.
33
+
34
+ <!-- -->
35
+
36
+ > ❌ **Así no**
37
+ > Las empresas que afrontan migraciones de sistemas de autenticación deben considerar mapear todos los puntos de entrada como primer paso del proceso.
38
+
39
+ ---
40
+
41
+ ### 1b. Multi-voice content: Slack threads, KS sessions, and group conversations
42
+
43
+ Many Orbitant articles originate from group conversations — a Slack thread that sparked a debate, a KS session where several engineers shared their take. These are multi-voice inputs that need a single editorial voice.
44
+
45
+ **The rule**: one article, one signer, first person singular.
46
+
47
+ The signer is the person who initiated the conversation or the most senior participant. Everyone else's contribution lives in the article as prose attribution — not as a series of isolated quotes.
48
+
49
+ The prose pattern is: context sentence → attribution phrase (name + functional role) → the person's actual point, paraphrased or quoted depending on whether the phrasing itself is what matters.
50
+
51
+ > ✅ **Así sí**
52
+ > Kevin llevaba semanas midiendo el consumo de tokens entre ambos enfoques y sus números apuntaban en la misma dirección: con arquitectura hexagonal, el agente necesitaba entre tres y cinco veces más contexto para completar el mismo cambio.
53
+
54
+ <!-- -->
55
+
56
+ > ❌ **Así no**
57
+ > Kevin dijo: "Con arquitectura hexagonal, el agente necesita mucho más contexto."
58
+
59
+ The prose version gives context, stakes, and continuity. The quote version is a telegram. The first reads like an article; the second reads like a transcript.
60
+
61
+ **Pull quotes**: After integrating a contribution into prose, you may extract one memorable phrase as a visual pull quote — a blockquote that echoes what the prose already said. This is visual decoration, not content delivery. The content lives in the prose. Pull quotes lose their effect if overused — use them sparingly and only for phrases that are genuinely worth emphasising.
62
+
63
+ **Attribution format**: Identify participants by name and functional role. Examples: software engineer, software architect, DevOps engineer, engineering manager, QA engineer. Do not use seniority levels (Senior, Junior, Lead) as the identifier.
64
+
65
+ ---
66
+
67
+ ### 2. Real examples over abstract theory
68
+ Every claim should be grounded in something concrete: a project, a decision, a failure, a result. If you cannot think of a real example, that is a signal that the section needs more thought — not more words.
69
+
70
+ Theory is only useful when it explains a real situation. Lead with the example, then explain the principle behind it.
71
+
72
+ > ✅ **Así sí**
73
+ > Teníamos un pipeline que tardaba 22 minutos en completarse. Después de perfilar cada paso, encontramos que el 60% del tiempo lo consumía un único test de integración que se conectaba a una base de datos real. Lo reemplazamos por un mock y bajamos a 8 minutos.
74
+
75
+ <!-- -->
76
+
77
+ > ❌ **Así no**
78
+ > Optimizar los tiempos de ejecución de los pipelines de CI/CD es fundamental para mejorar la productividad de los equipos de desarrollo y reducir el time-to-market.
79
+
80
+ ---
81
+
82
+ ### 3. Explain the why behind technical decisions
83
+ Do not just describe what you did. Explain why you chose that approach over the alternatives, what you ruled out and why, and what trade-offs you accepted. This is what makes technical content genuinely useful — and what distinguishes Orbitant's voice from generic documentation.
84
+
85
+ > ✅ **Así sí**
86
+ > Elegimos SQLite para el almacenamiento local por tres razones: no necesitábamos un servidor separado, el volumen de datos era predecible y pequeño, y queríamos que cualquier desarrollador pudiera levantar el proyecto sin configuración adicional. Valoramos PostgreSQL, pero añadía complejidad operativa que no estábamos dispuestos a asumir en ese contexto.
87
+
88
+ <!-- -->
89
+
90
+ > ❌ **Así no**
91
+ > Para el almacenamiento local se utilizó SQLite, una solución ligera y eficiente ampliamente utilizada en el sector.
92
+
93
+ ---
94
+
95
+ ### 4. Practical over theoretical
96
+ Prioritise content that the reader can apply. Code snippets, configuration examples, screen recordings, annotated screenshots — these are worth more than three paragraphs of explanation. When you can show something, show it.
97
+
98
+ The ideal structure for a technical section is:
99
+ 1. State the problem or decision
100
+ 2. Show the solution (code, screenshot, clip)
101
+ 3. Explain what matters and why
102
+
103
+ > ✅ **Así sí**
104
+ > Para evitar que las variables de entorno se filtren en los logs, añadimos un middleware de sanitización antes del logger:
105
+ >
106
+ > ```typescript
107
+ > app.use(sanitizeEnvMiddleware());
108
+ > app.use(logger());
109
+ > ```
110
+ >
111
+ > El orden importa: si inviertes las dos líneas, el logger captura los datos antes de que se saniticen.
112
+
113
+ <!-- -->
114
+
115
+ > ❌ **Así no**
116
+ > Es importante gestionar correctamente las variables de entorno para garantizar la seguridad de las aplicaciones. Existen diversas estrategias para evitar que información sensible quede expuesta en los registros del sistema.
117
+
118
+ ---
119
+
120
+ ### 5. Honest about trade-offs and mistakes
121
+ Good technical writing acknowledges what did not work, what could be better, and what limitations exist. Readers trust content more when it is honest about complexity. Do not oversell solutions. Do not hide the hard parts.
122
+
123
+ > ✅ **Así sí**
124
+ > Este enfoque funciona bien cuando el equipo es pequeño y los dominios están bien delimitados. Si tienes más de cuatro o cinco equipos trabajando en paralelo, empieza a aparecer fricción en los límites — y probablemente necesites una estrategia de ownership más explícita.
125
+
126
+ <!-- -->
127
+
128
+ > ❌ **Así no**
129
+ > Esta solución es escalable y puede adaptarse a equipos de cualquier tamaño, garantizando la eficiencia operativa en todo momento.
130
+
131
+ ---
132
+
133
+ ## What Orbitant writing is not
134
+
135
+ - **Not a brochure**: We do not write to sell Orbitant. We write to share what we know. If the content is genuinely useful, it speaks for itself.
136
+ - **Not neutral**: We have opinions. We explain why we prefer certain approaches, tools, or patterns. We do not hedge every sentence to avoid taking a position.
137
+ - **Not formal**: We do not use "usted", corporate passive voice, or expressions like "cabe destacar que", "en el contexto actual", "es de vital importancia". We write like we talk — clearly and directly.
138
+ - **Not theoretical**: We do not write about how things should work in an ideal world. We write about how they work in practice, with real constraints and real consequences.
139
+
140
+ ---
141
+
142
+ ## Words and patterns to avoid
143
+
144
+ These specific words and patterns degrade Orbitant's voice when they appear in published content. Treat them as red flags in any review.
145
+
146
+ | Pattern | Problem | Instead |
147
+ |---|---|---|
148
+ | "con honestidad" | Hollow filler — implies other parts are dishonest. Acceptable at most once per article; flag if repeated. | Say the thing directly |
149
+ | "provocador/a" (for ideas or arguments) | Sounds like business magazine copy, not a technical colleague | Describe what specifically challenges or unsettles: "la pregunta incómoda es…" |
150
+ | "en el mundo actual" | Journalist cliché, adds no information | Delete, or replace with the specific context |
151
+ | "es crucial / fundamental" | Tells the reader what to think without showing why | Show the consequence instead |
152
+ | "sin duda" | Hollow intensifier | Delete |
153
+ | "hoy en día más que nunca" | Timeless cliché | Delete |
154
+ | "el why" (when a Spanish equivalent exists) | Avoidable anglicism | "el porqué" |
155
+ | "el approach" | Avoidable anglicism | "el enfoque" |
156
+ | "el timing" (in the sense of "moment") | Avoidable anglicism | "el momento" |
157
+ | "la parte que más me interesa" | AI-sounding filler — no real person writes like this | State the point directly |
158
+ | "me parece especialmente relevante destacar" | AI hedging + filler preamble | Delete the preamble; state the point |
159
+ | "no podemos dejar de mencionar" | Filler | State the point directly |
160
+
161
+ Technical English terms with no consolidated Spanish equivalent (*framework*, *pipeline*, *deployment*, *token*, *clean code*, *contract testing*) are kept in English and in italics. This list targets words that have a natural Spanish equivalent but get replaced by English out of habit, not necessity.
162
+
163
+ ---
164
+
165
+ ## Style note: em-dash usage (—)
166
+
167
+ The em dash in Spanish marks **two-sided personal asides** — an inciso that opens and closes with a dash. This is its only correct use in Orbitant writing.
168
+
169
+ > ✅ **Así sí**
170
+ > Esta decisión —y es algo que Kevin midió durante semanas— tiene un coste real en tokens y latencia.
171
+
172
+ <!-- -->
173
+
174
+ > ❌ **Así no (calco del inglés)**
175
+ > El resultado es claro — la arquitectura añade fricción innecesaria.
176
+ > Hay tres motivos — contexto, latencia, coste.
177
+
178
+ For continuations, use a colon or a full stop. For enumerations, use a list or "x, y, y z" in prose. A single-sided em dash is an anglicism — it does not exist in Spanish punctuation. Flag it in any review.
179
+
180
+ ---
181
+
182
+ ## On mentioning Orbitant
183
+
184
+ Orbitant can and should appear in blog content — but as context, not as the subject. The subject is always the technical problem, the decision, or the learning.
185
+
186
+ > ✅ **Así sí**
187
+ > En Orbitant llevamos varios proyectos usando esta arquitectura en producción, y el patrón que mejor nos ha funcionado es...
188
+
189
+ <!-- -->
190
+
191
+ > ❌ **Así no**
192
+ > En Orbitant, empresa líder en consultoría de software de nueva generación, hemos desarrollado una metodología propia que...
193
+
194
+ ---
195
+
196
+ ## Asset guidelines
197
+
198
+ Technical assets are a priority, not an optional extra. When writing about a process, a configuration, or a result, always consider whether a visual or code example would communicate it better than prose.
199
+
200
+ | Situation | Preferred asset |
201
+ |---|---|
202
+ | Setup or configuration steps | Code snippet |
203
+ | UI workflow or interaction | Annotated screenshot or short screen clip |
204
+ | Before/after comparison | Side-by-side code blocks |
205
+ | System output or result | Screenshot or code output block |
206
+ | Process with multiple steps | Numbered list + clip if the steps involve UI |
207
+ | Architecture, flows, or system relationships | Excalidraw diagram |
208
+ | Decision trees or comparisons between approaches | Excalidraw diagram |
209
+
210
+ Orbitant accounts have Excalidraw connected to Claude, which makes it straightforward to generate and iterate on diagrams directly. Prefer Excalidraw over static images for anything that represents a system, a flow, or a relationship between components — diagrams created this way are editable and can be updated as the content evolves.
211
+
212
+ If you cannot include the asset at the time of writing, leave a note in the draft using the following format so it can be added later:
213
+
214
+ ```markdown
215
+ > [!NOTE FOR AUTHOR]
216
+ > Descripción del asset que falta aquí y por qué aporta valor.
217
+ > Tipo de asset sugerido: código | captura | clip | diagrama Excalidraw
218
+ ```
@@ -0,0 +1,210 @@
1
+ ---
2
+ name: orbitant-yt-description
3
+ description: |
4
+ YouTube video description generator for Orbitant Knowledge Sharing (KS) sessions.
5
+ Takes a session transcript (.vtt or plain text) and produces a bilingual, SEO-optimised
6
+ YouTube description — Spanish first, then English — built around a positionable keyword.
7
+ The description is structured to rank in YouTube and Google search: keyword in the first
8
+ line, natural repetition in the overview and takeaways, and hashtags chosen for search
9
+ intent, not just labels. Use this skill whenever someone needs to write or generate a
10
+ YouTube description for a KS session or any Orbitant video — even if they just say
11
+ "escribe la descripción del vídeo", "I need the YouTube copy", or "help me upload this
12
+ session". Also trigger when given a transcript and asked to prepare anything for a
13
+ video upload.
14
+ license: MIT
15
+ version: "1.0.0"
16
+ metadata:
17
+ author: orbitant
18
+ tags: marketing, youtube, seo, video, content, ks-sessions, description, bilingual, keywords
19
+ ---
20
+
21
+ ## Overview
22
+
23
+ You are writing the YouTube description for an Orbitant Knowledge Sharing session. The description does two things at once: it convinces a viewer who lands on the page to watch, and it tells YouTube and Google what the video is about so it surfaces in relevant searches.
24
+
25
+ **Positioning is the primary goal.** A technically accurate description that nobody finds is worthless. Every structural decision — the first sentence, the takeaways, the hashtags — must serve the keyword strategy.
26
+
27
+ Read the transcript in full before writing anything. Do not invent content not present in the input.
28
+
29
+ ---
30
+
31
+ ## Step 1 — Keyword research (do this first)
32
+
33
+ Before writing a single line of description, identify the keyword strategy for the video.
34
+
35
+ ### Primary keyword (one per language version)
36
+
37
+ The primary keyword is the search phrase a potential viewer would type into YouTube or Google to find this content. It must:
38
+ - Reflect what the session **actually teaches**, not just what it's about
39
+ - Be specific enough to have real search intent (someone looking to solve a problem or learn a skill)
40
+ - Be phrased as a user would type it — not how a speaker would title their talk
41
+
42
+ **Spanish primary keyword examples for KS sessions:**
43
+ - `cómo usar Claude para automatizar contenido`
44
+ - `crear CLI con IA desde cero`
45
+ - `automatizar changelogs con GitHub Actions`
46
+ - `qué es el patrón decorator en programación`
47
+
48
+ **English primary keyword examples:**
49
+ - `how to build Claude skills for your team`
50
+ - `automate content creation with AI`
51
+ - `CLI tools with AI step by step`
52
+
53
+ If the user provides a keyword, use it. If not, derive it from the transcript topic — ask yourself: *what would the ideal viewer search for before finding this video?*
54
+
55
+ ### Secondary keywords (2–4 per language version)
56
+
57
+ Supporting terms that complement the primary keyword. These appear naturally in the takeaways and overview — do not force them. Examples: tool names (Claude, n8n, Astro), technique names (RAG, streaming, decorator pattern), broader category terms (IA generativa, automatización, DevTools).
58
+
59
+ ---
60
+
61
+ ## Step 2 — Language order
62
+
63
+ - If the session was conducted **primarily in Spanish**: Spanish version first, English version second.
64
+ - If the session was conducted **primarily in English**: English version first, Spanish version second.
65
+ - Both versions are always present. The English is an adaptation, not a literal translation — keyword choice and phrasing must feel natural for an English-speaking audience searching on YouTube.
66
+
67
+ **Timestamps are not part of this output.** They are added separately after publication.
68
+
69
+ ---
70
+
71
+ ## Step 3 — Write the description
72
+
73
+ Apply this structure to each language version.
74
+
75
+ ### 1. Opening line (critical for SEO)
76
+
77
+ The **first 150 characters** of the description are what YouTube shows in search results before "Show more". This is prime real estate.
78
+
79
+ The opening line must:
80
+ - Contain the **primary keyword** — ideally in the first 10 words
81
+ - State clearly what the viewer will learn or be able to do
82
+ - Stand alone as a compelling reason to click
83
+
84
+ > Correct: `Aprende a crear Skills de Claude para automatizar la generación de contenido desde transcripts de sesiones.`
85
+ > Incorrect: `Felipe Polo nos habla sobre su experiencia con la IA en el equipo de Orbitant.`
86
+
87
+ ### 2. Speaker intro
88
+
89
+ After the opening line, introduce the speaker(s) with 🎙️.
90
+
91
+ **Single speaker:**
92
+ > `🎙️ [Full Name], [Title] en [Company], comparte [one-sentence description of what they teach].`
93
+
94
+ **Multiple speakers (up to 3):** One line per speaker, each with their name, title, and company. If all speakers share the same company, mention it only once on the last line.
95
+
96
+ If there are more than 3 speakers, group them: list the two or three most prominent by name and add "junto a [N] expertos más" or "and [N] more experts".
97
+
98
+ Keep it factual. Avoid superlatives.
99
+
100
+ ### 3. Overview (1–2 short paragraphs)
101
+
102
+ Describe what the viewer will learn. Write for the person who found this through search — they have a specific problem or curiosity and need to know in 3 sentences whether this video answers it.
103
+
104
+ The **primary keyword** must appear at least once more here, naturally. Secondary keywords should appear where relevant — not forced, not repeated mechanically.
105
+
106
+ Avoid: "una sesión muy interesante", "a fascinating discussion", "todo lo que necesitas saber sobre".
107
+
108
+ ### 4. Key takeaways list
109
+
110
+ Open with:
111
+ - Spanish: `ℹ️ En esta sesión descubrirás:`
112
+ - English: `ℹ️ In this session you'll discover:`
113
+
114
+ Follow with 4–7 bullet points, each starting with `→`. Each point should:
115
+ - Describe something concrete and actionable
116
+ - Reference real tools, techniques, or decisions from the session
117
+ - Include secondary keywords naturally where they fit
118
+
119
+ > Correct: `→ Cómo estructurar un pipeline de Claude para generar borradores de blog posts desde transcripts`
120
+ > Incorrect: `→ Técnicas de productividad con IA`
121
+
122
+ ### 5. Resources section
123
+
124
+ Only include if there are actual resources to list. Open with:
125
+ - Spanish: `🔗 Recursos mencionados en la sesión:`
126
+ - English: `🔗 Resources mentioned in the session:`
127
+
128
+ List each resource on its own line. If a URL isn't available yet, use a placeholder: `Blog post: [link próximamente]`.
129
+
130
+ ---
131
+
132
+ ## Step 4 — Hashtags
133
+
134
+ Add 8–12 hashtags after the English version. Always include `#Orbitant`.
135
+
136
+ Hashtags in YouTube function as category signals, not just labels. Choose them for **search intent**:
137
+ - Always include `#Orbitant` — no exceptions
138
+ - Use tags people actually search for on YouTube, not internal jargon
139
+ - Include the core topic tags (e.g., `#Claude`, `#InteligenciaArtificial`, `#AI`, `#Automatización`)
140
+ - Include tool names if they are searchable (`#n8n`, `#Astro`, `#GitHub`)
141
+ - Include broader category tags to reach adjacent audiences (`#DevTools`, `#ContentMarketing`, `#SoftwareEngineering`)
142
+ - Avoid tags so broad they're meaningless (`#Technology`, `#Video`, `#Learn`)
143
+ - Do NOT replace `#Orbitant` with a compound variant like `#OrbitantKS` or `#OrbitantSessions` — those are additional tags, not substitutes
144
+
145
+ ---
146
+
147
+ ## Separator
148
+
149
+ Between the Spanish and English sections, and after the hashtags, use this exact separator line:
150
+
151
+ ```
152
+ ________________________________________________
153
+ ```
154
+
155
+ ---
156
+
157
+ ## Output format
158
+
159
+ Deliver as **plain text**, ready to paste directly into YouTube. YouTube does not render markdown — no `**bold**`, no `##` headers, no bullet `-` syntax.
160
+
161
+ ```
162
+ [Primary keyword — first sentence of Spanish version]
163
+
164
+ 🎙️ [Speaker intro — Spanish]
165
+
166
+ [Overview — Spanish, primary + secondary keywords woven in naturally]
167
+
168
+ ℹ️ En esta sesión descubrirás:
169
+ → [specific takeaway with secondary keyword]
170
+ → [specific takeaway]
171
+ → [specific takeaway]
172
+ → [specific takeaway]
173
+
174
+ 🔗 Recursos mencionados en la sesión:
175
+ [resource 1]
176
+ [resource 2]
177
+
178
+ ________________________________________________
179
+
180
+ [Primary keyword — first sentence of English version]
181
+
182
+ 🎙️ [Speaker intro — English]
183
+
184
+ [Overview — English, adapted for English search intent]
185
+
186
+ ℹ️ In this session you'll discover:
187
+ → [specific takeaway]
188
+ → [specific takeaway]
189
+ → [specific takeaway]
190
+ → [specific takeaway]
191
+
192
+ 🔗 Resources mentioned in the session:
193
+ [resource 1]
194
+ [resource 2]
195
+
196
+ #tag1 #tag2 #Orbitant
197
+
198
+ ________________________________________________
199
+ ```
200
+
201
+ ---
202
+
203
+ ## What to avoid
204
+
205
+ - **No keyword in the opening line**: if the first sentence doesn't contain the primary keyword, the description will not rank.
206
+ - **Vague takeaways**: "aprenderás sobre IA" tells nobody anything. Be specific about tools, techniques, and outcomes.
207
+ - **Literal translation**: the English keyword is a new keyword research exercise, not a translation of the Spanish one.
208
+ - **Descriptive hashtags**: `#KnowledgeSharing` or `#OrbitantSession` have zero search volume. Use tags people actually search.
209
+ - **Invented content**: do not add resources, tools, or claims not present in the transcript.
210
+ - **Timestamps**: not part of this output.