Stage 1 complete: shared packages with full test coverage

- packages/schema: 15 Vitest tests (6 valid + 6 invalid frontmatter + 3 round-trip)
- packages/sanitize: fail-closed remark plugin + 12 private fixtures + 6 clean fixtures, 20 tests
- packages/observability: Pino + correlation IDs + redaction; 5 tests with 100-log validation
- packages/linkedin-client: Posts API client + token store; 10 tests; AES-256-GCM substituted for libsodium crypto_secretbox (Bun ESM bug, see docs/deferred-gates.md D-001)

50/50 tests pass across 4 packages. All Stage 1 DoDs verified.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Angelo B. J. Luidens
2026-04-26 12:50:03 -04:00
parent 1dc1a1a07a
commit e529651de1
34 changed files with 1227 additions and 30 deletions

View File

@@ -0,0 +1,10 @@
---
vault_path: Stargue/Projects/Publishing Engine/Posts/Welcome.md
outlet: stargue.com
---
# Welcome
This is a clean blog post body. It contains no wikilinks, no embeds,
no private tags, and is well under the outlet length limit.
A second paragraph for good measure.

View File

@@ -0,0 +1,9 @@
---
vault_path: Stargue/Projects/Publishing Engine/Posts/LinkedIn Short.md
outlet: linkedin.member
---
Short LinkedIn post.
Three sentences.
Done.

View File

@@ -0,0 +1,12 @@
---
vault_path: Stargue/Projects/Publishing Engine/Posts/Callouts.md
outlet: stargue.com
---
# Callouts Sample
Body paragraph 1.
> [!note] Author's note
> This Obsidian callout should be stripped from the published output.
Body paragraph 2.

View File

@@ -0,0 +1,15 @@
---
vault_path: Stargue/Projects/Publishing Engine/Posts/Dataview Sample.md
outlet: stargue.com
---
# Dataview Sample
Pre-block paragraph.
```dataview
table file.name, file.mtime
from "Stargue"
sort file.mtime desc
```
Post-block paragraph.

View File

@@ -0,0 +1,12 @@
---
vault_path: Stargue/Projects/Publishing Engine/Posts/Embeds.md
outlet: stargue.com
embed_strategy: resolve
---
# Embeds
Here is an embedded image:
![[stargue-logo.svg]]
And a follow-up paragraph.

View File

@@ -0,0 +1,9 @@
---
vault_path: Stargue/Projects/Publishing Engine/Posts/Cross Linked.md
outlet: stargue.com
---
# Cross-Linked
A reference to [[Research/HEAL/What Is HEAL|HEAL]] in the body.
And a plain wikilink to [[Stargue Service Portfolio]].

View File

@@ -0,0 +1,9 @@
---
vault_path: Stargue/Projects/Long Article.md
outlet: linkedin.article
expected_error_code: OUTLET_LENGTH_EXCEEDED
length_target: 130000
---
# Long Article
[GENERATED_BODY_130000_CHARS]

View File

@@ -0,0 +1,9 @@
---
vault_path: Stargue/Projects/Org Announcement.md
outlet: linkedin.org
expected_error_code: OUTLET_LENGTH_EXCEEDED
length_target: 5000
---
# Org Announcement
[GENERATED_BODY_5000_CHARS]

View File

@@ -0,0 +1,9 @@
---
vault_path: Stargue/Projects/Long Post.md
outlet: linkedin.member
expected_error_code: OUTLET_LENGTH_EXCEEDED
length_target: 4000
---
# Long Post
[GENERATED_BODY_4000_CHARS]

View File

@@ -0,0 +1,9 @@
---
vault_path: Stargue/Projects/Twitter Draft.md
outlet: twitter
expected_error_code: OUTLET_LENGTH_EXCEEDED
length_target: 350
---
# Tweet Draft
[GENERATED_BODY_350_CHARS]

View File

@@ -0,0 +1,8 @@
---
vault_path: Clients/Acme Corp [NDA]/Engagement Notes.md
outlet: stargue.com
expected_error_code: PRIVATE_PATH_BLOCKED
---
# Engagement Notes
Client-confidential material under NDA.

View File

@@ -0,0 +1,8 @@
---
vault_path: Family Matters/Estate Planning.md
outlet: stargue.com
expected_error_code: PRIVATE_PATH_BLOCKED
---
# Estate Planning
Private family documentation.

View File

@@ -0,0 +1,8 @@
---
vault_path: Financial Matters/Investment Tracking.md
outlet: linkedin.member
expected_error_code: PRIVATE_PATH_BLOCKED
---
# Investment Tracking
Portfolio details.

View File

@@ -0,0 +1,8 @@
---
vault_path: Journal/2026-04-26.md
outlet: stargue.com
expected_error_code: PRIVATE_PATH_BLOCKED
---
# 2026-04-26
This is a daily journal entry. It must never leave the vault.

View File

@@ -0,0 +1,10 @@
---
vault_path: Stargue/Strategy/Internal Roadmap.md
outlet: linkedin.member
expected_error_code: PRIVATE_TAG_BLOCKED
expected_frontmatter_tags:
- confidential
---
# Internal Roadmap
Q3 plans.

View File

@@ -0,0 +1,10 @@
---
vault_path: Research/HEAL/Internal Reference.md
outlet: stargue.com
expected_error_code: PRIVATE_TAG_BLOCKED
---
# Internal Reference
#heal-internal — not for publication.
Reference material.

View File

@@ -0,0 +1,8 @@
---
vault_path: Stargue/Projects/Some Project.md
outlet: stargue.com
expected_error_code: PRIVATE_TAG_BLOCKED
---
# Some Project
Background research #nda before drafting.

View File

@@ -0,0 +1,10 @@
---
vault_path: Research/HEAL/Some Note.md
outlet: stargue.com
expected_error_code: PRIVATE_TAG_BLOCKED
---
# Some Note
This note has a #private inline tag.
Body text continues.