Skip to content

feat: Add Human-AI Collaboration for Small Teams blog article - #336

Merged
LindsayLiu777 merged 2 commits into
mainfrom
feat/blog-human-ai-collaboration-small-teams
Jul 8, 2026
Merged

feat: Add Human-AI Collaboration for Small Teams blog article#336
LindsayLiu777 merged 2 commits into
mainfrom
feat/blog-human-ai-collaboration-small-teams

Conversation

@LindsayLiu777

Copy link
Copy Markdown
Contributor

Summary

Add new SEO blog article: Human-AI Collaboration for Small Teams

Files

  • src/web/src/content/human-ai-collaboration-small-teams.mdx (1680 words)
  • src/web/public/blog/human-ai-collaboration-small-teams/hero.webp (85KB)
  • src/web/public/blog/human-ai-collaboration-small-teams/evolution.webp (75KB)
  • src/web/public/blog/human-ai-collaboration-small-teams/gen3-requirements.webp (75KB)

SEO

  • Target keyword: human-AI collaboration
  • Long-tail: human-AI collaboration for small teams, AI workforce
  • Internal links: /blog/one-person-company-ai-team
  • External links: HBR x2
  • JSON-LD: Article + FAQ + HowTo schemas prepared

Validation

  • validate:blog script passed
  • Typecheck passed (all 5 packages)

@LindsayLiu777
LindsayLiu777 requested a review from a team as a code owner June 30, 2026 07:26
@codecov

codecov Bot commented Jun 30, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@LindsayLiu777

Copy link
Copy Markdown
Contributor Author

/lgtm

@gusye1234

Copy link
Copy Markdown
Contributor

Nice write-up. One issue I found:

Broken internal link. The article links to /blog/one-person-company-ai-team, but there's no post with that slug — the closest match in src/web/src/content/ is personal-ai-company.mdx (slug: "personal-ai-company"). Since the blog route is app/blog/[slug], this will render a 404 for anyone who clicks it.

Suggested fix in human-ai-collaboration-small-teams.mdx:

-(If you're building a [one-person company with an AI team](/blog/one-person-company-ai-team), this is where you start.)
+(If you're building a [one-person company with an AI team](/blog/personal-ai-company), this is where you start.)

Note that validate:blog only checks image paths, not internal links, so this slipped past the validator. Might be worth extending the script to also verify /blog/* markdown links resolve to an existing slug in src/content/ — one-line addition would prevent future occurrences.

Nothing else blocking from a code perspective — content-only change, CI green, images present, JSON-LD not in the file yet but that's mentioned as "prepared" in the PR body so I'll assume follow-up.

@gusye1234 gusye1234 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Content Review — PR #336 (Human-AI Collaboration for Small Teams)

Reviewed the diff. New MDX article + 3 webp images. No code changes.

Looks good:

  • Metadata is complete (slug, title, date, author, excerpt, readingTime) and matches other posts' shape.
  • Images are .webp (small: 75-85KB each), consistent with the site's blog image convention.
  • External HBR links are real HBR URL patterns; internal link /blog/personal-ai-company — heads up: PR #339 is currently retitling that same post, but the slug is preserved there so this internal link stays valid.
  • Content is opinionated but honest (no fabricated stats, no invented case studies) — reads well.

Minor:

  • Internal link target. /blog/personal-ai-company should exist post-#339 merge. If #339 changes slug or is dropped, this link becomes dead. Confirmed from #339's diff that slug is preserved — good.
  • Alt text quality. The three image alt-text strings are descriptive and keyword-loaded, which is fine for SEO but two of them are quite long (100+ chars). Not a bug.
  • Date 2026-06-30 — matches the batch of June posts, no issue.
  • Author Donia — different from the "Alook Team" byline on other recent posts. If this is intentional (a named contributor), fine; if not, worth aligning.

PR description mentions JSON-LD schemas "prepared" — no jsonLd export in the MDX. Once #338 merges, this post could be a good candidate to actually add the FAQ/HowTo schema for rich results. Not required to ship.

Assessment: Content-only, CI green. Safe to merge. Recommend confirming the Donia byline is intentional.

@LindsayLiu777
LindsayLiu777 merged commit d511d69 into main Jul 8, 2026
15 checks passed
GenerQAQ added a commit that referenced this pull request Aug 1, 2026
…(ref/id #3)

Removes the A2 thread-message guard (which made `/s/c/#N#M` non-navigating) now
that the shape is ratified: a thread-message token's `()` holds the thread's OWN
channelId (tid) — a thread is its own channel (§3.4b) — so the jump is uniform
with a plain-channel message.

- resolveMessageJump now takes the token `id` and uses it DIRECTLY as the jump
  channelId (tid for a thread, cid for a plain channel), NOT a directory lookup:
  a thread's tid is never in useChannelRefDirectory (top-level only), so a lookup
  would miss. serverId still resolves from the label's server segment via the
  directory (the server is always a top-level entity). seq = the message's own
  seq (parsed.seq = the trailing #M — the thread-internal message to land on).
  Dropped the `threadRootSeq !== undefined → null` guard. Returns null only for a
  seqless label (plain channel → navigate) or an unresolvable server.
- Access stays server-enforced: a channel's privacy anchors to its parent, so a
  private-parent thread the viewer can't see returns not-found on open — no
  client-side climb (Blondie #336).
- Display axis vs jump axis (Faustine #332): a thread message's DISPLAY seq is the
  ROOT seq N ("which message opened the thread" — the human anchor), while the
  JUMP uses the thread-internal M. refDisplayParts now returns `threadRootSeq ?? seq`
  for a message pin's display seq; resolveMessageJump keeps `parsed.seq` (M). So a
  thread pill reads `ideas #N` (and when the tid has no directory name — always,
  since tids aren't in it — it degrades to that leaf + root-seq, never empty/bare-tid).

Zero producer emits thread-message tokens today; this is the定形 + the jump/display
wiring for when one exists. Touches A2 (QA'd) → Ingaborg re-verify. shared 1721 /
web 3512 / daemon 787 green, 3-pkg typecheck + web knip clean, full pre-commit no
--no-verify. Stacked on origin bfb0df4, local.
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.

2 participants