Skip to content

docs: refresh ByteFolk homepage with current products and clear entry points - #29

Merged
PeterGuy326 merged 1 commit into
mainfrom
docs/28-homepage-current
Sep 8, 2026
Merged

PeterGuy326 merged 1 commit into
mainfrom
docs/28-homepage-current

Conversation

@PeterGuy326

Copy link
Copy Markdown
Contributor

Tracking record

Closes #28. Consumed revision: R1.

Summary

Refresh the public ByteFolk homepage so visitors can find the released RoleWeave desktop app, the Digital Employee CLI, and supporting projects without reading internal engineering status. English is canonical, with a synchronized Simplified Chinese companion.

Use the existing light/dark brand mark, workflow-based entry points, a compact project directory, AI/developer navigation, and community support links. Follow GitHub's organization profile guidance. Reuse the existing R1 draft and update its verified product facts and integration navigation. No organization settings, pin order, policy, brand asset, or runtime changes.

Acceptance criteria

Acceptance criterion Status Implementation / evidence
AC-001: current RoleWeave identity and real downloads PASS Canonical repository, v0.1.1 macOS arm64/Windows x64 assets, release notes, signing and host prerequisites
AC-002: actionable CLI and offline quickstart PASS Published-release entry and version-pinned fixtures, distinct from live host execution
AC-003: accurate supporting-project scope PASS mem MCP binaries and server setup distinguished; doc/design-system source availability; Ordane identified as static marketing-site source
AC-004: existing brand and equivalent languages PASS Existing theme-aware SVG sources; English/Chinese facts and entry points independently checked
AC-005: checks, links, and rendered Markdown PASS Validation below; required CI runs on this PR

Validation ledger

Command or check Expected Actual Evidence
ruby scripts/validate-governance.rb Valid forms and Markdown links PASS 5 forms, configuration, 7 required files and local links validated
ruby scripts/validate-brand-assets.rb Existing valid brand assets PASS 3 SVGs and opaque avatar; outside-circle ink=0
git diff --check No whitespace errors PASS Exit 0
GitHub /markdown API, GFM context bytefolk/.github, both profile documents Theme-aware picture and navigable product sections PASS Both documents render successfully
Extract both documents' URLs; follow HTTP redirects with curl -L Public targets resolve PASS 30 unique URLs checked; new translation file checked locally and then through branch contents API
GitHub repositories, README contents, releases and assets APIs Current public facts only PASS RoleWeave v0.1.1; Digital Employee v0.6.0; mem v0.1.1 MCP assets; no releases for doc/design-system/quickstart/Ordane
Independent automated documentation preflight No factual, translation, or scope blockers PASS Reviewed both files against current public source and release evidence

Tests and coverage

  • Documentation only; no new runtime tests or coverage impact.
  • GitHub Markdown rendering and public links were exercised.
  • Browser visual inspection timed out; no responsive screenshot or live-application execution claim.
  • No CHANGELOG exists; the two profile files are the user-visible change.

Change classification

  • User-visible behavior
  • Documentation only
  • Internal refactor or maintenance
  • Build, CI, dependency, or repository configuration
  • Breaking change
  • Security-sensitive change

Risk and rollback

Low documentation risk. No migration, permission, data, or operational changes. Revert the squash commit through a focused PR to restore the previous homepage. Only public project information and existing public assets are referenced.

Breaking or security notes

None.

Author checklist

  • Existing issue docs: refresh the ByteFolk homepage around released products #28 R1 is ready and matches the requested outcome.
  • Isolated branch from current main; other checkout work preserved.
  • Applicable governance, brand, whitespace, rendering, and link checks passed.
  • No new runtime test applies to this documentation-only change.
  • Relevant documentation updated.
  • Diff checked for sensitive information and unrelated changes.
  • Ready for repository CI and independent CODEOWNER review.
  • Verification claims reflect actual checks.

Reviewer notes

Check user onboarding, release-versus-source distinctions, English/Chinese parity, and AI navigation. Automated preflight is not human approval. Codex assisted with research, documentation and validation; the submitter remains accountable.

@waterbro-8 waterbro-8 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Approving review from @waterbro-8 — requested by @PeterGuy326 on the ByteFolk group at 2026-09-08 11:47 (local) for a CODEOWNER sign-off from Bindy-lbb or waterbro-8.

I am neither the author nor the pusher of 498faea6b4b1ae4dcc4505a10be95d8eb74c7b8c (author = committer = PeterGuy326), so this approval is independent under require_last_push_approval.

Everything below was measured against this exact head (tree f0589ce7d0b939c89a19fc9f8296af3395488095) through the GitHub API at ~05:30 UTC today. Nothing is quoted from the PR body or from issue #28.

AC-by-AC result

AC-001 — PASS. bytefolk/roleweave is canonical (bytefolk/org-workbench now resolves to it). v0.1.1 is a real, public, non-draft, non-prerelease release published 2026-09-08T02:56:18Z, and both linked asset names exist with state uploaded: roleweave-0.1.1-arm64.dmg (122,076,603 B) and roleweave-0.1.1-x64.exe (105,464,927 B). The signing caveat is not an invention of this diff — the release's own notes say "The macOS packages are not yet signed with an Apple Developer ID or notarized, and the Windows installer is not Authenticode-signed." The stale installer claim on main ("Development preview; no tagged installer release yet.") is gone.

AC-002 — PASS, and the three sub-claims are each true. The quickstart does pin a published version (@fullstack-ai-infra/digital-employee@0.6.0), its own README states the path is credential-free, that validate checks package structure and eval "only checks the contract of the repository's offline fixtures. It does not invoke a model, Agent Host, MCP…". This PR's copy claims nothing about model quality, deployment readiness, or automatic cross-product integration. It also deliberately avoids naming the npm package — which is correct, because the published scope is still @fullstack-ai-infra/* while the org is bytefolk.

AC-003 — PASS. mem latest=v0.1.1 really ships MCP binaries (mem-mcp-{darwin,linux,windows}-{amd64,arm64} + checksums), mem's own README badges itself status-experimental, and the "released MCP adapter needs a running mem service" note matches. doc and design-system both return 404 on /releases/latest, so "source setup guides and no GitHub Releases" is accurate. All eight linked repositories resolve to visibility=public with no rename redirects. The two private repos in this org (context, digital-employee-platform) are not mentioned anywhere in either file — I grepped both.

AC-004 — PASS, verified at the renderer rather than assumed. The diff touches only profile/README.md and profile/README.zh-CN.md, so brand/ is untouched and the brand leg (which asserts geometry equality across symbol.svg / symbol-reversed.svg / lockup.svg) covers "geometry unchanged" for real. For light/dark I rendered the file through POST /markdown: <picture> and <source media="(prefers-color-scheme: dark)" srcset=…> both survive sanitization, and GitHub wraps the block in its own <themed-picture data-catalyst-inline="true">, so the dark variant is actually selected. EN/ZH agree on every release fact I counted — v0.1.1 ×4, arm64 ×1, x64 ×3, 1.1.x ×1, macOS ×2, Windows ×3, Apple Silicon ×2, identical on both sides.

AC-005 — PASS on the artifact, with one correction about what the artifact covers (next section). CI ran twice on this head: pull_request run 34184329147 and workflow_dispatch run 34184327532, both attempt 1, all three real steps (Validate issue forms and Markdown links, Validate ByteFolk brand assets, Check whitespace) success.

One correction to the stated evidence: the "30 links" pass is not what CI checks

The count is right — I independently counted 30 unique destinations across the two files (32 mentions each, 28 unique each). But it cannot have come from the Governance job:

  • scripts/validate-governance.rb:329 is next if destination.match?(/\A[A-Za-z][A-Za-z0-9+.-]*:/) — it skips every destination that carries a scheme. Both READMEs contain zero relative links (0 of 60 destinations), so the step named "…and Markdown links" validates 0 of these 30 links. What that step actually proves here is issue-form YAML shape, the 7 REQUIRED_FILES, and relative-link containment.
  • scripts/validate-brand-assets.rb never opens a README (0 matches for README), so it cannot check the logo usage either — only the SVG assets themselves.

So the link claim rests on a manual pass that has not been published anywhere on this thread. That is the gap I closed, and it closes green: all 8 repos public and unredirected; mem:docs/RUN_LOCAL.md, doc:docs/RUN_LOCAL.md, doc:docs/CAPABILITIES.md, roleweave:docs/api-contract-v0.md all exist at main; CONTRIBUTING.md, GOVERNANCE.md, SECURITY.md, SUPPORT.md, CODE_OF_CONDUCT.md all exist; both brand/bytefolk/symbol*.svg exist; and all four README anchors resolve — roleweave#get-started, design-system#develop-and-verify, digital-employee-quickstart#try-a-case-safely, digital-employee-quickstart#cases.

Exactly 1 of the 30 does not resolve on main today: https://github.com/bytefolk/.github/blob/main/profile/README.zh-CN.md → 404, because this PR is what creates it. That is the correct mechanism for a cross-language link and needs no change — but it is the precise reason "all 30 links pass" is only true against the PR branch, not against main, and it is worth saying in the body so the next reader does not re-derive it.

Optional, if the org wants "links verified" to be a property CI holds rather than a person asserts: validate-governance.rb could gain an opt-in HTTP mode for profile/*.md. Nothing in this PR owes that.

Nits — none block, all one-line and optional

  1. README.zh-CN.md is internally inconsistent about which quickstart page it sends a Chinese reader to: 体验 CLI (line 17) and 运行官方示例 (line 43) go to digital-employee-quickstart/blob/main/README.zh-CN.md, but 示例库 (line 47) goes to the English page's #cases. That file has an equivalent heading ## 案例列表, so README.zh-CN.md#案例列表 keeps the reader in Chinese.
  2. The mirror-image asymmetry: EN "Try the CLI" deep-links #try-a-case-safely while ZH "体验 CLI" lands on the zh README root instead of its own ## 安全实践一个案例 heading. Fine either way; picking one depth in both files reads as deliberate.
  3. The blockquote scopes the installers to "macOS Apple Silicon and Windows x64". roleweave README:34 states the negative outright — "Intel Mac and Linux installers are not included in v0.1.1." One clause would save an Intel-Mac visitor a 122 MB wrong click, which is the loudest remaining usability edge on the page.
  4. Cosmetic and not fixable in this file: GitHub wraps any <img> in a link to the image URL, so the symbol is clickable and navigates to the raw SVG.

What I did not verify, stated plainly

  • I did not run the two ruby scripts locally — this machine has no ruby interpreter. I read their assertions and relied on the two green CI runs plus the step list. That is E2 for "the scripts pass", not E1 from me.
  • I did not confirm that GitHub private vulnerability reporting is switched on per repository, which the "use the affected repository's Security tab" line depends on. SECURITY.md:22 already documents what to do when a repo does not show Report a vulnerability, so the homepage copy is consistent with policy whichever way that toggle sits.
  • I checked EN/ZH link sets and release facts, not translation quality. Whether the Chinese prose reads well to a native speaker is not mine to certify — and the 1.1.x / signing / "no model call" sentences are the ones I did confirm carry the same facts in both languages.
  • Branch state is clean: compare/main...498faea6b4b1 = ahead 1 / behind 0, mergeable=true, main tip is still d75dad353094. So mergeable_state=blocked here is the missing approval and nothing else — no conflict, no staleness, no failing check. #29 is the only open PR in this repository.

@PeterGuy326
PeterGuy326 merged commit 99c967a into main Sep 8, 2026
2 checks passed
@PeterGuy326
PeterGuy326 deleted the docs/28-homepage-current branch September 8, 2026 05:57
PeterGuy326 added a commit that referenced this pull request Sep 9, 2026
## Tracking record

Refs #28, consumed revision
[R2](#28 (comment)).
Header-only follow-up to merged #29; the owner authorized correcting the
avatar and merging after checks and independent approval. Do not reuse
#29's approval for this new head.

## Summary

The published homepage uses theme-specific black/white SVGs, which
differ from the current organization avatar. Both English and Simplified
Chinese profile headers now reference the public avatar returned by `GET
/orgs/bytefolk`, preserving its original appearance and the existing
72-by-72 display size. Only two image blocks change; the rest of the
merged homepage is byte-for-byte unchanged.

No organization avatar upload, settings, brand assets, product copy,
dependency, runtime, CI, permissions, or other branch changes.

## Acceptance criteria and validation ledger

| Requirement / criterion | Expected behavior | Actual result |
| --- | --- | --- |
| R2 REQ-004 / AC-004 | Both headers use the current organization
avatar, meaningful localized alt text, and 72x72 dimensions | PASS: live
avatar URL and both exact headers verified; old SVG selectors removed |
| R2 inherited REQ-001–003 / AC-001–003 | Preserve approved product copy
and links | PASS: bytes after the first closing paragraph match base
`99c967a04b152294fd2e9b927439fcbf37e59a86` |
| R2 REQ-005 / AC-005 | Image is available and GitHub renders both
documents | PASS: anonymous avatar HTTP 200; GitHub GFM output retains
avatar and localized alt text |
| R2 REQ-005 / AC-005 | Repository checks pass | PASS locally:
governance, brand assets, whitespace; required remote CI must pass on
the candidate head |

## Reproduce

Environment: macOS arm64, Ruby 2.6.10, gh 2.89.0, Git, curl, public
GitHub network access. `gh` uses its existing configured authentication;
do not copy credentials into commands or output. Run from a checkout of
this PR. These checks do not mutate repository files.

```sh
ruby scripts/validate-governance.rb
ruby scripts/validate-brand-assets.rb
git diff --check 99c967a HEAD
ruby -rjson -ropen3 <<'RUBY'
def read_command(*args, input: nil)
  out, status = Open3.capture2(*args, stdin_data: input)
  abort "Command failed: #{args.first}" unless status.success?
  out
end
avatar = JSON.parse(read_command('gh', 'api', 'orgs/bytefolk')).fetch('avatar_url')
base = '99c967a04b152294fd2e9b927439fcbf37e59a86'
{'profile/README.md' => 'ByteFolk organization avatar', 'profile/README.zh-CN.md' => 'ByteFolk 组织头像'}.each do |path, alt|
  text = File.read(path)
  expected = "<p align=\"center\">\n  <img src=\"#{avatar}\" alt=\"#{alt}\" width=\"72\" height=\"72\">\n"
  abort "Wrong avatar header: #{path}" unless text.split('</p>', 2).first == expected
  old = read_command('git', 'show', "#{base}:#{path}")
  abort "Body changed: #{path}" unless text.split('</p>', 2).last == old.split('</p>', 2).last
  html = read_command('gh', 'api', 'markdown', '--input', '-', input: JSON.generate(text: text, mode: 'gfm', context: 'bytefolk/.github'))
  abort "Avatar missing in render: #{path}" unless html.include?(avatar) && html.include?(alt)
  abort "Old SVG remains: #{path}" if html.include?('symbol.svg') || html.include?('symbol-reversed.svg')
  puts "PASS #{path}: avatar, dimensions, alt, unchanged body, GFM"
end
code = read_command('curl', '-sS', '-L', '-I', '-o', '/dev/null', '-w', '%{http_code}', '--max-time', '30', avatar).strip
abort "Avatar HTTP #{code}" unless code == '200'
puts 'PASS anonymous avatar HTTP 200'
RUBY
```

Expected and observed: all commands exit 0 after the fix. Before the
change, the header equality check fails on the English document,
reproducing the mismatch. The brand validator checks existing assets,
not README image usage; the separate header, HTTP and GFM checks cover
those claims. Other product links are unchanged, not revalidated by this
avatar patch.

## Tests and coverage

- No runtime or coverage change; this is a two-document image-reference
correction. The executable checks above cover both languages and detect
any non-header edit.
- No software CHANGELOG exists in this organization-profile repository;
this tracking record and PR document the user-visible correction without
creating a software release history.
- GitHub preview and independent preflight results will be recorded
against the candidate before a review request. Required CI and fresh
CODEOWNER approval are still merge gates.

## Risk and rollback

Low documentation-only risk. The image is deliberately served from the
same public GitHub avatar endpoint as the organization; later avatar
updates and CDN caching may affect its appearance. Current drift from
the approved tracked PNG is already confirmed and recorded in #18; owner
restoration and new readback are being handled there. Meaningful alt
text remains available if the image cannot load. No cropping,
recoloring, or alternate theme image. Revert this focused commit through
a PR to restore the prior header. No migration or cleanup is needed.

## Breaking or security notes

None. Only the public organization avatar URL is newly referenced. No
credentials, private repository data, or screenshots are included.
Existing branch protection and required review are unchanged. Codex
assisted with implementation and validation; the submitter remains
accountable.
Bindy-lbb pushed a commit that referenced this pull request Sep 14, 2026
## Tracking record

Refs #37, R1. Follow-up to #28/#29/#30: RoleWeave v0.1.2 was published
on 2026-09-12, but the merged homepage still offers the v0.1.1
installers. The owner authorized this version refresh before sharing the
organization page with the company group.

## Summary

Both profile READMEs (English and Simplified Chinese) now point the
explicit RoleWeave download buttons and release-notes link at the
published v0.1.2 assets, and the installer note states v0.1.2. The
signing limitation text, Qoder CLI host requirement, and every other
byte of the merged homepage are unchanged. No avatar, brand asset, copy
rewrite, organization settings, permissions, CI, or other file changes.

## Acceptance criteria

| Acceptance criterion | Status | Implementation / evidence |
| --- | --- | --- |
| #37 REQ-001 / AC-001: both languages link the real public v0.1.2
assets and notes page; no v0.1.1 download reference remains | PASS |
Diff replaces all six `0.1.1` occurrences per file; `grep -c "0\.1\.1"`
returns 0 on both files at head; all three v0.1.2 URLs return HTTP 200
(checked anonymously with curl) |
| #37 REQ-002 / AC-002: installer note states v0.1.2 and keeps the
accurate constraints | PASS | Note now reads "The current v0.1.2
installers…" / "当前 v0.1.2 安装包…"; platform scope, unsigned status, and
Qoder CLI 1.1.x requirement unchanged and consistent with the v0.1.2
release notes |
| #37 REQ-003 / AC-003: governance, brand, and whitespace checks pass;
both documents render; languages agree | PASS locally (see ledger);
required remote CI must pass on the candidate head |

## Validation ledger

| Command or check | Expected | Actual | Evidence |
| --- | --- | --- | --- |
| `ruby scripts/validate-governance.rb` (clean checkout of head, UTF-8
locale) | exit 0 | exit 0 | "Validated 5 issue forms, issue template
config, 7 required files, and local Markdown links." |
| `ruby scripts/validate-brand-assets.rb` | exit 0 | exit 0 | "Validated
5 ByteFolk SVGs and one opaque 1024x1024 RGB avatar." |
| `git diff --check 0aaff62…HEAD` | no whitespace errors | clean | no
output |
| `git diff --stat 0aaff62…HEAD` | only the two profile files | 2 files,
4 insertions(+), 4 deletions(-) | `profile/README.md`,
`profile/README.zh-CN.md` |
| Anonymous HTTP HEAD on the three v0.1.2 URLs | 200 each | 200 each |
dmg, exe, and release tag pages |
| GitHub Actions `Governance` on the PR head | pass | pending | required
remote check |

## Tests and coverage

- Tests added or changed: none; documentation-only change. The
repository's executable checks (governance, brand, whitespace) cover it
and were run locally at head.
- Coverage before / after, when measured: not applicable; no runtime
code.
- Intentionally uncovered behavior and reason: none.

## Change classification

- [ ] User-visible behavior
- [ ] Internal refactor or maintenance
- [x] Documentation only
- [ ] Build, CI, dependency, or repository configuration
- [ ] Breaking change
- [ ] Security-sensitive change

## Risk and rollback

- Risk level and affected components: minimal; two profile documents,
four lines each.
- Compatibility, migration, privacy, performance, or operational impact:
none; no runtime, data, or settings change.
- Rollback procedure: focused revert PR of the two profile files, or
restore the v0.1.1 strings.

## Breaking or security notes

None.

## Author checklist

- [x] A maintainer confirmed that the linked issue or tracking record
was ready before implementation began, or the automation was
pre-authorized under `GOVERNANCE.md`.
- [x] This branch was created from an up-to-date default branch and
contains no unrelated changes.
- [x] I ran the repository's applicable tests, lint, type checks,
builds, coverage, and security checks.
- [x] I added a regression test for a bug fix, or explained why one is
impractical.
- [x] I updated relevant documentation and changelog files.
- [x] I reviewed the diff for secrets, personal data, generated
artifacts, and dependency risk.
- [x] The PR is ready for CI and review by someone other than the sole
author.
- [x] All reported results are reproducible.

## Reviewer notes

- The change is a pure version-string refresh; verify with `git diff
origin/main...HEAD` that only the two RoleWeave sections differ.
- Independent check worth reproducing: `grep -rn "0\.1\.1" profile/`
returns nothing at head, and the three v0.1.2 URLs resolve anonymously.
- Required CI and a fresh CODEOWNER approval from a non-author reviewer
are merge gates; squash merge after conversations are resolved.
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.

docs: refresh the ByteFolk homepage around released products

2 participants