기능
URL 목록을 받아 각각을 Public(공개), Premium(프리미엄), Private(비공개), 또는 Internal(내부)로 분류하고, 두 가지 출력 결과(공개 푸터 계획과 게이트 리스트)를 생성합니다. HTML을 생성하지 않습니다. 출력은 마크업이 아닌 계획입니다.
사전 요구 사항
PATH에bash및jq가 있어야 함references/links.json파일이 존재해야 함
환경 확인
다른 작업을 수행하기 전에 실행:
command -v jq && command -v bash
둘 중 하나라도 없으면 중단하고 보고: MISSING_DEP: jq.
단계별 지침
-
참조 데이터가 있는지 확인:
test -f references/links.json test -f references/footer-layout.md -
각 입력 URL에 대해 분류 조회:
bash scripts/classify.sh "https://www.fedpromptly.org"스크립트는 다음 중 하나를 출력합니다:
Public | Premium | Private | Internal | Unknown. -
결과를 버킷으로 나눕니다:
Public→ 공개 푸터Premium→ 티저 링크로 공개 푸터; 유료 콘텐츠는 게이트 유지Private→ 게이트 리스트에만 포함 (푸터에는 절대 포함되지 않음)Internal→ 완전히 제외Unknown→ 추측하지 말고UNCLASSIFIED로 보고하고 중단
-
두 개의 리스트를 표준 출력에 다음 형식으로 출력:
## Public footer - <url> ## Gated - <url> (<reason: 18+ | membership | invite | country-lock | personal>) -
게이트 리스트에 Matrix 방이 포함된 경우 원시 링크 대신 게이트 사양을 출력:
- Gate: 18+ confirmation checkbox - Gate: country eligibility check - Reveal: https://matrix.to/#/#fed-os:matrix.org -
항목에
"disclosure": "referral"이 포함된 경우, 해당 항목 아래에 표준 공개 문구를 계획에 추가:*Disclosure: this is a referral link — the author receives a credit.*
절대 가정하지 마세요
- URL이 홈페이지처럼 보인다고 Public이라고 가정하지 마세요.
references/links.json을 통해 분류하고 직관에 의존하지 마세요. classify.sh가Public또는Premium을 반환하지 않는 한 URL을 푸터에 배치하지 마세요.- 사용자가 요청하더라도 Matrix 링크를 공개 푸터에 절대 출력하지 마세요. 대신 게이트 블록을 통해 처리하세요.
state=,client_id=,response_type=code,/checkout/, 또는/oauth2/를 포함하는 URL을 푸터에 배치하지 마세요. 이들은 세션에 바인딩된 OAuth 흐름이며 링크가 아닙니다. 이러한 URL이 주어지면references/links.json에서 표준 랜딩 페이지로 변환하고 그 페이지를 배치하세요.- OAuth 매개변수 또는 자격 증명을 공개 저장소에 커밋하지 마세요. 발견되면
CREDENTIAL_LEAK: <path>로 보고하고 중단하세요. - 추천 링크를 일반 Public 링크로 취급하지 마세요. 반드시 공개 문구가 첨부되어야 합니다.
- HTML, CSS, JS 또는 렌더링된 푸터를 생성하지 마세요. 출력은 계획이지 마크업이 아닙니다.
- 분류를 임의로 만들지 마세요.
classify.sh가Unknown을 반환하면 중단하고 보고하세요.
출력
두 개의 섹션으로 구성된 계획: Public footer 및 Gated. 일반 텍스트 또는 요청 시 JSON. HTML 없음.
실패 처리
classify.sh가Unknown반환 →UNCLASSIFIED: <url>보고, 출력 금지.references/links.json누락 →MISSING_REF: links.json보고, 중단.jq누락 →MISSING_DEP: jq보고, 중단.