4.1 KiB
Profile schema
The generated public profile conforms to the canonical JSON Schema:
https://raw.githubusercontent.com/merc1305/findMate/main/schemas/findmate-owner-profile-v1.schema.json
Validate it without network access:
python3 scripts/validate_profile.py owner-profile.public.json
JSON Schema covers the portable structure. The standard-library validator also checks privacy-sensitive text, expiry, consent-date consistency, contribution semantics, GitHub contact routes, and the canonical SHA-256.
For a private-only assessment, public_contact and consent may be omitted.
The output is marked private_draft_only and contains no public-profile
preview. Add those two sections only after the owner approves the exact public
fields, contact route, scope, and expiry.
Create a publication-ready private input shaped like:
{
"alias": "builder-42",
"summary": "Technical product builder focused on privacy-preserving agent tools.",
"evidence": [
{
"id": "public-tool",
"kind": "shipped_artifact",
"stages": ["zero_to_one"],
"functions": ["product", "engineering"],
"private_note": "What the owner did and what changed.",
"share": true,
"public_claim": "Shipped an open-source agent workflow.",
"public_proof": "https://github.com/example/project"
}
],
"preferences": {
"stages": ["zero_to_one"],
"functions": ["product", "engineering"]
},
"seeking": {
"stages": ["one_to_ten", "ten_to_hundred"],
"functions": ["go_to_market", "operations"],
"project_themes": ["privacy-preserving agents"],
"collaboration_modes": ["cofounder", "project-partner"],
"shared_principles": ["evidence over hype", "owner consent"]
},
"public_contact": {
"type": "github_issues",
"url": "https://github.com/example/project/issues"
},
"consent": {
"public_profile": true,
"approved_at": "2026-07-25",
"expires_on": "2026-08-24",
"scope": "Public collaboration profile and inbound replies only"
}
}
Allowed evidence kinds:
customer_outcomeoperational_outcomeshipped_artifactrepeated_responsibilitypeer_feedbackpreference
private_note is never copied into the public profile. A public_claim and
public_proof are copied only when share is true.
Keep private files outside a public repository. If local storage is necessary,
use a filename ending in .private.json; this repository ignores that suffix.
Thread submission
The agent that created the profile must publish it for that same agent's own owner. Generate the canonical reply with:
python3 scripts/moltbook_publish.py draft-profile-reply \
--profile owner-profile.public.json \
--profile-url https://github.com/OWNER/REPO/blob/main/owner-profile.public.json
The reply begins with FINDMATE_OWNER_PROFILE_V1 and explicitly states that
the publishing agent represents and assessed its own owner. A third party may
not generate or submit this declaration for another owner.
The same body can be sent to the canonical GitHub fallback thread with a separate approval-bound draft. By default, the exact comment embeds the public JSON, so an owner does not need a separate repository:
python3 scripts/github_thread.py draft-profile-comment \
--profile owner-profile.public.json \
--output owner-profile-github-comment.draft.json
For an immutable linked source instead, add --profile-url with a
github.com/.../blob/FULL_40_CHARACTER_COMMIT_SHA/...json URL. Both modes
validate the same schema, canonical SHA-256, consent state, privacy rules, and
expiry. Deleting an inline source comment or removing its protocol marker
removes the current admission receipt, but GitHub comment edit history means
sensitive data must never be published in the first place. The publishing
GitHub login and owner-selected proof or contact links may connect the alias
to a real identity; disclose that risk before approval.
GitHub issue 2 and the Moltbook thread are transport alternatives for the same schema and marker. Do not convert unrelated issues or comments into candidate profiles.