본문 바로가기
C.W.K.
Stream
Lesson 02 of 04 · published

Anvil은 Council이 아니야

~11 min · 경계, council, crucible, 제품-형태

Level 0찬 쇠
0 XP0/36 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete

Anvil은 Council이 아니야

Council, Crucible, Anvil은 모두 여러 브레인이 낄 수 있어. 그래서 참여자 수로 제품을 정의하면 바로 틀려. Council은 대화가 중심이야. 주고받는 말 자체가 표면이지. Crucible은 할 일이 중심이라 범위가 잡힌 작업 지시가 들어오고 결과물은 그 지시가 지명한 곳에 착지해. Anvil은 물건이 중심이야. 결과물이 압력과 판단과 변형을 통과해.

이 차이가 소유권을 갈라. Anvil은 할 일을 발굴하지 않고, 끝없는 토론을 열지도 않고, 완성된 코드가 눌러앉는 집이 되지도 않아. Anvil이 갖는 건 회차의 계약, 봉인된 정체성, 결과물의 상태 전이, 심사 패킷, 그리고 기록 줄기 전체야. 결과물이 나중에 다른 곳에 착지해도 어떤 압력을 통과했는지는 Anvil의 기록으로 남아.

형태를 섞으면 기능이 중력처럼 끌려들어와. 자유 대화를 붙이면 심사의 경계가 설득 싸움에 녹아. 아무 일이나 실행하면 무대가 그냥 범용 위임 시스템이 돼. Anvil이 최종 산출물까지 소유하면 모든 목적지를 하나씩 복제하기 시작하고. 좋은 경계는 좁게 들려. 실제로 좁으니까.

그러니 물어야 할 건 ‘브레인을 몇 개 쓸까?’가 아니야. 대화, 범위 잡힌 실행, 결과물에 가하는 비교 압력 중에 무엇이 일등 시민이어야 하는지를 물어. 그 명사가 작업장을 골라 줘.

제품은 자기가 다루는 물건의 모양을 닮아. 대화면 Council, 범위 잡힌 실행이면 Crucible, 결과물 압력이면 Anvil이야.

Code

상태를 소유하는 명사로 보내기·python
ROUTES = {
    "conversation": "Council",   # 대화 자체가 남아야 하면
    "scoped_task":  "Crucible",  # 지시와 착지점이 남아야 하면
    "artifact":     "Anvil",     # 물건의 상태 전이가 남아야 하면
}


def route(losing_this_breaks_it: str) -> str:
    """잃으면 시스템이 쓸모없어지는 그 명사가 작업장을 고른다."""
    try:
        return ROUTES[losing_this_breaks_it]
    except KeyError:
        raise ValueError(
            f"{losing_this_breaks_it!r}: 셋 중 어느 것도 아니면"
            " 아직 제품 경계를 못 정한 것이다"
        )


assert route("artifact") == "Anvil"
assert route("conversation") == "Council"
try:
    route("multi_brain")           # 참여자 수는 경계가 아니다
except ValueError as exc:
    print(exc)

External links

Exercise

실제로 하는 일 하나를 골라 대화 중심, 할 일 중심, 결과물 중심으로 각각 써봐. 각 경우에 어떤 상태가 살아남아야 해?
Hint
잃으면 시스템이 쓸모없어지는 이력이 어느 명사에 붙는지 봐.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인 — 댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.