公開範囲のコントロール
takuhon.json は完全な記録です。実際に公開読者へ届くもの — プロフィールページ・
API・JSON-LD・MCP エンドポイント・エクスポートした CV — は、settings と meta の
4 つの独立した層で決まります(settings・項目ごと・meta)。ある値が公開される
のは、それに適用される層がすべて許可したときだけ(論理 AND)であり、同じ射影が
すべての surface で動くため、結果は常に一致します。
1. フィーチャートグル — 機能ごとオン/オフ
Section titled “1. フィーチャートグル — 機能ごとオン/オフ”settings.enable* は機能全体を切り替えます:
| 設定 | 既定 | 効果 |
|---|---|---|
enableJsonLd | true | ページに Schema.org JSON-LD を出力。 |
enableApi | true | 公開 read API エンドポイントを公開。 |
enableAnalytics | false | opt-in のファーストパーティ分析。 |
2. セクション可視性 — セクションごと非公開
Section titled “2. セクション可視性 — セクションごと非公開”settings.publicVisibility(schema 0.6.0 で追加)は、content セクションを丸ごと
非公開にできます。各キーはセクション名で、false にするとそのセクションがすべての
公開 surface から除外されます:
{ "settings": { "publicVisibility": { "education": false, "recommendations": false } }}- 既定は全公開。キーが無い — あるいは
publicVisibilityブロック自体が無い — 場合は そのセクションは公開され、既存のプロフィールには影響しません。 - 切り替えられる 16 セクションは
links・careers・projects・skills・certifications・memberships・volunteering・honors・education・publications・languages・courses・patents・testScores・recommendations・contact。 - プロフィール識別子(
profile.displayName・アバター・タグライン等)は常に公開で、 意図的にトグル対象外です。プロフィール全体を非公開にしたい場合は、デプロイしない (または API を切る)という別レイヤの判断になります。
3. 項目単位の可視性 — 1 件だけ非公開
Section titled “3. 項目単位の可視性 — 1 件だけ非公開”<item>.visibility(schema 0.7.0 で追加)は、公開しているセクションの中の
1 項目だけを非公開にします。任意の項目 — リンク・プロジェクト・職歴など — の
visibility を "private" にすると、その項目だけがすべての公開 surface から除外され、
同じセクションの他の項目はそのまま残ります:
{ "links": [ { "id": "site", "type": "website", "url": "https://example.com" }, { "id": "draft-blog", "type": "blog", "url": "https://blog.example.com", "visibility": "private" } ]}- 既定は公開。値が無い — あるいは
"visibility": "public"— なら項目は公開され、 既存のプロフィールには影響しません。 - 15 の配列セクション(
links・projects・careers等)の項目に使えます。まだ共有 したくないリンク、下書きのプロジェクトなど、セクション全体を隠さずに 1 件だけ 伏せたいときに使います。 - 非公開の項目は完全に消えます — 存在もセクションの件数も漏れません。
- セクションごとの非公開(層 2)は項目判定に優先します。非公開にした項目も、完全な ドキュメントを読み込む admin エディタでは引き続き閲覧・編集できます。
4. フィールド単位の制御 — 特定フィールドを非公開
Section titled “4. フィールド単位の制御 — 特定フィールドを非公開”可視なセクション内でも、個々のフィールドは各自のフラグで制御され続けます:
| 制御 | 既定 | 効果 |
|---|---|---|
contact.showEmail | false | 明示的に true にしない限り email は非公開。 |
meta.privacy.hideCredentialIds | true | certifications[*].credentialId を除去。 |
meta.privacy.hideEducationGrades | true | education[*].grade を除去。 |
セクションごとの非公開(層 2)— または項目を private にすること(層 3)— は これらのフィールド判定に優先します。可視な項目はフィールドフラグを引き続き尊重します。
単一の filter・すべての surface
Section titled “単一の filter・すべての surface”これらの制御は @takuhon/core の単一の射影(section → item → field の順)で適用される
ため、プロフィールページ・/api/profile・/api/jsonld・/takuhon.json・MCP
エンドポイント・派生 CV のすべてがまったく同じ内容を公開します。admin エディタは
認証付きエクスポートから完全なドキュメント(private にした項目を含む)を読み込む
ので、それらも常に編集できます — 公開 surface だけが除外します。フィーチャートグル・
Public sections のセクションごとのチェックボックス・フィールド制御を提供し、項目
単位の可視性は項目に直接設定します(フォームへの項目単位トグルは今後対応予定)。
各フィールドと制約の一覧は スキーマリファレンス を参照してください。