Skip to content

docs: sync README + docs/ with current code#361

Open
nolanmak wants to merge 1 commit into
mainfrom
docs/accuracy-sweep
Open

docs: sync README + docs/ with current code#361
nolanmak wants to merge 1 commit into
mainfrom
docs/accuracy-sweep

Conversation

@nolanmak

@nolanmak nolanmak commented Jun 25, 2026

Copy link
Copy Markdown
Owner

What

Docs-only sweep that re-syncs README.md + docs/ + the setup-skill + sidecar READMEs + .env.example with the current code. Produced from a per-doc accuracy audit (every claim cross-checked against the source, each finding independently verified). 23 files, docs only — no source code changed.

Why

The docs had drifted hard from the now-public, macOS-capable, SocialAPI-complete codebase. The two most-read docs were materially wrong:

Doc Was Now
README "Private repository… do not make it public" repo is public → open-source notice
README "~28 crates" 35 (verified)
README "Linux Secret Service (gnome-keyring), Linux-only, no macOS" OS keychain via keyring; macOS Keychain (apple-native); cross-platform installers
README SocialAPI send/cross-post/CLI/OAuth "forthcoming (#241/#244/#245/#247)" all shipped → present tense
README "systemd user units (not pm2)" + nonexistent committed units installer-generated (systemd on Linux, launchd on macOS); pm2 also available
PUBLISH.md "history scrubbed, all commits noreply" not yet scrubbed; tracked in #358
REMOTION.md "Phases 1+ are roadmap, not code" content-adapter / governor Post wiring / IG·X·LinkedIn channels shipped; only renderer→adapter wiring + video publish remain
ig-x-dm-channels.md official-API-only decision SUPERSEDED banner (reversed in code)
MULTI-TENANT.md dashboard honors AUGMENTAGENT_DB flags the bug (#360) — dashboard ignores it

Plus smaller corrections across VAULT, SECURITY, LINKEDIN, the protocol docs, the augmentagent-setup skill (channel count 15→16, OAuth provider list, reddit URL, timer name, doctor/troubleshooting field names), the sidecar READMEs (op counts, Wegmans, dead PM2 line, links pointing at the private archived repo), and .env.example (drop dead vars, add the live Reddit/Wegmans/VAPID/webhook-secret vars as commented placeholders).

Notes

Refs #305, #357, #358, #359, #360.

Summary by CodeRabbit

  • Documentation
    • Clarified setup and configuration guidance across multiple docs, including environment handling, keychain-based sign-in, and channel/account setup.
    • Updated process and deployment notes for installers, auto-updates, systemd/launchd, and sidecar services.
    • Expanded channel-specific docs for Discord, WhatsApp, Instagram, Reddit, LinkedIn, grocery, and SocialAPI flows.
    • Added clearer status, troubleshooting, and migration guidance, including known issues and current rollout limitations.

The docs had drifted from the now-public, macOS-capable, SocialAPI-complete
codebase. Corrects ~75 verified inaccuracies across 23 files (docs only — no
source changes):

- README: drop the stale "Private repository / do not make it public" notice
  (the repo is public); ~28 -> 35 crates; keyring is the macOS Keychain
  (apple-native), not Linux Secret Service, and the deployment is not
  Linux-only; SocialAPI send / cross-post / CLI / proxied OAuth are shipped,
  not "forthcoming"; process-management units are installer-generated (systemd
  on Linux, launchd on macOS) with pm2 also available; fix the grocery PM2 claim.
- PUBLISH.md: stop claiming git history was scrubbed to the GitHub noreply — it
  wasn't (gmail still in history + live git-config regression). Tracked in #358.
- REMOTION.md: phases 1/2/5 have shipped (content-adapter, governor Post wiring,
  IG/X/LinkedIn channels); keep only the genuinely-unbuilt renderer->adapter
  wiring + video publish as future work.
- ig-x-dm-channels.md: mark SUPERSEDED — the official-API-only decision was
  reversed in code (unofficial cookie channels with DM send shipped).
- MULTI-TENANT.md: flag the dashboard AUGMENTAGENT_DB bug (#360).
- VAULT / SECURITY / LINKEDIN / protocol docs / setup-skill / sidecar READMEs /
  .env.example: misc command, env-var, status, path, and link corrections.

Refs #305, #357, #358, #359, #360.
@coderabbitai

coderabbitai Bot commented Jun 25, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

The PR updates configuration templates and documentation across setup, sidecar, and protocol references. It removes stale approval and credential settings, adds Wegmans and SocialAPI guidance, revises process and publish notes, and aligns setup and troubleshooting docs with current channel behavior.

Changes

Runtime setup and account docs

Layer / File(s) Summary
Environment template updates
*.env.example
Removes the Discord approval timeout and important-senders setting, rewrites Discord/dashboard/reddit/webhook guidance, adds Wegmans grocery placeholders, and notes the WhatsApp control chat is test-only.
Top-level setup guidance
README.md
Reframes the project as self-hosted for one operator, updates keychain and process-control docs, expands SocialAPI approval/setup flow details, and clarifies grocery run instructions.
LinkedIn setup docs
docs/LINKEDIN.md
Changes the cookie export filename, documents Keychain-backed login storage, and updates poll override behavior.

Deployment, security, and rollout docs

Layer / File(s) Summary
Auto-update behavior
docs/MIGRATION.md
States the updater cadence, pull target, rebuild triggers, and the added rust-toolchain.toml condition.
Public history and secrets
docs/PUBLISH.md, docs/SECURITY.md
Updates publish-history metadata state, identity/mailmap workflow, wiki ignore rules, secret-scanner patterns, and the public-repo checklist.
Tenant and vault docs
docs/MULTI-TENANT.md, docs/VAULT.md
Adds the tenant Drive isolation bug note and revises vault scope, Discord query scoping, and service override docs.
Remotion rollout status
docs/REMOTION.md
Adds phase status, timeout semantics, implementation state, and current publish-status notes across the rollout doc.

Protocol and sidecar docs

Layer / File(s) Summary
Deftform command mapping
docs/deft-protocol.md
Updates form discovery output, command-mapping direction notes, and field-map key references.
Instagram channel docs
docs/ig-x-dm-channels.md, docs/instagram-protocol.md
Marks the shipped IG/X channel narrative as superseded and notes that web_profile_info is documented but not implemented.
Browser, fetch, and wa-sidecar docs
sidecars/browser/README.md, sidecars/fetch/README.md, sidecars/wa-sidecar/README.md
Expands browser-sidecar operations and adjusts archived-repo and issue-reference wording in the sidecar docs.
Grocery sidecar docs
sidecars/grocery/README.md
Adds provider selection, scheduler socket ops, Wegmans env vars, and wrapper/systemd guidance.

AugmentAgent setup skill docs

Layer / File(s) Summary
Setup skill tables
skills/augmentagent-setup/SKILL.md
Adds socialapi to OAuth and doctor references, updates the Reddit start URL, revises the Instagram note, and rewrites .env write guidance.
Instagram and env-file guidance
skills/augmentagent-setup/channels/instagram.md, skills/augmentagent-setup/components/env-file.md
States that Instagram is not yet wired, .env is not edited directly, and gated channels may require dedicated subcommands.
Systemd, status, and troubleshooting
skills/augmentagent-setup/components/systemd-units.md, skills/augmentagent-setup/reference/status-schema.md, skills/augmentagent-setup/reference/troubleshooting.md
Adds manual unit-install steps, updates status --json channel fields, and revises troubleshooting plus the socialapi doctor entry.

Research note

Layer / File(s) Summary
Auto-learning loop note
docs/research/123-auto-learning-loop.md
Updates the note to say learn_pattern already exists and narrows the remaining gap to the tone_profile writer surface.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related issues

Possibly related PRs

  • nolanmak/MyAgentAssistant#29 — This PR extends the same setup/doctor and channel guidance that PR #29 introduced, including socialapi, Instagram, env-file, and troubleshooting updates.
  • nolanmak/MyAgentAssistant#296 — Both PRs revise the top-level self-hosted and secret-handling README framing.

Poem

I hopped through docs with quill in paw,
and found new routes in every law.
Sidecars hummed, configs shone bright,
the setup steps now read just right.
🐇✨ Carrots for all, and a tidy flight.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly reflects a docs-only sync of README and docs with the current codebase.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/accuracy-sweep
⚔️ Resolve merge conflicts
  • Resolve merge conflict in branch docs/accuracy-sweep

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 6

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (2)
sidecars/browser/README.md (1)

6-19: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Add a language tag to the fenced block.

Line 13 triggers the markdownlint fenced-code warning; text would be enough here.

♻️ Proposed fix
-```
+```text
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@sidecars/browser/README.md` around lines 6 - 19, The fenced layout block in
sidecars/browser/README.md is missing a language tag and triggers markdownlint;
update the existing code fence in the Layout section to use a text language tag
so the block is explicitly marked as plain text.

Source: Linters/SAST tools

skills/augmentagent-setup/channels/instagram.md (1)

74-75: 🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win

Route Instagram gate flips through env set, not .env.

This file now tells users to edit .env directly, but the setup docs and CLI contract make sqlite config the source of truth and .env only a fallback. Use augmentagent env set INSTAGRAM_REAL_ACCOUNT_ENABLED true/false, then restart, so the daemon actually sees the change.

🛠 Suggested fix
-   Then tell the user to flip `INSTAGRAM_REAL_ACCOUNT_ENABLED=true` in `.env` and restart again.
+   Then tell the user to run `augmentagent env set INSTAGRAM_REAL_ACCOUNT_ENABLED true` and restart again.
-Also tell the user to flip `INSTAGRAM_REAL_ACCOUNT_ENABLED=false` in `.env`.
+Also tell the user to run `augmentagent env set INSTAGRAM_REAL_ACCOUNT_ENABLED false`.

Also applies to: 112-114

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@skills/augmentagent-setup/channels/instagram.md` around lines 74 - 75, The
Instagram setup instructions are telling users to change
INSTAGRAM_REAL_ACCOUNT_ENABLED directly in .env, but the daemon should read this
via the env/config path instead. Update the guidance in the Instagram channel
doc to use augmentagent env set INSTAGRAM_REAL_ACCOUNT_ENABLED true/false and
then restart, and make the same correction anywhere else the same .env-based
flip is mentioned.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.env.example:
- Around line 36-58: The sample environment block is not machine-readable
because several active variable assignments include inline prose after the
equals sign, which can break dotenv parsing and linting. Move the explanatory
text onto separate comment lines and keep the actual assignments for
DASHBOARD_PORT, GITHUB_WEBHOOK_SECRET, and the other env vars comment-only or
value-only so the example remains a valid .env template.

In `@docs/MULTI-TENANT.md`:
- Around line 57-69: The tenant setup flow currently presents Connect Google
Drive as an available step even though it writes the tenant’s drive_accounts row
into the production database and breaks isolation. Update the Multi-Tenant docs
to remove this step from the active tenant setup path in the section describing
tenant onboarding, and mark it as unavailable/disabled until issue `#360` is
fixed; use the existing Connect Google Drive / drive_accounts / `#360` references
so readers understand it must not be followed yet.

In `@docs/PUBLISH.md`:
- Around line 57-66: The guidance in this section should not recommend
committing a root .mailmap that contains personal Gmail addresses, since that
would put PII back into tracked source. Update the instructions around the git
filter-repo/mailmap workflow to keep the mapping local and private, and
reference the existing scrub-rewrite steps in this document so contributors know
to perform the history rewrite without adding a tracked .mailmap file.

In `@docs/REMOTION.md`:
- Around line 173-195: The Phase 5 summary is too broad because it says the
channels “currently post text/image,” which conflicts with the Instagram
`Composer` bullet that already lists Reel/Story posting. Update the wording in
the Phase 5 section to focus on the missing renderer-produced mp4 wiring from
`MediaSpec` into the publish paths, using the existing platform surface
references (`posting.rs`, `Composer`, `CreateTweetClient`) to make clear the gap
is in video-publish integration rather than overall channel capability.

In `@skills/augmentagent-setup/channels/instagram.md`:
- Around line 45-47: The Instagram setup guide is self-contradictory because it
presents `augmentagent instagram login` as if it were runnable even though the
top-level command is not wired yet. Update the affected steps in the Instagram
channel doc to clearly mark the login action as unavailable/not yet implemented
and avoid instructing users to execute `augmentagent instagram login` until the
router/command actually exists. Refer to the `next_cmd` template and the Step 5
login instructions so they stay consistent with the “NOT YET WIRED” note.

In `@skills/augmentagent-setup/components/systemd-units.md`:
- Around line 61-65: The install snippet in the systemd-units docs uses an
unlabeled fence, which triggers markdownlint. Update the code block around the
shell commands in the install section to use a shell language fence so the
commands are properly highlighted and the docs build stays clean.

---

Outside diff comments:
In `@sidecars/browser/README.md`:
- Around line 6-19: The fenced layout block in sidecars/browser/README.md is
missing a language tag and triggers markdownlint; update the existing code fence
in the Layout section to use a text language tag so the block is explicitly
marked as plain text.

In `@skills/augmentagent-setup/channels/instagram.md`:
- Around line 74-75: The Instagram setup instructions are telling users to
change INSTAGRAM_REAL_ACCOUNT_ENABLED directly in .env, but the daemon should
read this via the env/config path instead. Update the guidance in the Instagram
channel doc to use augmentagent env set INSTAGRAM_REAL_ACCOUNT_ENABLED
true/false and then restart, and make the same correction anywhere else the same
.env-based flip is mentioned.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 9e654c61-5274-4a60-a748-8bd013e9b650

📥 Commits

Reviewing files that changed from the base of the PR and between 5779157 and e0cab96.

📒 Files selected for processing (23)
  • .env.example
  • README.md
  • docs/LINKEDIN.md
  • docs/MIGRATION.md
  • docs/MULTI-TENANT.md
  • docs/PUBLISH.md
  • docs/REMOTION.md
  • docs/SECURITY.md
  • docs/VAULT.md
  • docs/deft-protocol.md
  • docs/ig-x-dm-channels.md
  • docs/instagram-protocol.md
  • docs/research/123-auto-learning-loop.md
  • sidecars/browser/README.md
  • sidecars/fetch/README.md
  • sidecars/grocery/README.md
  • sidecars/wa-sidecar/README.md
  • skills/augmentagent-setup/SKILL.md
  • skills/augmentagent-setup/channels/instagram.md
  • skills/augmentagent-setup/components/env-file.md
  • skills/augmentagent-setup/components/systemd-units.md
  • skills/augmentagent-setup/reference/status-schema.md
  • skills/augmentagent-setup/reference/troubleshooting.md

Comment thread .env.example
Comment on lines +36 to +58
# NOTE: approvals stay pending indefinitely by design — there is no timeout var.

# --- Dashboard ---------------------------------------------------------------
DASHBOARD_PORT=3000
IMPORTANT_SENDERS=email1@example.com,email2@example.com

# --- Reddit OAuth ------------------------------------------------------------
# Browser/dashboard OAuth flow (src/apiV1.ts). The refresh token is stored in
# the gitignored DB once the /api/reddit/auth flow completes.
# REDDIT_CLIENT_ID= # Reddit app client id (installed/web app)
# REDDIT_REDIRECT_URI= # default http://localhost:${DASHBOARD_PORT}/api/reddit/callback

# --- Web push (VAPID) --------------------------------------------------------
# Browser push subscriptions for the dashboard queue view. Optional. The
# private key lives with the push sender (not the Node dashboard).
# VAPID_PUBLIC_KEY=

# --- Dev-tool webhooks (#49) -------------------------------------------------
GITHUB_WEBHOOK_SECRET= # openssl rand -hex 32
# LINEAR_WEBHOOK_SECRET= # /webhooks/linear (falls back to LINEAR_API_KEY)
# LINEAR_API_KEY= # fallback verify secret if LINEAR_WEBHOOK_SECRET unset
# NOTION_WEBHOOK_SECRET= # /webhooks/notion
# CALENDLY_WEBHOOK_SECRET= # /webhooks/calendly
# SOCIALAPI_WEBHOOK_SECRET= # /webhooks/socialapi (or config key socialapi_webhook_secret)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Keep the sample env block machine-readable.

These active assignments still embed prose after =, which dotenv-linter flags and some loaders may parse differently. Move the notes to separate comment lines so copied examples stay valid.

♻️ Proposed fix
- GITHUB_WEBHOOK_SECRET=           # openssl rand -hex 32
+# GITHUB_WEBHOOK_SECRET: openssl rand -hex 32
+GITHUB_WEBHOOK_SECRET=
@@
- GROCERY_PROVIDER=giant           # giant | wegmans (selects the provider below)
+# GROCERY_PROVIDER: giant | wegmans (selects the provider below)
+GROCERY_PROVIDER=giant

Also applies to: 73-73

🧰 Tools
🪛 dotenv-linter (4.0.0)

[warning] 53-53: [SpaceCharacter] The line has spaces around equal sign

(SpaceCharacter)


[warning] 53-53: [ValueWithoutQuotes] This value needs to be surrounded in quotes

(ValueWithoutQuotes)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.env.example around lines 36 - 58, The sample environment block is not
machine-readable because several active variable assignments include inline
prose after the equals sign, which can break dotenv parsing and linting. Move
the explanatory text onto separate comment lines and keep the actual assignments
for DASHBOARD_PORT, GITHUB_WEBHOOK_SECRET, and the other env vars comment-only
or value-only so the example remains a valid .env template.

Source: Linters/SAST tools

Comment thread docs/MULTI-TENANT.md
Comment on lines +57 to +69
**Connect Google Drive** (intended to write the tenant's `drive_accounts`
row).

> **⚠️ Known bug (issue #360): tenant Drive isolation does NOT work today.**
> The Node dashboard currently **ignores `AUGMENTAGENT_DB`**. Its entrypoints
> call `initDb()` with no argument, and `initDb` resolves the db path to
> `process.cwd()/data.db` (`src/db.ts`). Because the launch wrappers
> (`scripts/run-dashboard.sh`, and the systemd `WorkingDirectory` from
> `install-dashboard.sh`) `cd` into the repo root, **the dashboard always
> opens the production `data.db`**. Setting `AUGMENTAGENT_DB="$DB"` has no
> effect, so **Connect Google Drive writes the `drive_accounts` row into the
> prod db**, violating the zero-shared-state invariant below. Do not rely on
> this step for tenant Drive isolation until #360 is fixed.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win

Move the Drive step out of the tenant setup path.

The warning says this still writes the tenant drive_accounts row into the production DB, so leaving it as step 4 makes the broken path look operational. Mark it as unavailable until #360 lands, or operators will keep following a step that breaks tenant isolation.

Suggested fix
-4. Google Drive: run the dashboard with `AUGMENTAGENT_DB="$DB"` and click
-   **Connect Google Drive** (intended to write the tenant's `drive_accounts`
-   row).
+4. Google Drive: **skip for now** — tenant Drive isolation is still broken
+   (`#360`), and the dashboard writes into the production DB.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/MULTI-TENANT.md` around lines 57 - 69, The tenant setup flow currently
presents Connect Google Drive as an available step even though it writes the
tenant’s drive_accounts row into the production database and breaks isolation.
Update the Multi-Tenant docs to remove this step from the active tenant setup
path in the section describing tenant onboarding, and mark it as
unavailable/disabled until issue `#360` is fixed; use the existing Connect Google
Drive / drive_accounts / `#360` references so readers understand it must not be
followed yet.

Comment thread docs/PUBLISH.md
Comment on lines +57 to +66
- The author/committer metadata still needs scrubbing (see #358 and the top of
this doc). To do it, run `git filter-repo --mailmap mailmap.txt` on a fresh
clone, mapping BOTH personal Gmail addresses (read them from
`git log --all --format='%ae %ce' | grep -i gmail | sort -u`) →
`119541177+nolanmak@users.noreply.github.com` for author AND committer, then
force-push `main` and the affected branches (safe here: no forks/PRs on the
public repo). As a belt-and-suspenders display fix, also commit a root
`.mailmap` with the same mappings so GitHub renders the noreply even before the
rewrite lands. The same `git filter-repo --mailmap` procedure applies if commit
identity ever regresses to a personal email again.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔒 Security & Privacy | 🟠 Major | ⚡ Quick win

Don't commit a .mailmap that contains personal emails.

That would reintroduce Gmail addresses into tracked source, which conflicts with the repo's no-PII contract in docs/SECURITY.md. Keep the mapping local/private, or finish the history rewrite before publishing.

Suggested fix
- As a belt-and-suspenders display fix, also commit a root `.mailmap` with the same mappings so GitHub renders the noreply even before the rewrite lands.
+ Keep the `.mailmap` out of the public repo; finish the history rewrite before publishing.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- The author/committer metadata still needs scrubbing (see #358 and the top of
this doc). To do it, run `git filter-repo --mailmap mailmap.txt` on a fresh
clone, mapping BOTH personal Gmail addresses (read them from
`git log --all --format='%ae %ce' | grep -i gmail | sort -u`) →
`119541177+nolanmak@users.noreply.github.com` for author AND committer, then
force-push `main` and the affected branches (safe here: no forks/PRs on the
public repo). As a belt-and-suspenders display fix, also commit a root
`.mailmap` with the same mappings so GitHub renders the noreply even before the
rewrite lands. The same `git filter-repo --mailmap` procedure applies if commit
identity ever regresses to a personal email again.
- The author/committer metadata still needs scrubbing (see `#358` and the top of
this doc). To do it, run `git filter-repo --mailmap mailmap.txt` on a fresh
clone, mapping BOTH personal Gmail addresses (read them from
`git log --all --format='%ae %ce' | grep -i gmail | sort -u`) →
`119541177+nolanmak@users.noreply.github.com` for author AND committer, then
force-push `main` and the affected branches (safe here: no forks/PRs on the
public repo). Keep the `.mailmap` out of the public repo; finish the history rewrite before publishing.
The same `git filter-repo --mailmap` procedure applies if commit
identity ever regresses to a personal email again.
🧰 Tools
🪛 LanguageTool

[style] ~58-~58: Consider a more expressive alternative.
Context: ...see #358 and the top of this doc). To do it, run `git filter-repo --mailmap mail...

(DO_ACHIEVE)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/PUBLISH.md` around lines 57 - 66, The guidance in this section should
not recommend committing a root .mailmap that contains personal Gmail addresses,
since that would put PII back into tracked source. Update the instructions
around the git filter-repo/mailmap workflow to keep the mapping local and
private, and reference the existing scrub-rewrite steps in this document so
contributors know to perform the history rewrite without adding a tracked
.mailmap file.

Comment thread docs/REMOTION.md
Comment on lines +173 to +195
### Phase 5 — platform publish ◐ (channels built)

The per-platform channel crates — auth + DM + posting — already exist.
**Status of the platform surface today:**

- **LinkedIn** (`crates/augmentagent-channel-linkedin`): feed posting is
implemented in `posting.rs` (#51 / #77) via Voyager
`contentcreation/normShares` — **text** and **single-image** posts, with
`ShareUrn` / `Visibility` types and own-post comment polling (`own_posts.rs`,
#58.2). Deferred to a later sub-phase: video, polls, scheduling, articles,
and multi-image.
- **Instagram** (`crates/augmentagent-channel-instagram`): exists with auth +
DM surfaces and a browser-driven `Composer` (`composer.rs`) for
Feed/Carousel/Reel/Story posting (#50 / #76).
- **Twitter(X)** (`crates/augmentagent-channel-twitter`): exists with auth +
DM surfaces and a `CreateTweetClient` (#79) that posts via the `CreateTweet`
GraphQL op behind a hard 15/day quota preflight and a dry-run gate.

**Still unbuilt — video publish wiring.** What remains is connecting the
renderer-produced mp4 (Phase 1's `MediaSpec` → rendered clip) through these
channels' posting paths; the channels currently post text/image, not the
rendered short. Every publish path here is ToS-bearing and rate-sensitive, so
the remaining video-publish wiring stays gated on Phases 2–4.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Narrow the Phase 5 summary wording.

"channels currently post text/image" reads too broad next to the Instagram bullet, which already advertises Reel/Story posting. Rephrase this around the missing renderer→publish wiring instead of the channel capabilities.

Suggested fix
- the channels currently post text/image, not the rendered short.
+ the renderer-produced mp4 is not yet wired into the publish paths.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
### Phase 5 — platform publish ◐ (channels built)
The per-platform channel crates — auth + DM + posting — already exist.
**Status of the platform surface today:**
- **LinkedIn** (`crates/augmentagent-channel-linkedin`): feed posting is
implemented in `posting.rs` (#51 / #77) via Voyager
`contentcreation/normShares`**text** and **single-image** posts, with
`ShareUrn` / `Visibility` types and own-post comment polling (`own_posts.rs`,
#58.2). Deferred to a later sub-phase: video, polls, scheduling, articles,
and multi-image.
- **Instagram** (`crates/augmentagent-channel-instagram`): exists with auth +
DM surfaces and a browser-driven `Composer` (`composer.rs`) for
Feed/Carousel/Reel/Story posting (#50 / #76).
- **Twitter(X)** (`crates/augmentagent-channel-twitter`): exists with auth +
DM surfaces and a `CreateTweetClient` (#79) that posts via the `CreateTweet`
GraphQL op behind a hard 15/day quota preflight and a dry-run gate.
**Still unbuilt — video publish wiring.** What remains is connecting the
renderer-produced mp4 (Phase 1's `MediaSpec` → rendered clip) through these
channels' posting paths; the channels currently post text/image, not the
rendered short. Every publish path here is ToS-bearing and rate-sensitive, so
the remaining video-publish wiring stays gated on Phases 2–4.
**Still unbuilt — video publish wiring.** What remains is connecting the
renderer-produced mp4 (Phase 1's `MediaSpec` → rendered clip) through these
channels' posting paths; the renderer-produced mp4 is not yet wired into the publish paths. Every publish path here is ToS-bearing and rate-sensitive, so
the remaining video-publish wiring stays gated on Phases 2–4.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/REMOTION.md` around lines 173 - 195, The Phase 5 summary is too broad
because it says the channels “currently post text/image,” which conflicts with
the Instagram `Composer` bullet that already lists Reel/Story posting. Update
the wording in the Phase 5 section to focus on the missing renderer-produced mp4
wiring from `MediaSpec` into the publish paths, using the existing platform
surface references (`posting.rs`, `Composer`, `CreateTweetClient`) to make clear
the gap is in video-publish integration rather than overall channel capability.

Comment on lines +45 to +47
`next_cmd` template is `augmentagent instagram login --cookies-json <path>`,
but that top-level command does not exist yet (see the NOT YET WIRED
note above), so the command in step 5 will fail until it lands.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

Don't present the missing Instagram login command as runnable.

The note above says the command/router do not exist yet, but Step 5 still tells the skill to execute augmentagent instagram login. That makes the runbook self-contradictory and guarantees a failure if followed literally.

Also applies to: 54-57

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@skills/augmentagent-setup/channels/instagram.md` around lines 45 - 47, The
Instagram setup guide is self-contradictory because it presents `augmentagent
instagram login` as if it were runnable even though the top-level command is not
wired yet. Update the affected steps in the Instagram channel doc to clearly
mark the login action as unavailable/not yet implemented and avoid instructing
users to execute `augmentagent instagram login` until the router/command
actually exists. Refer to the `next_cmd` template and the Step 5 login
instructions so they stay consistent with the “NOT YET WIRED” note.

Comment on lines +61 to +65
```
cp systemd/augmentagent-renderer.service ~/.config/systemd/user/
systemctl --user daemon-reload
systemctl --user enable --now augmentagent-renderer.service
```

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Label the install snippet as shell.

Markdownlint will flag this fence as unlabeled. Adding the language keeps the docs build clean and makes the commands easier to scan.

🛠 Suggested fix
-```
+```shell
 cp systemd/augmentagent-renderer.service ~/.config/systemd/user/
 systemctl --user daemon-reload
 systemctl --user enable --now augmentagent-renderer.service
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
```
cp systemd/augmentagent-renderer.service ~/.config/systemd/user/
systemctl --user daemon-reload
systemctl --user enable --now augmentagent-renderer.service
```
🧰 Tools
🪛 markdownlint-cli2 (0.22.1)

[warning] 61-61: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@skills/augmentagent-setup/components/systemd-units.md` around lines 61 - 65,
The install snippet in the systemd-units docs uses an unlabeled fence, which
triggers markdownlint. Update the code block around the shell commands in the
install section to use a shell language fence so the commands are properly
highlighted and the docs build stays clean.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant