Censoring specified directly...
model {
for (i in 1:6) {y[i] ~ dnorm(mu, 1)} # uncensored data
for (i in 7:9) {y[i] ~ dnorm(mu, 1)I(8,)} # censored data
mu ~ dunif(0, 100)
}

Data:
list(y = c(6,6,6,7,7,7,NA,NA,NA))

   node   mean   sd   MC error   2.5%   median   97.5%   start   sample
   mu   7.193   0.3478   0.003604   6.515   7.19   7.875   1001   10000
   y[7]   8.571   0.4809   0.005356   8.018   8.446   9.805   1001   10000
   y[8]   8.575   0.49   0.005317   8.018   8.448   9.802   1001   10000
   y[9]   8.578   0.487   0.005635   8.018   8.451   9.804   1001   10000

[example-9_6_1-censored-chickens0][example-9_6_1-censored-chickens1][example-9_6_1-censored-chickens2][example-9_6_1-censored-chickens3]
Censoring specified via zeros trick...
model {
for (i in 1:6) {y[i] ~ dnorm(mu, 1)}
for (i in 1:3) {
zeros[i] <- 0
zeros[i] ~ dpois(p[i])
p[i] <- -log(phi(mu-8))
}
mu ~ dunif(0, 100)
}

Data:
list(y = c(6,6,6,7,7,7,NA,NA,NA))

   node   mean   sd   MC error   2.5%   median   97.5%   start   sample
   mu   7.192   0.348   0.003687   6.519   7.185   7.882   1001   10000
   
   [example-9_6_1-censored-chickens4]